Gh Pr Checks Plan Fix - Plan zur Behebung von PR-Prüfungen
Übersicht
Nutze gh, um fehlschlagende PR-Prüfungen zu lokalisieren, GitHub Actions-Logs für behebbare Fehler abzurufen, den Fehlerausschnitt zusammenzufassen und anschließend einen Fix-Plan vorzuschlagen. Dieser wird nach expliziter Zustimmung umgesetzt.
- Hängt vom
plan-Skill ab, um den Fix-Plan zu entwerfen und freizugeben.
Voraussetzung: Stelle sicher, dass gh authentifiziert ist (z. B. einmal gh auth login ausführen), und führe dann gh auth status mit eskalierten Berechtigungen aus (Workflow-/Repo-Scopes), damit gh-Befehle erfolgreich sind. Wenn die Sandbox gh auth status blockiert, führe es erneut mit sandbox_permissions=require_escalated aus.
Eingaben
repo: Pfad innerhalb des Repos (Standard:.)pr: PR-Nummer oder URL (optional; standardmäßig der PR des aktuellen Branches)gh-Authentifizierung für den Repo-Host
Schnellstart
python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"- Füge
--jsonhinzu, wenn du maschinenlesbare Ausgabe für die Zusammenfassung benötigst.
Arbeitsablauf
- Überprüfe die gh-Authentifizierung.
- Führe
gh auth statusim Repo mit eskalierten Scopes (workflow/repo) aus, nachdemgh auth loginausgeführt wurde. - Falls der Auth-Status in der Sandbox fehlschlägt, wiederhole den Befehl mit
sandbox_permissions=require_escalated, um Netzwerk-/Keyring-Zugriff zu erlauben. - Bei fehlender Authentifizierung bitte den Benutzer, sich vor dem Fortfahren anzumelden.
- Führe
- Löse den PR auf.
- Bevorzuge den PR des aktuellen Branches:
gh pr view --json number,url. - Wenn der Benutzer eine PR-Nummer oder URL angibt, verwende diese direkt.
- Bevorzuge den PR des aktuellen Branches:
- Überprüfe fehlschlagende Checks (nur GitHub Actions).
- Empfohlen: Führe das gebündelte Skript aus (handhabt gh-Feldabweichungen und Job-Log-Fallbacks):
python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"- Füge
--jsonfür maschinenlesbare Ausgabe hinzu.
- Manuelle Alternative:
gh pr checks <pr> --json name,state,bucket,link,startedAt,completedAt,workflow- Wenn ein Feld abgelehnt wird, wiederhole den Befehl mit den verfügbaren Feldern, die von
ghgemeldet werden.
- Wenn ein Feld abgelehnt wird, wiederhole den Befehl mit den verfügbaren Feldern, die von
- Extrahiere für jeden fehlschlagenden Check die Run-ID aus
detailsUrlund führe aus:gh run view <run_id> --json name,workflowName,conclusion,status,url,event,headBranch,headShagh run view <run_id> --log
- Wenn das Run-Log noch "in progress" anzeigt, rufe die Job-Logs direkt ab:
gh api "/repos/<owner>/<repo>/actions/jobs/<job_id>/logs" > "<path>"
- Empfohlen: Führe das gebündelte Skript aus (handhabt gh-Feldabweichungen und Job-Log-Fallbacks):
- Nicht-GitHub-Actions-Checks abgrenzen.
- Wenn
detailsUrlkein GitHub Actions-Run ist, markiere den Check als extern und gib nur die URL an. - Versuche nicht, Buildkite oder andere Anbieter zu integrieren; halte den Workflow schlank.
- Wenn
- Fasse die Fehler für den Benutzer zusammen.
- Gib den Namen des fehlgeschlagenen Checks, die Run-URL (falls vorhanden) und einen prägnanten Log-Auszug an.
- Weise explizit auf fehlende Logs hin.
- Erstelle einen Plan.
- Nutze das
plan-Skill, um einen prägnanten Plan zu entwerfen und um Freigabe zu bitten.
- Nutze das
- Setze den Plan nach Freigabe um.
- Wende den freigegebenen Plan an, fasse Diffs/Tests zusammen und frage nach dem Öffnen eines PRs.
- Überprüfe den Status erneut.
- Nach den Änderungen schlage vor, die relevanten Tests erneut auszuführen und
gh pr checkszu verwenden, um den Erfolg zu bestätigen.
- Nach den Änderungen schlage vor, die relevanten Tests erneut auszuführen und
Gebündelte Ressourcen
scripts/inspect_pr_checks.py
Ruft fehlschlagende PR-Checks ab, lädt GitHub Actions-Logs herunter und extrahiert einen Fehlerausschnitt. Beendet sich mit einem Fehlercode, wenn noch Fehler bestehen, sodass es in der Automatisierung verwendet werden kann.
Verwendungsbeispiele:
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" --jsonpython "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --max-lines 200 --context 40