通过HTTPS使用具有私有GitHub存储库的Composer

时间:2015-09-08 13:38:31

标签: php git github composer-php

我们有许多私有存储库,我们希望在使用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不是我们热衷于做的事情。从文档中可以看出,我们应该能够使用个人访问令牌访问我们的私人仓库。

1 个答案:

答案 0 :(得分:4)

使用以下语法代替HTTPS:

"repositories": [
    {
        "type": "vcs",
        "url": "git@github.com:vendor/package.git"
    }
]

我们经常成功地使用它。

见这里:https://getcomposer.org/doc/05-repositories.md#using-private-repositories