【问题标题】:Using a Composer with private GitHub repos over HTTPS通过 HTTPS 使用带有私有 GitHub 存储库的 Composer
【发布时间】:2023-03-09 08:49:01
【问题描述】:

我们有许多私有存储库,我们希望将它们包含在使用 Composer 的 PHP 应用程序中。 composer.json 文件包含这个条目,它定义了我们的第一个私有存储库:

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

然后我们像往常一样需要存储库:

"require": {
    "vendor/package": "~1.0.0"
}

我做的唯一额外的事情是在 GitHub 上设置一个私有访问令牌并将其存储在 composers 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 并不是我们热衷于做的事情。从文档看来,我们应该能够使用个人访问令牌访问我们的私有仓库。

【问题讨论】:

    标签: php git github composer-php


    【解决方案1】:

    使用以下语法代替 HTTPS:

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

    我们经常成功地使用它。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      • 2014-08-20
      • 2014-08-15
      • 2020-06-29
      • 2016-03-18
      • 2015-03-19
      • 2019-11-04
      相关资源
      最近更新 更多