关于 openai-gh-fix-ci
面向编码 Agent 的技能,用于调查 GitHub PR 检查失败。它获取 GitHub Actions 日志并总结错误,实施修复前须先获批计划。
主要功能
- 01检查失败的 PR 状态
- 02获取 GitHub Actions 日志
- 03总结失败日志片段
- 04修复前请求计划审批
- 05变更后重新检查状态
适用场景
- 01排查失败的 PR
- 02查看 CI 日志中的错误
- 03制定经批准的代码修复计划
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ trailofbits/ skills-curated --skill openai-gh-fix-ci安装后在 Claude Code 中输入/openai-gh-fix-ci确认已加载。
附带文件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 "{baseDir}/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"- 如果需要便于机器处理的输出以便进行总结,请添加
--json。
工作流
- 验证 gh 身份验证状态。
- 在仓库中运行
gh auth status。 - 如果尚未通过身份验证,请让用户运行
gh auth login(确保包含 repo 和 workflow 作用域)后再继续。
- 在仓库中运行
- 确定 PR。
- 优先使用当前分支的 PR:
gh pr view --json number,url。 - 如果用户提供了 PR 编号或 URL,请直接使用。
- 优先使用当前分支的 PR:
- 检查失败的检查(仅限 GitHub Actions)。
- 首选:运行捆绑脚本(可处理 gh 字段变更和作业日志回退):
python "{baseDir}/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,headShagh run view <run_id> --log
- 如果运行日志显示任务仍在进行中,请直接获取作业日志:
gh api "/repos/<owner>/<repo>/actions/jobs/<job_id>/logs" > "<path>"
- 首选:运行捆绑脚本(可处理 gh 字段变更和作业日志回退):
- 界定非 GitHub Actions 检查的范围。
- 如果
detailsUrl不是 GitHub Actions 运行链接,请将其标记为外部检查,并仅报告 URL。 - 不要尝试使用 Buildkite 或其他提供商;保持工作流简洁。
- 如果
- 为用户总结失败情况。
- 提供失败检查的名称、运行 URL(如果有)以及简洁的日志片段。
- 明确指出缺失的日志。
- 制定计划。
- 使用
create-plan技能起草简洁的计划并请求批准。
- 使用
- 获得批准后实施。
- 按照已批准的计划执行,总结差异和测试,并询问是否要开 PR。
- 重新检查状态。
- 完成更改后,建议重新运行相关测试和
gh pr checks以确认。
- 完成更改后,建议重新运行相关测试和
捆绑资源
scripts/inspect_pr_checks.py
获取失败的 PR 检查,拉取 GitHub Actions 日志,并提取失败片段。若仍有失败,则以非零状态码退出,因此可用于自动化。
使用示例:
python "{baseDir}/scripts/inspect_pr_checks.py" --repo "." --pr "123"python "{baseDir}/scripts/inspect_pr_checks.py" --repo "." --pr "https://github.com/org/repo/pull/123" --jsonpython "{baseDir}/scripts/inspect_pr_checks.py" --repo "." --max-lines 200 --context 40
适用场景
不适用场景
评论
支持 Markdown