[ PROMPT_NODE_24816 ]
gh-fix-ci
[ SKILL_DOCUMENTATION ]
# Gh PR 检查修复计划
## 概述
使用 gh 定位失败的 PR 检查,获取 GitHub Actions 日志以查找可操作的失败项,总结失败片段,然后提出修复计划并在获得明确批准后实施。
- 依赖 `plan` 工具来起草和批准修复计划。
前提条件:确保 `gh` 已通过身份验证(例如,运行一次 `gh auth login`),然后以提升的权限(包含 workflow/repo 作用域)运行 `gh auth status`,以确保 `gh` 命令成功执行。如果沙箱环境阻止了 `gh auth status`,请使用 `sandbox_permissions=require_escalated` 重新运行。
## 输入
- `repo`: 仓库内的路径(默认为 `.`)
- `pr`: PR 编号或 URL(可选;默认为当前分支的 PR)
- `gh`: 仓库主机的身份验证
## 快速开始
- `python "/scripts/inspect_pr_checks.py" --repo "." --pr ""`
- 如果需要机器可读的输出以进行总结,请添加 `--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 "/scripts/inspect_pr_checks.py" --repo "." --pr ""`
- 添加 `--json` 以获取机器可读的输出。
- 手动回退:
- `gh pr checks --json name,state,bucket,link,startedAt,completedAt,workflow`
- 如果字段被拒绝,请使用 `gh` 报告的可用字段重新运行。
- 对于每个失败的检查,从 `detailsUrl` 中提取运行 ID 并运行:
- `gh run view --json name,workflowName,conclusion,status,url,event,headBranch,headSha`
- `gh run view --log`
- 如果运行日志显示仍在进行中,请直接获取作业日志:
- `gh api "/repos///actions/jobs//logs" > ""`
4. 确定非 GitHub Actions 检查的范围。
- 如果 `detailsUrl` 不是 GitHub Actions 运行,将其标记为外部并仅报告 URL。
- 不要尝试 Buildkite 或其他提供商;保持工作流精简。
5. 总结失败原因