运行composer install访问GitHub私有仓库报400 Bad Request错误
检查GitHub认证配置
GitHub私有仓库需要配置Personal Access Token(PAT)才能被Composer正常访问,先确认你的认证配置是否正确:
查看Composer全局认证文件~/.composer/auth.json(Windows系统路径为%APPDATA%\Composer\auth.json)或项目根目录下的本地auth.json,确认存在如下配置:{ "github-oauth": { "github.com": "你生成的GitHub PAT" } }同时确认PAT权限满足要求:经典PAT需要勾选
reposcope,细粒度PAT需要开启对应私有仓库的Contents读取权限,且PAT未过期。
若未配置认证,可直接执行命令全局配置:composer config -g github-oauth.github.com 你的PAT校验composer.json仓库配置
检查项目composer.json中的私有仓库地址是否拼写正确,是否漏写.git后缀,配置示例如下:"repositories": [ { "type": "vcs", "url": "https://github.com/org/repo.git" } ]注意仓库地址的组织名、仓库名要和实际完全匹配,拼写错误会直接触发400报错。
清除Composer缓存重试
旧的缓存请求、过期认证信息可能导致请求异常,执行composer clear-cache清除所有本地缓存后,再重新运行composer install测试。手动验证API访问有效性
可以通过curl命令直接测试GitHub API的访问状态,排查是认证问题还是Composer配置问题:curl -H "Authorization: token 你的PAT" https://api.github.com/repos/org/myrepo
如果命令返回400错误,说明你的PAT无效或者仓库地址错误;如果返回正常的仓库元数据,说明问题出在Composer本地配置,可继续下一步排查。排查Composer镜像干扰
如果你配置了第三方Composer镜像源,部分镜像会拦截私有仓库的请求,可临时禁用插件和镜像测试:composer install --no-plugins,确认是否是镜像导致的请求异常。
内容的提问来源于stack exchange,提问作者user784187

