mcpField
O
openai-gh-fix-ci

openai-gh-fix-ci

github.com/trailofbits测试与质量52275 次安装15 周前更新
代码仓库

关于 openai-gh-fix-ci

面向编码 Agent 的技能,用于调查 GitHub PR 检查失败。它获取 GitHub Actions 日志并总结错误,实施修复前须先获批计划。

主要功能

  1. 01检查失败的 PR 状态
  2. 02获取 GitHub Actions 日志
  3. 03总结失败日志片段
  4. 04修复前请求计划审批
  5. 05变更后重新检查状态

适用场景

  1. 01排查失败的 PR
  2. 02查看 CI 日志中的错误
  3. 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。

工作流

  1. 验证 gh 身份验证状态。
    • 在仓库中运行 gh auth status。
    • 如果尚未通过身份验证,请让用户运行 gh auth login(确保包含 repo 和 workflow 作用域)后再继续。
  2. 确定 PR。
    • 优先使用当前分支的 PR:gh pr view --json number,url。
    • 如果用户提供了 PR 编号或 URL,请直接使用。
  3. 检查失败的检查(仅限 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,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 "{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" --json
  • python "{baseDir}/scripts/inspect_pr_checks.py" --repo "." --max-lines 200 --context 40

适用场景

不适用场景

评论

支持 Markdown