You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub API返回Bad credentials 管理员权限OAuth令牌调用仍报错

问题排查与解决

你遇到的Bad credentials报错大概率是以下几个原因导致的,按优先级排查即可:

  • 首先检查curl命令写法错误:你当前的POST请求把Authorization和Accept两个请求头写在了同一个-H参数内,两个头之间没有做分隔,GitHub服务端无法正确识别到你的认证信息,会直接返回凭证错误。每个请求头必须单独使用一个-H参数声明。
  • 其次检查PAT的配置匹配问题:
    • 如果你用的是经典类型PAT,确认已经完整勾选repo权限范围(包含repo下所有子权限,不要只勾选部分子项),同时确认PAT没有超过有效期、你当前发起请求的出口IP在PAT配置的IP白名单范围内。
    • 如果你用的是新版细粒度PAT,除了基础仓库权限外,需要单独做两个配置:一是在PAT的可访问仓库列表中手动添加目标仓库,细粒度PAT默认不会自动包含你通过协作者、团队授权获得权限的仓库;二是在仓库权限配置中找到Actions项,将权限设置为「读写」,细粒度PAT的权限是拆分配置的,仅开仓库基础访问权限无法调用Actions相关接口。
  • 你之前调用用户仓库列表接口返回空数组属于正常现象:该接口默认只会返回查询用户作为所有者创建的仓库,不会返回用户作为协作者、通过团队继承权限的仓库,返回结果不代表你对目标仓库没有访问权限,不能作为权限校验依据。
验证步骤
  1. 先修正POST请求的格式,正确的调用命令如下:
curl -X POST \
  -H "Authorization: token <替换成你的PAT令牌>" \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/<替换成仓库所属账号/组织名>/<替换成仓库名>/actions/runners/registration-token
  1. 如果还是报错,可以先调用仓库基础信息接口验证PAT对目标仓库的访问权限是否正常:
curl -H "Authorization: token <替换成你的PAT令牌>" https://api.github.com/repos/<替换成仓库所属账号/组织名>/<替换成仓库名>

如果该接口能正常返回仓库的基础信息,说明PAT的仓库访问权限配置正常,补充Actions读写权限后即可正常调用注册token接口。

内容的提问来源于stack exchange,提问作者Niru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 02:27:30