mcpField
G
gh-fix-ci

gh-fix-ci

github.com/mxyhi云与 DevOps50891 次安装1 天前更新
代码仓库

关于 gh-fix-ci

gh-fix-ci 是用于诊断拉取请求中失败的 GitHub Actions 检查的技能。它提取日志中的关键错误,先提交修复计划供批准,再按批准结果实施更改。

主要功能

  1. 01查找失败的 PR 检查
  2. 02获取 GitHub Actions 日志
  3. 03总结失败日志片段
  4. 04实施前请求批准计划
  5. 05更改后重新检查状态

适用场景

  1. 01调查拉取请求检查失败
  2. 02从工作流日志定位错误
  3. 03规划经批准的 CI 修复
  4. 04代码更改后验证检查

安装

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

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

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

包含的文件

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

LICENSE.txt
agents/
openai.yaml
assets/
github-small.svg
scripts/
inspect_pr_checks.py

详细介绍

Gh Pr Checks Plan Fix

概述

使用 gh 查找失败的 PR 检查,获取 GitHub Actions 日志以定位可处理的失败,汇总失败片段,然后提出修复计划,并在获得明确批准后实施。

  • 如果有面向计划的技能(例如 create-plan),请使用;否则,请直接起草简洁的计划,并在实施前征求批准。

前提条件:先使用标准 GitHub CLI 登录一次(例如运行 gh auth login),然后运行 gh auth status 确认(通常需要 repo 和 workflow 范围)。

输入

  • repo:仓库内的路径(默认为 .)
  • pr:PR 编号或 URL(可选;默认为当前分支的 PR)
  • 仓库主机的 gh 身份验证

快速开始

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

工作流

  1. 验证 gh 身份验证状态。
    • 在仓库中运行 gh auth status。
    • 如果尚未通过身份验证,请让用户先运行 gh auth login(确保包含 repo 和 workflow 范围),然后再继续。
  2. 确定 PR。
    • 优先使用当前分支的 PR:gh pr view --json number,url。
    • 如果用户提供了 PR 编号或 URL,请直接使用。
  3. 检查失败的检查(仅限 GitHub Actions)。
    • 优先使用随附脚本(可处理 gh 字段变更和作业日志回退):
      • python "<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. 获得批准后实施。
    • 执行已批准的计划,汇总差异和测试结果,并询问是否要创建 PR。
  8. 重新检查状态。
    • 完成更改后,建议重新运行相关测试和 gh pr checks 以确认结果。

随附资源

scripts/inspect_pr_checks.py

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

用法示例:

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

评论

支持 Markdown