GitHub API combined status始终返回pending的问题求助
解决GitHub API获取Combined Status始终返回pending的问题
先核对API端点和参数
你调用的必须是正确的端点:GET /repos/{owner}/{repo}/commits/{ref}/status。这里的ref得是具体的提交SHA、分支名或标签名,不能随意填写。如果用了不存在的ref,API就会默认返回pending状态,statuses自然是空的。确认目标提交有没有触发过检查
Combined Status是汇总该提交上所有CI/CD检查(比如GitHub Actions、第三方CI工具)的结果。如果这个提交从来没触发过任何检查,或者检查还没启动,就会返回pending且statuses数组为空。去仓库的提交页面看看有没有检查记录,没有的话先手动触发一次构建试试。检查权限和认证信息
如果是私有仓库,你的访问令牌必须有repo权限;公有仓库则需要public_repo权限。权限不够的话,API不会报错,但会返回空的状态数据,看起来就像一直pending。替代方法:直接拉取检查运行详情
如果combined status不好用,换用检查运行API:GET /repos/{owner}/{repo}/commits/{ref}/check-runs。这个端点会返回每一项检查的具体状态(比如completed、in_progress)和结论(success、failure),你可以自己写逻辑汇总出整体状态。
内容的提问来源于stack exchange,提问作者supercobra
相关产品推荐
相关产品推荐

