Composer 无法获取 github

Posted

技术标签:

【中文标题】Composer 无法获取 github【英文标题】:Composer could not fetch github 【发布时间】:2016-05-31 12:38:53 【问题描述】:

今天,我尝试通过运行 composer create-project laravel/laravel=5.1.* myproject --prefer-dist 来安装 Laravel,但出现此错误:

Could not fetch https://api.github.com/repos/laravel/laravel/zipball/716e65268ae123e5bd73e505acf9695c678aff88, please create a GitHub OAuth token to go over the API rate limit
Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+MyPC+2016-02-19+0343 to retrieve a token. It will be stored in "C:/Users/MyPC/AppData/Roaming/Composer/auth.json" for future use by Composer.

为什么我无法从 GitHub 获取?这是我使用多年后第一次遇到这种情况。 GitHub 是否有任何政策变化?

【问题讨论】:

作曲家创建项目 laravel/laravel 5.1 myproject --prefer-dist help.github.com/articles/git-automation-with-oauth-tokens "请创建一个 GitHub OAuth 令牌以超过 API 速率限制" 【参考方案1】:

Niels 接受的答案是正确的。要在 composer 中使用生成的令牌,请使用以下命令:

composer config -g github-oauth.github.com YOUR_TOKEN

【讨论】:

只需从此链接创建新令牌:github.com/settings/tokens 然后使用上述命令设置令牌。完成。【参考方案2】:

遗憾的是,该政策在 Github 上已经活跃了很长时间。它记录在here 中,您可以在core 部分的https://api.github.com/rate_limit 中查看您的当前状态。

另见https://developer.github.com/v3/#rate-limiting:

对于未经身份验证的请求,速率限制允许您每小时最多发出 60 个请求。未经身份验证的请求与您的 IP 地址相关联,而不是与发出请求的用户相关联。

Composer 无法避免这种情况,因此它会抛出详细错误:

创建一个 GitHub OAuth 令牌以超过 API 速率限制

您可以在https://github.com/settings/tokens 执行此操作,并且每次安装只需执行一次,因为 Composer 会记住后续请求的令牌。

【讨论】:

read:packages 范围是否足够或是否有其他应授权的授权?【参考方案3】:

2022 年 Composer 2.x 更新

我尝试了此处列出的其他解决方案,但它们对我不起作用。检查composer update 的详细输出,我发现您可以使用git 设置github.accesstoken 配置选项,Composer 将使用它。

    创建GitHub Personal Access Token 并将令牌复制到剪贴板 运行git config --global github.accesstoken <token>,用上面的令牌替换<token>

如果您想专门为当前项目设置令牌,您可以删除--global 选项。

【讨论】:

啊,这对我有用,应该是 Composer v2 的公认答案 :) 谢谢 - 你知道令牌需要什么最低权限吗?

以上是关于Composer 无法获取 github的主要内容,如果未能解决你的问题,请参考以下文章

尝试从 toran 获取所需的私有库时的 Composer 警告

Composer 无法在 Windows 上运行,出现 [Composer\Exception\NoSslException] 错误

composer无法安装,在线等,急!!!!

无法更改权限或删除 /root/.composer 目录

无法重新声明类 Composer 导致无法 Php artisan 服务

错误:无法解析“composer.lock”;它必须是 Composer 生成的有效锁文件