mcpField
G
gh-fix-ci

gh-fix-ci

github.com/davila7云与 DevOps33.0k325 次安装1 天前更新
代码仓库

关于 gh-fix-ci

gh-fix-ci 是面向开发者的技能,用于调查 GitHub 拉取请求中的失败检查。它获取 GitHub Actions 日志并概述可处理的问题,拟定修复计划,经批准后再实施。

主要功能

  1. 01检查拉取请求失败项
  2. 02获取 GitHub Actions 日志
  3. 03提取并概述失败片段
  4. 04拟定需审批的修复计划
  5. 05更改后重新检查状态

适用场景

  1. 01诊断当前分支拉取请求的失败
  2. 02查看指定拉取请求的 CI 日志
  3. 03审批后规划并实施修复

安装

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

$npx skills add https://github.com/davila7/claude-code-templates --skill gh-fix-ci

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

详细介绍

Gh Pr Checks Plan Fix

概述

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

  • 依赖 plan skill 来起草和批准修复计划。

前提:确保 gh 已通过认证(例如,先运行一次 gh auth login),然后以提升的权限运行 gh auth status(包含 workflow/repo 权限范围),以便 gh 命令成功执行。如果沙箱阻止 gh auth status,请使用 sandbox_permissions=require_escalated 重新运行。

输入

  • 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 login 后,在仓库中以提升的权限范围(workflow/repo)运行 gh auth status。
    • 如果沙箱中的认证状态检查失败,请使用 sandbox_permissions=require_escalated 重新运行该命令,以允许网络/钥匙串访问。
    • 如果未认证,请要求用户先登录再继续。
  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 中提取 run 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. 创建计划。
    • 使用 plan skill 起草简洁的计划并请求批准。
  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