应配置 GitHub Personal Access Token(PAT)提升 API 额度:运行 composer config -g github-oauth.github.com <token> 将 token 写入全局 auth.json,确保权限为 600,避免硬编码;CI 环境使用 secrets.GITHUB_TOKEN。

Composer install 报错 “API rate limit exceeded” 怎么办
这是 GitHub 的 API 限流触发的典型错误,composer install 或 composer update 在拉取 GitHub 上的包(尤其是私有库或高热度开源库)时,会通过 GitHub API 查询版本、下载 ZIP,未登录状态下每小时只有 60 次请求额度,很容易踩中。
根本解法不是换镜像(镜像不解决认证问题),而是让 Composer 带上你的 GitHub 账户凭据,把请求从“匿名”升为“已认证”,额度立刻提升到每小时 5000 次。
- 必须用 GitHub Personal Access Token(PAT),不能用密码或 SSH key
- Token 权限只需勾选
repo(读私有库)和read:packages(读 GitHub Packages),无需其他权限 - 不要把 Token 硬编码在
composer.json或项目配置里,走全局凭据管理更安全
怎么给 Composer 配置 GitHub 身份验证(推荐方式)
运行 composer config -g github-oauth.github.com <your_token_here> 即可。这个命令会把 token 写进全局配置文件 ~/.composer/auth.json,所有项目自动继承,且不会污染项目仓库。
注意:github-oauth.github.com 是固定键名,不是域名占位符;如果用的是 GitHub Enterprise,要换成对应实例域名,比如 github-oauth.ghe.example.com。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 执行后可以跑
composer config -g --list确认是否写入成功 - 如果提示 “No auth config available”,说明
auth.json文件权限不对,检查是否被设为 600(仅当前用户可读写) - Windows 用户注意:PowerShell 里直接粘贴带 $ 符号的 token 可能被截断,建议用 cmd 或加单引号包裹
为什么用 auth.json 而不是 composer.json 的 repositories 配置
有人试图在 composer.json 里加 "options": {"http": {"header": ["Authorization: token xxx"]}},这不仅无效(Composer 不识别这种 header 写法),还容易把 token 提交到 Git——风险极高。
auth.json 默认被 Git 忽略(Composer 安装时自带 .gitignore 规则),且只在本地生效,符合最小权限原则。
- 全局
auth.json路径:Linux/macOS 是~/.composer/auth.json,Windows 是%APPDATA%\Composer\auth.json - 项目级
auth.json放在项目根目录下也有效,但必须手动chmod 600(Linux/macOS),否则 Composer 会拒绝读取 - CI 环境(如 GitHub Actions)要用
secrets.GITHUB_TOKEN注入,而不是复用个人 token
报错没变?检查这几个地方
配完 token 还报 rate limit,大概率是缓存或代理层在捣鬼。
- 删掉
vendor/和composer.lock,再跑composer install—— 旧 lock 文件可能锁着未认证时解析出的 URL - 如果你用了国内镜像(如阿里云、腾讯云),确认镜像源是否支持 OAuth 透传;大多数镜像不转发认证头,此时要临时切回 packagist.org:
composer config -g repo.packagist composer https://packagist.org - 某些公司网络会劫持 GitHub 域名走内部代理,导致请求根本没走到 GitHub API;可临时用
curl -H "Authorization: Bearer xxx" https://api.github.com/rate_limit测试是否真走通
GitHub 的 rate limit 是按 IP + 凭据双重计数的,token 配对了但还在报错,八成是环境里混用了多个账号的凭据,或者 CI 机器没清理干净旧配置。

















