我们有许多私有存储库,我们希望在使用Composer的PHP应用程序中包含这些存储库。 composer.json
文件包含此条目,该条目定义了我们的第一个私有存储库:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/vendor/package.git"
}
]
然后我们需要像平常一样的存储库:
"require": {
"vendor/package": "~1.0.0"
}
我唯一要做的就是在GitHub上设置私有访问令牌并将其存储在作曲家auth.json
文件中。看起来像是:
{
"github-oauth": {
"github.com": "<my_access_token>"
}
}
所有内容看起来都已正确设置,以便Composer通过HTTPS使用访问令牌访问GitHub,但我们收到的错误如下所示:
[RuntimeException]
Failed to clone https://github.com/vendor/package.git via https protocols, aborting.
- https://github.com/vendor/package.git
Cloning into bare repository '/home/vagrant/.composer/cache/vcs/https---github.com-vendor-package.git'...
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/vendor/package.git/'
访问令牌有效,因为我已经使用它来超过您经常看到的超出速率限制的消息,并且它在GitHub上显示为最近使用的。
我们错过了一步吗?理想情况下,我们只想使用Composer和GitHub来做这件事。设置Satis或Trojan不是我们热衷于做的事情。从文档中可以看出,我们应该能够使用个人访问令牌访问我们的私人仓库。
答案 0 :(得分:4)
使用以下语法代替HTTPS:
"repositories": [
{
"type": "vcs",
"url": "git@github.com:vendor/package.git"
}
]
我们经常成功地使用它。
见这里:https://getcomposer.org/doc/05-repositories.md#using-private-repositories