Get the FREE Ultimate OpenClaw Setup Guide →

gh-fix-ci

npx machina-cli add skill OutlineDriven/odin-claude-plugin/gh-fix-ci --openclaw
Files (1)
SKILL.md
3.8 KB

Gh Pr Checks Plan Fix

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.

  • Depends on the plan skill for drafting and approving the fix plan.

Prereq: ensure gh is authenticated (for example, run gh auth login once), then run gh auth status with escalated permissions (include workflow/repo scopes) so gh commands succeed. If sandboxing blocks gh auth status, rerun it with sandbox_permissions=require_escalated.

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

  • python "<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 with escalated scopes (workflow/repo) after running gh auth login.
    • If sandboxed auth status fails, rerun the command with sandbox_permissions=require_escalated to allow network/keyring access.
    • If unauthenticated, ask the user to log in 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 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.

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:

  • 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

Source

git clone https://github.com/OutlineDriven/odin-claude-plugin/blob/main/skills/gh-fix-ci/SKILL.mdView on GitHub

Overview

gh-fix-ci helps you debug failing GitHub Actions checks on a PR by using gh to locate failures, fetch logs, and summarize the failure context. It then drafts a concise fix plan and applies the approved changes, reinforcing CI reliability. External checks (like Buildkite) are reported by URL and kept out of scope.

How This Skill Works

The tool uses gh to identify failing checks on the PR, fetches GitHub Actions logs, and extracts a concise failure snippet. It then relies on the plan skill to draft a fix strategy and awaits your approval before applying changes and summarizing diffs. If a check is external (non-GHA), it only reports the details URL and marks it out of scope.

When to Use It

  • When a PR's GitHub Actions checks fail and you need a clear root-cause summary.
  • When you want a concrete, approved fix plan before touching code.
  • When you need to fetch and inspect detailed run logs for failing checks.
  • When non-GitHub Actions checks appear (e.g., Buildkite) and you want them scoped out.
  • When you want to re-run checks after applying fixes and confirm status.

Quick Start

  1. Step 1: Run python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>" --json
  2. Step 2: Review the failure snippet and proposed plan
  3. Step 3: Approve the plan to apply fixes and recheck PR status

Best Practices

  • Ensure gh is authenticated with repository and workflow scopes before use.
  • Prefer the current PR or explicitly specify PR URL/number.
  • Use --json outputs for machine-readable logs and summaries.
  • Validate failure logs to avoid chasing flaky messages.
  • Document changes and seek explicit approval before implementing fixes.

Example Use Cases

  • PR failing at a GitHub Actions job due to a flaky step; logs are parsed and a fix plan is proposed.
  • Workflow YAML error blocks actions; plan focuses on correcting the step or env config.
  • Missing secret causes failure; plan includes adding the secret to repo secrets or CI vars.
  • External check like Buildkite; only the details URL is reported and no changes attempted.
  • Post-fix, re-run gh pr checks to verify status and prepare for PR update.

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers