mcpField
G
gh-fix-ci

gh-fix-ci

github.com/gannonhCloud & DevOps235 installsUpdated 8w ago
Repository

About gh-fix-ci

gh-fix-ci is a coding skill for developers that uses gh to inspect failing GitHub Actions checks, summarize log evidence, and guide fixes through verification. It also includes a script for extracting failure snippets.

Key features

  1. 01Locate failing PR checks
  2. 02Fetch GitHub Actions logs
  3. 03Summarize failure evidence
  4. 04Plan, apply, and verify fixes
  5. 05Extract snippets with a bundled script

Use cases

  1. 01Diagnose a failing pull request
  2. 02Find actionable errors in CI logs
  3. 03Recheck CI after code changes

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/gannonh/skills --skill gh-fix-ci

After installing, type/gh-fix-ciin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

LICENSE.txt
agents/
openai.yaml
scripts/
inspect_pr_checks.py

Details

From the project README

Overview

Use gh to locate failing PR checks, fetch GitHub Actions logs for actionable failures, summarize the failures, and implement fixes.

Inputs

  • repo: path inside the repo (default .)
  • pr: PR number or URL (optional; defaults to current branch PR)
  • gh authentication for the repo host

Quick start

  • python3 "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"
  • Add --json if you want machine-friendly output for summarization.

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):
      • python3 "<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.
    • 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.
  7. Implement plan.
    • Apply the plan, summarize diffs/tests, commit and push changes.
  8. Recheck status.
    • After changes, re-run the relevant tests and gh pr checks to confirm.
    • If new or existing failures remain, repeat the workflow until CI passes
  9. Summarize outcome.
    • Once CI checks pass, summarize the fix and confirm with the user before merging or proceeding to the next steps in their workflow.

Bundled Resources

/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:

  • python3 "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "123"
  • python3 "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "https://github.com/org/repo/pull/123" --json
  • python3 "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --max-lines 200 --context 40

Comments

Markdown supported