Referenz
Interaktionsrichtlinie
gh verhält sich in Nicht-TTY-Kontexten bereits korrekt: Es überspringt den Pager, entfernt ANSI-Farben und bricht schnell mit einer hilfreichen Fehlermeldung ab, anstatt eine Eingabe zu verlangen (z. B. must provide --title and --body when not running interactively). Sie müssen nicht defensiv GH_PAGER setzen oder --no-pager übergeben (ein solches Flag existiert nicht).
JSON parsen
Die menschliche Ausgabe von gh ist spaltenweise formatiert. Wenn Sie strukturierte Daten benötigen:
- Fügen Sie
--json feld1,feld2,...für strukturierte Ausgabe hinzu. - Führen Sie einen Befehl mit
--jsonund ohne Feldliste aus, um die vollständige Menge verfügbarer Felder anzuzeigen, und wählen Sie dann aus, was Sie brauchen. - Verwenden Sie
--jq '<ausdruck>'zum Filtern, ohne durch ein separatesjqzu leiten. - Verwenden Sie
--template '<go-template>'(zusammen mit--json), wenn Sie eine formatierte Textausgabe wünschen. Beachten Sie, dass--template/-Tmit einem Body-Template-Flag bei einigen Befehlen kollidiert (z. B.gh pr create -T,gh issue create -T); überprüfen Sie immer--help, bevor Sie annehmen, welches Flag Sie verwenden.
Paginierung und stumme Kappung
Listenbefehle begrenzen die Ergebnisse.
gh issue list,gh pr list,gh search ...: übergeben Sie-L N(--limit N). Der Standardwert liegt meist bei 30.gh issue list/gh pr listgeben keine aggregierten Summen wietotalCountüber--jsonaus. Wenn Sie eine echte Gesamtsumme benötigen, verwenden Siegh api graphqlzum Abfragen vontotalCount; andernfalls behandeln Sie-Lals Obergrenze für den aktuellen Aufruf.- Für direkte API-Aufrufe verwenden Sie
gh api --paginate <pfad>. Kombinieren Sie dies mit--jqund (optional)--slurp, um ein Array zusammenzusetzen.
Repo-Ansprache
gh leitet das Repo aus den Git-Remotes des aktuellen Arbeitsverzeichnisses ab.
Übergeben Sie --repo OWNER/REPO (-R), um das aufgelöste CWD-Repo zu überschreiben.
Suche vs. Liste
gh search issues|prs|code|repos|commits|usersverwendet den GitHub-Suchindex und akzeptiert die vollständige Suchsyntax (is:open,author:,label:,repo:owner/name,in:title, ...). Übergeben Sie die gesamte Abfrage als einen zitierten String, genau wie bei--search:gh search issues "is:open author:foo repo:cli/cli". Bevorzugen Sie dies für alles, was mehrere Repos betrifft oder nach Autor/Label gefiltert wird.gh issue list --search "..."undgh pr list --search "..."akzeptieren dieselbe Syntax, sind aber auf ein Repo beschränkt.
Fallback auf gh api für alles, was --json nicht bereitstellt
Manchmal sind nützliche Daten nicht in den typisierten Befehlen enthalten. Beispiele:
- Review-Thread-Kommentare zu einem PR:
gh api repos/{owner}/{repo}/pulls/{n}/comments(das--comments-Flag vongh pr viewzeigt nur Issue-level-Kommentare an). - Beliebiges GraphQL:
gh api graphql -f query='...' -F var=value. - REST-Kürzel:
gh api repos/{owner}/{repo}/...– beachten Sie, dass der Platzhalter{owner}/{repo}automatisch gefüllt wird, wenn Sie aus einem Repo mit erkannten Remotes heraus aufrufen; übergeben Sie diese literal, wenn Sie Determiniertheit wünschen.
Authentifizierung
gh auth statusgibt die aktiven Host(s), den Benutzer und die Umgebungsvariable aus, die ggf. beachtet wird.gh auth status --jsonwird unterstützt.
Weitere Hinweise
gh pr checkout <n>wechselt Branches. Verwenden Siegh pr diff <n>odergh pr view <n>, wenn Sie nur lesen müssen.NO_COLOR,CLICOLOR_FORCEundGH_FORCE_TTYwerden beachtet. Setzen SieGH_FORCE_TTY=1, wenn Sie TTY-Ausgabe (Farben, Tabellen, Pager, Interaktivität) innerhalb einer Agenten-Umgebung wünschen; lassen Sie es andernfalls ungesetzt.