Using Github Access Token with Composer for Private Repository
If you successfully run composer install which clone Github private repository by hand, you may found a blocker when run the command via script even already added ssh public key and added ssh private key to ssh-agent.
Use case
For example, you have a git hook on post-receive which run composer install.
#!/bin/sh GIT_WORK_TREE=/var/www/app git checkout -f cd /var/www/html/app && composer install --no-dev
And your composer.json of your app has a github private repository, for example, as follow:
{
"require": {
"yourcompany/lib": "^1.0"
},
"repositories" : [
{
"type": "vcs",
"url" : "[email protected]:yourcompany/Lib.git"
}
]
}
Solution
To make it work, first, you need to create a token for it in https://github.com/settings/tokens .
When you get generated token, you can register it in composer.json so the configuration like below:
{
// ...
"config": {
"github-oauth": {
"github.com": "th3t0k3nth4tG3n3r4t3d"
}
}
}
Now, your complete composer.json will be as follow:
{
"require": {
"yourcompany/lib": "^1.0"
},
"repositories" : [
{
"type": "vcs",
"url" : "[email protected]:yourcompany/Lib.git"
}
],
"config": {
"github-oauth": {
"github.com": "th3t0k3nth4tG3n3r4t3d"
}
}
}
That’s it.
leave a comment