GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - netresearch/satis-git: PHP composer/satis extended with the hability to generate configuration according to GITLAB composer projects

This repository was archived by the owner on Mar 7, 2026. It is now read-only.
BranchesTags
Open more actions menu
 
 

Latest commit

 

History

131 Commits
131 Commits

Folders and files

NameName
Last commit message
Last commit date
.devcontainer
.devcontainer
 
 
.github
.github
 
 
bin
bin
 
 
docs
docs
 
 
src/MBO/SatisGit
src/MBO/SatisGit
 
 
tests
tests
 
 
.gitignore
.gitignore
 
 
.travis.yml
.travis.yml
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
composer.json
composer.json
 
 
composer.lock
composer.lock
 
 
phpunit.xml.dist
phpunit.xml.dist
 
 

Repository files navigation

netresearch/satis-git

Build Status

CI Coverage Status

PHP composer/satis application extended with the ability to automate Satis configuration according to git projects containing a composer.json file.

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

Requirements

  • PHP 8.2
  • GitLab API v4 / GitHub API / Gogs API / Gitea API

Usage

1) Create Satis project

git clone https://github.com/netresearch/satis-git
cd satis-git
composer install

2) Generate Satis configuration

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

3) Use Satis as usual

bin/satis-git 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 auth token 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-git git-to-config https://gitlab.com \$AUTH_TOKEN -vv --users=git_username --orgs=organization_name

GitHub

bin/satis-git git-to-config https://github.com \$AUTH_TOKEN --orgs=git_organization --users=git_username
bin/satis-git build --skip-errors satis.json web

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

Gogs

bin/satis-git git-to-config https://gogs.mydomain.org \$AUTH_TOKEN
bin/satis-git build --skip-errors satis.json web

(Note that Gogs detection is based on hostname)

Mirror dependencies

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

  • The git projects
  • The dependencies of the git projects

Expose only public repositories

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

Disable AuthToken saving

Note that git-to-config saves the AuthToken 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 git-token.satis.example.org AuthToken

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

## Supported PHP versions

PHP 8.2

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

satis-git is licensed under the MIT License - see the LICENSE file for details

About

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

Topics

composerpackage-managementphpsatis

Resources

Readme
MIT license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

1 star

Watchers

1 watching

Forks

1 fork
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.