GitHub Personal Access Token需勾选repo和read:packages权限,生成后立即复制保存;配置Composer时须用--global参数并设auth.json权限为600,CI中应通过环境变量注入而非硬编码。

直接配 GitHub Personal Access Token 就行,不配就永远卡在每小时 60 次的匿名限额里。
生成 GitHub Token 时必须勾选 repo 和 read:packages
只勾 public_repo 不够——它不能读私有库,也不能读 GitHub Packages;CI 环境或含私有依赖的项目会直接失败。Classic token 页面里,repo(全读写权限)和 read:packages 是最低安全交集。生成后页面只显示一次,关掉就再也看不到完整字符串,务必立刻复制保存。
composer config --global github-oauth.github.com 必须带 --global
漏掉 --global 会导致 token 写进当前项目目录下的 auth.json,不仅污染仓库,还容易被误提交。正确命令是:
composer config --global github-oauth.github.com ghp_abc123def456
执行后检查是否生效:
composer config --global --list | grep github-oauth
输出应类似 github-oauth.github.com : ghp_***def456(Composer 自动掩码)。若无输出,说明没写进去或参数写错。
auth.json 文件权限必须是 600
Linux/macOS 下 Composer 会静默忽略权限过宽的 auth.json,连错误提示都不给。运行完配置命令后,手动确认:
ls -l ~/.composer/auth.json
如果不是 -rw-------(即 600),立刻修复:
chmod 600 ~/.composer/auth.json
Windows 用户不用改权限,但 PowerShell 粘贴含 $ 的 token 会被截断,建议用 cmd 或单引号包裹:composer config --global github-oauth.github.com '$TOKEN'。
CI/CD 中不能硬编码 token,要用环境变量注入
GitHub Actions 可直接用内置 ${{ secrets.GITHUB_TOKEN }},但注意它默认不带 read:packages 权限,需在 workflow 中显式声明:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
然后在 job 步骤中运行:
composer config github-oauth.github.com $GITHUB_TOKEN
这里**不加 --global**,只作用于当前构建环境。Jenkins 或自建 CI 则需通过 COMPOSER_AUTH 环境变量传入 JSON 字符串,否则 token 不会被识别。
最常被忽略的是权限和文件权限:token 权限不够、auth.json 权限不是 600、CI 里用了 --global 却没同步配置——这三类问题占实际失效案例的 80% 以上。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











