我无法下载github私有repos与composer
php composer.phar update
我得到以下错误
"https://api.github.com/repos/company/private1"文件不能已下载的HTTP/1.1 404 Not Found
,但我可以很容易地下载这些私人回购使用git clone
Composer.json
"repositories": [
{
"type": "vcs",
"url": "git@github.com:company/private1.git",
"options": {
"ssh2": {
"username": "githubusername",
"pubkey_file": "/home/username/.ssh/id_rsa.pub",
"privkey_file": "/home/username/.ssh/id_rsa"
}
}
},
{
"type": "vcs",
"url": "git@github.com:company/private2.git",
"options": {
"ssh2": {
"username": "githubusername",
"pubkey_file": "/home/username/.ssh/id_rsa.pub",
"privkey_file": "/home/username/.ssh/id_rsa"
}
}
}
],
"require": {
"php": ">=5.4.3",
"zendframework/zendframework": ">2.1.3",
"doctrine/mongodb-odm": "dev-master",
"doctrine/doctrine-mongo-odm-module": "dev-master",
"company/private": "dev-master",
"company/private2": "dev-master"
}
我试过了,但是没有用
SSH2 PECL也被启用。
我还创建了配置文件vim ~/home/.ssh/config
包含以下细节
host www.github.com
User githubusername
HostName github.com
IdentityFile /home/username/.ssh/id_rsa
但是我仍然无法使用composer下载私有repos
在您的编写器中。json文件,您不需要存储库部分中的选项,只需要type
和url
。
SSH/h2>
在GitHub上,在Profile...Settings
下,有一个SSH and GPG Keys
标签。这是您加载SSH密钥的公共端以从您的机器(存储私钥的地方)访问GitHub的地方。
请参阅他们的文档生成SSH密钥,该文档将引导您完成此过程。它还为密钥的私有端逐步完成SSH代理存储。
个人访问令牌
当您调用composer install
时,如果您没有设置访问令牌,但是需要一个,Composer将提示您生成它和一个URL来完成此操作。你可以使用这个URL,它会生成一个曾经见过的API令牌,然后你把它加载到composer上以访问GitHub。来自GitHub网站:
个人访问令牌的功能与普通OAuth访问令牌类似。它们可以代替HTTPS上的Git密码。
如果您没有看到这个自动提示,那么如何手动执行:
- 转到
GitHub...Settings...Personal
访问令牌 - 按
Generate new token
键 - 在
Token Description
中输入对您有意义的内容 - 选中
repo
复选框(它将自动选中下面的三个复选框) - 按页面底部的
Generate token
按钮 - 复制token
回到服务器,告诉composer关于token的信息:
-
composer config -g github-oauth.github.com <token>
-
composer install