Gitlab Composer repository
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
examples init Aug 22, 2013
.gitignore Allow mismatches in package names. Fixes #30 Mar 1, 2018
composer.json Use Gitlab API V4 Aug 28, 2017

Gitlab Composer repository

Small script that loops through all branches and tags of all projects in a Gitlab installation and if it contains a composer.json, adds it to an index.

This is very similar to the behaviour of

See example.


  1. Run composer.phar install
  2. Copy confs/samples/gitlab.ini into confs/gitlab.ini, following instructions in comments
  3. Ensure cache is writable
  4. Change the TTL as desired (default is 60 seconds)
  5. Ensure an alias exists for /packages.json => /packages.php (.htaccess is provided)


Simply include a composer.json in your project, all branches and tags respecting the formats for versions will be detected.

By default, the package name must be equal to the path of the project. i.e.: my-group/my-project. This is not a design requirement, it is mostly to prevent common errors when you copy a composer.json from another project without changing its name. To enable support for differences between package names and project paths, set allow_package_name_mismatch to true in confs/gitlab.ini.

Then, to use your repository, add this in the composer.json of your project:

    "repositories": [
            "type": "composer",
            "url": ""


While your projects will be protected through SSH, they will be publicly listed. If you require protection of the package list, I suggest this reading.