我正在弄清楚如何将Composer用于我自己的项目依赖项。我有一些私有 GitHub回购,我需要包含在我的项目中。
让我们说
现在这是A:中的JSON:
{
"name": "vendor/package",
"version": "1.0.0",
"require": {
"vendor/package" : "1.0.0",
"vendor/package2" : "1.0.0"
},
"repositories": [
{
"type": "vcs",
"url": "git@github.com:vendor/package.git"
},
{
"type": "vcs",
"url": "git@github.com:vendor/package2.git"
}
]
}
这是B的包(C与课程非常相似)
{
"name": "vendor/package1",
"version": "1.0.0"
}
现在,如果我运行以下命令:
composer install -n --prefer-dist
发生以下错误:
- Installing vendor/package (1.0.0)
Downloading: Failed
Failed to download vendor/package from dist: The "https://api.github.com/repos/vendor/package/zipball/419f5056bde4ff7d76a099648e60fc" file could not be downloaded (HTTP/1.1 404 Not Found)
Now trying to download from source
- Installing vendor/package (1.0.0)
Cloning 419f5056bde4ff7d48e60fc
然而,下载源确实有效。我在〜/ .ssh文件夹和Github上安装了SSH密钥。这似乎可以工作,因为可以下载源。然而,我很惊讶我无法获得拉链包装。谁能指出我正确的方向?
映入眼帘,
答案 0 :(得分:2)
由于某种原因,API调用似乎失败了。您可以尝试通过修改存储库定义来禁用它:
{
"type": "vcs",
"url": "git@github.com:vendor/package.git",
"no-api": true
}
<强>可替换地:强>
可能对于私有存储库,您需要配置有效的oauth令牌,但由于某种原因,它似乎不会在当前/最新版本的Composer中提示这一点。
要配置oauth令牌,请创建一个@ github.com/settings/tokens,然后将其添加到配置中,如下所示:
composer config -g github-oauth.github.com <oauthtoken>
请让我知道这些方法中的哪一种能为您解决。