GithubHelp home page GithubHelp logo

smlng / satis-gitlab Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mborne/satis-gitlab

0.0 0.0 0.0 196 KB

PHP composer/satis extended with the hability to generate configuration according to GITLAB composer projects

License: MIT License

PHP 98.54% Makefile 1.46%

satis-gitlab's Introduction

mborne/satis-gitlab

CI Coverage Status

PHP composer/satis extended with the ability to generate SATIS configuration according to CVS projects containing a composer.json file.

It also provides a way to mirror PHP dependencies to allow offline builds.

Requirements

  • PHP 7.4 or 8.x
  • GitLab API v4 / GitHub API / Gogs API / Gitea API

Usage

1) Create SATIS project

git clone https://github.com/mborne/satis-gitlab
cd satis-gitlab
# PHP 8.1
composer install
# PHP 7.4 (downgrading versions refered in composer.lock is required)
composer update

2) Generate SATIS configuration

# add --archive if you want to mirror tar archives
bin/satis-gitlab gitlab-to-config \
    --homepage https://satis.example.org \
    --output satis.json \
    https://gitlab.example.org [GitlabToken]

3) Use SATIS as usual

bin/satis-gitlab build satis.json web

4) Configure a static file server for the web directory

Use you're favorite tool to expose web directory as https://satis.example.org.

satis.json should not be exposed, it contains the GitlabToken by default (see --no-token)

5) Configure clients

Option 1 : Configure projects to use SATIS

SATIS web page suggests to add the following configuration to composer.json in all your projects :

{
  "repositories": [{
    "type": "composer",
    "url": "https://satis.example.org"
  }]
}

Option 2 : Configure composer to use SATIS

Alternatively, composer can be configured globally to use SATIS :

composer config --global repo.satis.example.org composer https://satis.example.org

(it makes a weaker link between your projects and your SATIS instance(s))

Advanced usage

Filter by organization/groups and users

If you rely on gitlab.com, you will probably need to find projects according to groups and users :

bin/satis-gitlab gitlab-to-config https://gitlab.com $SATIS_GITLAB_TOKEN -vv --users=mborne --orgs=drutopia

Build configuration according to github repositories

github supports allows to perform :

bin/satis-gitlab gitlab-to-config https://github.com  $SATIS_GITHUB_TOKEN --orgs=symfony --users=mborne
bin/satis-gitlab build --skip-errors satis.json web

(Note that GITHUB_TOKEN is required to avoid rate request limitation)

Mirror dependencies

Note that --archive option allows to download tar archives for each tag and each branch in web/dist for :

  • The gitlab projects
  • The dependencies of the gitlab projects

Expose only public repositories

Note that GitlabToken is optional so that you can generate a SATIS instance only for you're public repositories.

Disable GitlabToken saving

Note that gitlab-to-config saves the GitlabToken to satis.json configuration file (so far you expose only the web directory, it is not a problem).

You may disable this option using --no-token option and use the following composer command to configure $COMPOSER_HOME/auth.json file :

composer config -g gitlab-token.satis.example.org GitlabToken

Deep customization

Some command line options provide a basic customization options. You may also use --template my-satis-template.json to replace the default template :

default-template.json

Testing

export SATIS_GITLAB_TOKEN=AnyGitlabToken
export SATIS_GITHUB_TOKEN=AnyGithubToken

make test

Note that an HTML coverage report is generated to output/coverage/index.html

License

MIT.

satis-gitlab's People

Contributors

mborne avatar richgerdes avatar fantoine avatar silverfire avatar ochorocho avatar kaystrobach avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.