后端与接口
在 GitHub PR 检查失败时循环修复 CI 直到全绿
需要监控分支或 PR 的 CI 检查,并针对失败反复修复、推送,直到所有必需检查通过。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
在 GitHub PR 检查失败时循环修特定
解决思路
- 使用 `gh pr checks` 作为 PR 关联检查的唯一事实来源;不要用 `gh run list` 替代,因为它只覆盖 GitHub Actions。
- 为当前分支解析活动的 PR:`gh pr view --json number,url,headRefName`。
- 等待前先检查当前 PR 检查项:`gh pr checks --json name,bucket,state,workflow,link`。
- 如果检查已经失败,优先诊断这些失败项。
- 如果检查仍在 pending,使用 `gh pr checks --watch --fail-fast` 监听,并在失败时快速退出。
- 当失败检查链接到 GitHub Actions run 时,用 `gh run view <run-id> --log-failed` 查看失败日志。
- 尽可能让每次修复只针对一个失败原因,保持改动范围聚焦。
- 不要使用 `--no-verify` 绕过钩子来强行推进。
- 如果失败明显与当前 PR 无关且看起来已在 main 上修复,则合并最新 main,而不是把无关修复塞进 PR。
- 如果失败是 flaky 的,重试一次,并报告 flake 证据。
- 每次 push 后重新运行 `gh pr checks --json name,bucket,state,workflow,link`,因为 PR 关联的检查集合可能变化。
- 重复执行“检查当前状态 → 诊断失败 → 修复 → push → 重新检查”,直到所有必需检查变绿。
- 输出当前 CI 状态。
- 输出失败摘要和已应用的修复。
- 检查变绿后输出 PR URL。
适用边界 · 注意事项
- 不适用于非 GitHub 平台,或无法使用 `gh` CLI 访问 PR 检查的环境。
- 当当前分支没有对应 PR,或目标检查不是 PR-attached 时,不应把 `gh pr checks` 当作唯一事实来源。
- 如果只需要一次性查看 GitHub Actions 运行列表而非迭代修复 PR 检查,不必进入该循环。