Skip to content

yosmanyga/satis-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Creates a Satis file to generate a private Composer repository.

Init

composer install

make start

Execute

docker exec -it satis_builder_php php src/generate.php var/sample/input var/sample/output

Input file sample:

# Path where the libraries are located
path_pre: /projects/%s/php-libs/%s
#path_pre: https://github.com/%s/%s

# Optional: Path where each library contains its code
path_post: code

packages:
  - yosmanyga/lib-1
  - yosmanyga/lib-2

Output file:

{
  "name": "satis",
  "description": "PHP Packages",
  "homepage": "http://localhost:8080",
  "repositories": [
    {
      "name": "yosmanyga/lib-1",
      "type": "vcs",
      "url": "/projects/yosmanyga/php-libs/lib-1/code"
    },
    {
      "name": "yosmanyga/lib-2",
      "type": "vcs",
      "url": "/projects/yosmanyga/php-libs/lib-2/code"
    }
  ],
  "require-all": true
}

You can modify the path_pre and path_post to fit your needs. The %s will be replaced by the package name parts.

You can also modify the satis template, located in src/satis.json.mustache.

Gotchas

Add the gitea repo BEFORE adding it to the satis YAML

When satis rebuilds, it clones every repo listed in the input YAML. If an entry's repo doesn't exist yet (gitea transfer not done), the clone fails and satis aborts the whole rebuild, deleting the existing packages.json. Any subsequent composer update against the satis URL then gets HTTP 404 for every package — not just the new one — until the YAML entry is removed and the rebuild re-run.

Rule: transfer/create the gitea repo first, verify it's reachable, then add the YAML entry and rebuild satis. Never add a YAML entry speculatively.

If satis already deleted packages.json: remove the premature entry from the YAML, rebuild, and the existing packages return.

About

Creates a Satis file to generate a private Composer repository.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors