SuperAPI AI 工具集

gh-fix-ci

部署与运维

查看项目

更新于 10-16 01:17

技能介绍

用途:当用户要求调试或修复 GitHub PR 中失败的 GitHub Actions 检查时使用。通过 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 auth status 验证认证,未认证则请用户先运行 gh auth login(确保 repo 与 workflow 权限)。2) 解析 PR:优先当前分支 PR,运行 gh pr view --json number,url;若用户提供编号或 URL 则直接使用。3) 检查失败项(仅 GitHub Actions):优先运行捆绑脚本(可处理 gh 字段变动与作业日志回退);手动回退可用 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) 创建计划:使用 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。

限制:仅覆盖 GitHub Actions 检查,其他 CI 提供方不处理;需要预先完成 gh 认证;实施前必须获得用户明确批准。