如何调试GitHub Action失败:凭证错误及令牌有效性验证
GitHub Action "Bad credentials" 排查方案
一、验证BUNDLE_ACCESS_TOKEN有效性
由于仓库密钥无法在界面查看,可通过临时添加Action步骤测试:
- 在你的
my_tests.yml中,setup-ffmpeg步骤前添加以下调试步骤:
- name: Validate BUNDLE_ACCESS_TOKEN run: | curl -s -w "%{http_code}" -H "Authorization: token ${{ secrets.BUNDLE_ACCESS_TOKEN }}" https://api.github.com/user
- 触发Action运行,查看该步骤的输出:
- 返回
200及用户JSON信息:令牌有效 - 返回
401 Unauthorized:令牌已过期或无效 - 返回
403 Forbidden:令牌权限不足
- 返回
- 测试完成后立即删除该步骤,避免敏感信息泄露。
二、其他可能的故障原因
1. 内置GITHUB_TOKEN被覆盖导致权限不足
你在环境变量中用secrets.BUNDLE_ACCESS_TOKEN覆盖了GitHub默认提供的GITHUB_TOKEN:
GITHUB_TOKEN: ${{ secrets.BUNDLE_ACCESS_TOKEN }}
FedericoCarboni/setup-ffmpeg会默认使用GITHUB_TOKEN拉取Action相关资源,而你的BUNDLE_ACCESS_TOKEN可能仅配置了Ruby私有仓库的读取权限,缺少actions:read或repo权限。解决方法:
- 移除自定义的
GITHUB_TOKEN配置,让Action使用内置令牌 - 若必须保留自定义令牌,确保其拥有
repo和actions权限
2. Action版本兼容性问题
你使用的FedericoCarboni/setup-ffmpeg@v1是较旧的版本,可能存在依赖或权限逻辑的bug。建议替换为最新稳定版本,比如:
- uses: FedericoCarboni/setup-ffmpeg@v3
3. 仓库密钥配置错误
- 检查
BUNDLE_ACCESS_TOKEN在Secrets中是否被误输入了多余字符(如空格、换行) - 确认
BUNDLE_GITHUB__COM的格式正确(双下划线是Ruby环境变量的转义规则,你的配置是对的,但可重新输入验证)
4. 网络或镜像异常
虽然报错显示"Bad credentials",但偶尔网络波动导致请求失败也可能触发该错误。可尝试重新运行Action,或检查GitHub Actions的状态页面确认服务是否正常。
内容的提问来源于stack exchange,提问作者Meltemi
相关产品推荐
相关产品推荐

