SuperAPI AI 工具集

gh-fix-ci

部署与运维

查看项目

更新于 10-15 10:54

技能介绍

用途

gh-fix-ci 用于处理 GitHub Pull Request 中失败的检查(checks)。它使用 gh 命令行工具定位失败的 PR 检查,拉取 GitHub Actions 日志,总结失败上下文,然后提出修复计划,并在用户明确批准后实施修复。该技能依赖 plan 技能来起草和批准修复计划。

主要能力

  • 验证 gh 认证状态,确保 gh 命令可正常执行。
  • 解析 PR:优先使用当前分支的 PR,也支持用户直接提供 PR 编号或 URL。
  • 检查失败的检查项(仅限 GitHub Actions):优先运行附带脚本,脚本可处理 gh 字段漂移和作业日志回退;也提供手动回退命令。
  • 对每个失败的检查,从 detailsUrl 提取 run id,并查看运行信息和日志;若运行日志显示仍在进行中,则直接获取作业日志。
  • 对非 GitHub Actions 的检查,标记为外部并仅报告 URL,不尝试处理 Buildkite 等其他提供商。
  • 向用户总结失败信息:失败检查名称、运行 URL(如有)以及简洁的日志片段,并明确指出缺失的日志。
  • 使用 plan 技能起草简洁计划并请求批准。
  • 批准后实施计划,总结差异/测试,并询问是否打开 PR。
  • 变更后建议重新运行相关测试和 gh pr checks 以确认。

使用方式

前置条件:确保 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 status,需提升范围(workflow/repo),在此之前运行 gh auth login。若沙箱化认证状态检查失败,以 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 技能起草简洁计划并请求批准。
  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

适用场景

适用于需要排查 GitHub PR 中 GitHub Actions 检查失败、提取失败日志并规划修复的开发工作流。

限制

  • 仅处理 GitHub Actions 类型的检查;非 GitHub Actions 检查仅标记为外部并报告 URL。
  • 不处理 Buildkite 或其他提供商。
  • 依赖 gh 认证,需要 workflow/repo 权限范围。
  • 修复实施需用户明确批准。
  • 关于收费、价格、平台支持范围等更多信息暂未提供。