如何从 GitHub 拉取请求中获取所需状态检查的状态,包括第三方(例如 Jenkins)尚未报告的检查?
我尝试使用此 API 来获取检查列表,但它只会显示来自 GitHub Actions 的检查列表:
gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/repos/OWNER/REPO/commits/REF/check-runs
所以我尝试使用 gh cli 中的这个 API:
gh pr checks "$pr_number" --repo="$OWNER/$repo" --required
这更好,因为它显示了所有状态检查,包括外部工具(例如 Jenkins)报告的状态检查,但它不显示尚未报告的状态检查(即使需要)。
关于该做什么还有其他想法吗?
我现在的解决方案(虽然并不理想)如下:
使用以下命令从 GitHub 上要合并的分支的分支保护规则中获取所需的状态检查列表:
gh api repos/$OWNER/$REPO/branches/$BRANCH_NAME/protection/required_status_checks/contexts
然后将获得的检查列表交叉引用到从 gh cli 命令获得的检查列表:
gh pr checks "$pr_number" --repo="$OWNER/$REPO" --required
如果从分支保护规则获取的列表中有更多检查,您可以知道还有更多未报告的待处理状态检查。