mcpField
G
gh-fix-ci

gh-fix-ci

github.com/gannonh云与 DevOps235 次安装8 周前更新
代码仓库

关于 gh-fix-ci

gh-fix-ci 是面向开发者的编码技能,使用 gh 检查失败的 GitHub Actions,并汇总日志以指导修复和验证。它还附带提取失败片段的脚本。

主要功能

  1. 01定位失败的 PR 检查
  2. 02获取 GitHub Actions 日志
  3. 03汇总失败证据
  4. 04规划、实施并验证修复
  5. 05用附带脚本提取日志片段

适用场景

  1. 01诊断失败的拉取请求
  2. 02从 CI 日志中查找可处理错误
  3. 03代码修改后重新检查 CI

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gannonh/skills --skill gh-fix-ci

安装后在 Claude Code 中输入/gh-fix-ci确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE.txt
agents/
openai.yaml
scripts/
inspect_pr_checks.py

详细介绍

概述

使用 gh 查找失败的 PR 检查,获取 GitHub Actions 日志以定位可采取行动的失败,汇总失败情况并实施修复。

输入

  • repo:仓库内的路径(默认值为 .)
  • pr:PR 编号或 URL(可选;默认使用当前分支的 PR)
  • 针对仓库托管平台的 gh 身份验证

快速开始

  • python3 "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"
  • 如果需要便于机器处理的汇总输出,请添加 --json。

工作流

  1. 验证 gh 身份验证状态。
    • 在仓库中运行 gh auth status。
    • 如果尚未通过身份验证,请先让用户运行 gh auth login(确保包含仓库和工作流所需的权限),然后再继续。
  2. 确定 PR。
    • 优先使用当前分支的 PR:gh pr view --json number,url。
    • 如果用户提供了 PR 编号或 URL,则直接使用。
  3. 检查失败项(仅限 GitHub Actions)。
    • 首选:运行随附脚本(可处理 gh 字段变更和作业日志回退):
      • python3 "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"
      • 添加 --json 以获取便于机器处理的输出。
    • 手动回退方案:
      • gh pr checks <pr> --json name,state,bucket,link,startedAt,completedAt,workflow
        • 如果某个字段不受支持,请使用 gh 报告的可用字段重新运行。
      • 对于每个失败的检查,从 detailsUrl 中提取运行 ID 并运行:
        • gh run view <run_id> --json name,workflowName,conclusion,status,url,event,headBranch,headSha
        • gh run view <run_id> --log
      • 如果运行日志显示任务仍在进行中,请直接获取作业日志:
        • gh api "/repos/<owner>/<repo>/actions/jobs/<job_id>/logs" > "<path>"
  4. 界定非 GitHub Actions 检查的范围。
    • 如果 detailsUrl 不是 GitHub Actions 运行链接,则将其标记为外部检查,并且只报告 URL。
    • 不要尝试使用 Buildkite 或其他提供商;保持工作流精简。
  5. 汇总失败情况。
    • 提供失败的检查名称、运行 URL(如有)以及简短的日志片段。
    • 明确指出缺失的日志。
  6. 制定计划。
    • 使用 create-plan 技能起草简洁的计划。
  7. 实施计划。
    • 执行计划,汇总差异和测试结果,然后提交并推送更改。
  8. 重新检查状态。
    • 更改后,重新运行相关测试和 gh pr checks 以确认结果。
    • 如果仍有新的或现有的失败项,请重复此工作流,直到 CI 通过。
  9. 汇总结果。
    • CI 检查通过后,汇总修复内容,并在合并或继续用户工作流中的后续步骤前征求用户确认。

随附资源

/scripts/inspect_pr_checks.py

获取失败的 PR 检查,拉取 GitHub Actions 日志,并提取失败片段。仍有失败时会以非零状态码退出,因此可用于自动化。

用法示例:

  • python3 "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "123"
  • python3 "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "https://github.com/org/repo/pull/123" --json
  • python3 "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --max-lines 200 --context 40

评论

支持 Markdown