gh-fix-ci

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Gh Pr Checks Plan Fix

Gh PR检查修复计划

Overview

概述

Use gh to locate failing PR checks, fetch GitHub Actions logs for actionable failures, summarize the failure snippet, then propose a fix plan and implement after explicit approval.
  • If a plan-oriented skill (for example
    create-plan
    ) is available, use it; otherwise draft a concise plan inline and request approval before implementing.
Prereq: authenticate with the standard GitHub CLI once (for example, run
gh auth login
), then confirm with
gh auth status
(repo + workflow scopes are typically required).
使用gh定位失败的PR检查,获取GitHub Actions日志以找出可操作的失败点,总结失败片段,然后提出修复计划并在获得明确批准后实施。
  • 如果有面向计划的技能(例如
    create-plan
    )可用,请使用该技能;否则在本地起草简洁的计划,并在实施前请求批准。
前置要求:先通过标准GitHub CLI完成身份验证(例如运行
gh auth login
),然后通过
gh auth status
确认(通常需要仓库和工作流权限)。

Inputs

输入参数

  • repo
    : path inside the repo (default
    .
    )
  • pr
    : PR number or URL (optional; defaults to current branch PR)
  • gh
    authentication for the repo host
  • repo
    :仓库内的路径(默认值为
    .
  • pr
    :PR编号或URL(可选;默认为当前分支对应的PR)
  • 针对仓库托管平台的
    gh
    身份验证

Quick start

快速开始

  • python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"
  • Add
    --json
    if you want machine-friendly output for summarization.
  • python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"
  • 如果需要用于总结的机器友好型输出,请添加
    --json
    参数。

Workflow

工作流程

  1. Verify gh authentication.
    • Run
      gh auth status
      in the repo.
    • If unauthenticated, ask the user to run
      gh auth login
      (ensuring repo + workflow scopes) before proceeding.
  2. Resolve the PR.
    • Prefer the current branch PR:
      gh pr view --json number,url
      .
    • If the user provides a PR number or URL, use that directly.
  3. Inspect failing checks (GitHub Actions only).
    • Preferred: run the bundled script (handles gh field drift and job-log fallbacks):
      • python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"
      • Add
        --json
        for machine-friendly output.
    • Manual fallback:
      • gh pr checks <pr> --json name,state,bucket,link,startedAt,completedAt,workflow
        • If a field is rejected, rerun with the available fields reported by
          gh
          .
      • For each failing check, extract the run id from
        detailsUrl
        and run:
        • gh run view <run_id> --json name,workflowName,conclusion,status,url,event,headBranch,headSha
        • gh run view <run_id> --log
      • If the run log says it is still in progress, fetch job logs directly:
        • gh api "/repos/<owner>/<repo>/actions/jobs/<job_id>/logs" > "<path>"
  4. Scope non-GitHub Actions checks.
    • If
      detailsUrl
      is not a GitHub Actions run, label it as external and only report the URL.
    • Do not attempt Buildkite or other providers; keep the workflow lean.
  5. Summarize failures for the user.
    • Provide the failing check name, run URL (if any), and a concise log snippet.
    • Call out missing logs explicitly.
  6. Create a plan.
    • Use the
      create-plan
      skill to draft a concise plan and request approval.
  7. Implement after approval.
    • Apply the approved plan, summarize diffs/tests, and ask about opening a PR.
  8. Recheck status.
    • After changes, suggest re-running the relevant tests and
      gh pr checks
      to confirm.
  1. 验证gh身份验证。
    • 在仓库中运行
      gh auth status
    • 如果未通过身份验证,请要求用户先运行
      gh auth login
      (确保获取仓库和工作流权限),然后再继续。
  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
        中提取运行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
      确认修复效果。

Bundled Resources

内置资源

scripts/inspect_pr_checks.py

scripts/inspect_pr_checks.py

Fetch failing PR checks, pull GitHub Actions logs, and extract a failure snippet. Exits non-zero when failures remain so it can be used in automation.
Usage examples:
  • 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
获取失败的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