Skip to content
Advertisement

How to add private github repository as Composer dependency

I have the following in my Laravel 5.1 projects composer.json to add a public github repository as a dependency.

...    
"repositories": [
  {
    "type": "package",
    "package": {
      "name": "myVendorName/my_private_repo",
      "version": "1.2.3",
      "source": {
        "type" : "git",
        "url" : "git://github.com/myVendorName/my_private_repo.git",
        "reference" : "master"
      },
      "dist": {
        "url": "https://github.com/myVendorName/my_private_repo/archive/master.zip",
        "type": "zip"
      }
    }
  }
],
"require": {
     ....
    "myVendorName/my_private_repo": "*",
},
...

This works as long as the repository is public. Now I’ve set this repository to private. The git credentials I use for pulling/pushing to ‘my_private_repo’ are the one of a colaborator of the project. How can I achieve that composer pulls from that private repository when I run composer update or composer install?

Advertisement

Answer

Work with private repositories at GitHub and BitBucket:

JSON

{
    "require": {
        "vendor/my-private-repo": "dev-master"
    },
    "repositories": [
        {
            "type": "vcs",
            "url":  "git@bitbucket.org:vendor/my-private-repo.git"
        }
    ]
}

The only requirement is the installation of SSH keys for a git client.

Docs

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement