SpyBara
Go Premium

code-review-pull-requests.md 2026-10-28 23:57 UTC to 2026-10-29 23:57 UTC

No changes for this document in this history range.

2026
Thu 15 23:58 Tue 20 23:00 Wed 21 23:02 Thu 22 22:58 Fri 23 22:59 Sun 25 23:58

Reviews für einen Pull Request lesen und anfordern

Lesen Sie Code-Review-Ergebnisse zu Ihrem GitHub-Pull-Request, reagieren Sie darauf oder verwerfen Sie sie, und fordern Sie mit @claude review ein Review an.

Code Review ist ein verwalteter Dienst, den ein Owner in Ihrer Claude-Organisation für eine Reihe von GitHub-Repositorys aktiviert. Sobald er aktiviert ist, prüft Claude Pull Requests in diesen Repositorys und veröffentlicht seine Ergebnisse als Inline-Kommentare, als Zusammenfassung im Review-Text und als Check Run mit dem Namen Claude Code Review. Ein Review genehmigt oder blockiert Ihren Pull Request nie, und der Check Run endet nie mit einem Fehlschlag.

Ein Owner legt für jedes Repository fest, wann Reviews ausgeführt werden und wie gründlich sie sind.

[!NOTE]

Wenn Ihr Plan Code Review nicht umfasst, können Sie Ihren Branch trotzdem in einer Claude Code-Sitzung von Claude prüfen lassen: siehe Lokal mit /code-review prüfen.

Schweregrade

Claude veröffentlicht jedes Ergebnis als Inline-Kommentar an den betroffenen Zeilen und kennzeichnet es mit einem von drei Schweregraden:

Markierung Schweregrad Bedeutung
🔴 Important Ein Fehler, der vor dem Mergen behoben werden sollte
🟡 Nit Ein kleineres Problem, das eine Behebung wert ist, aber nicht blockiert
🟣 Pre-existing Ein Fehler, der in der Codebasis existiert, aber nicht durch diesen PR eingeführt wurde

Wenn das Review seine Begründung aufgezeichnet hat, enthält das Ergebnis einen eingeklappten Abschnitt Why this was flagged. Klappen Sie ihn auf, um zu lesen, warum Claude das Problem gekennzeichnet und wie es das Problem verifiziert hat.

Informationen dazu, wie Sie ändern, was Claude in Ihrem Repository kennzeichnet oder wie es Schweregrade einstuft, finden Sie unter Code Review anpassen.

Auf Ergebnisse reagieren

Sie können mergen, ohne auf ein Ergebnis zu reagieren, sofern die eigenen Regeln Ihres Repositorys dies nicht verlangen. Wenn dessen Branch-Schutz die Auflösung von Konversationen verlangt, lösen Sie den Thread jedes Ergebnisses auf, bevor Sie mergen.

Um ein Ergebnis zu erledigen, lösen Sie seinen Thread auf oder pushen Sie eine Korrektur.

  • Ohne Codeänderung verwerfen: Lösen Sie den Thread selbst auf GitHub auf. Eine Antwort allein verwirft ein Ergebnis nicht.
  • Das Problem beheben: Ändern Sie den Code und pushen Sie. Das nächste Review des Pull Requests löst den früheren Thread auf, wenn es das Problem als behoben einstuft, unabhängig davon, ob dieses Review automatisch bei Ihrem Push ausgeführt wird oder Sie es anfordern.
  • Erklären oder widersprechen: Antworten Sie auf den Kommentar. Claude antwortet nicht sofort, und eine Antwort startet kein Review. Das nächste Review des Pull Requests liest die Antworten auf seine früheren Ergebnisse und kann den Thread auflösen oder eine Folgeantwort veröffentlichen. Wenn dieselbe Art von Ergebnis immer wieder auftaucht, bitten Sie einen Maintainer, eine Regel zu REVIEW.md hinzuzufügen.

Um dieses nächste Review ohne Push zu erhalten, schreiben Sie @claude review als Pull-Request-Kommentar auf oberster Ebene.

Ausgabe des Check Runs

Der Link Details am Check Run Claude Code Review öffnet die Ergebnisse in einer nach Schweregrad sortierten Tabelle, einschließlich aller Ergebnisse, deren Inline-Kommentar GitHub nicht angenommen hat:

Schweregrad Datei:Zeile Problem
🔴 Important src/auth/session.ts:142 Token-Aktualisierung steht in einer Race Condition mit dem Logout, wodurch veraltete Sitzungen aktiv bleiben
🟡 Nit src/auth/session.ts:88 parseExpiry gibt bei fehlerhafter Eingabe stillschweigend 0 zurück

Ein Ergebnis, das eine Zeile hat, aber nicht als Inline-Kommentar veröffentlicht wurde, erscheint als Annotation im Tab Files changed an den betroffenen Zeilen. Important-Ergebnisse werden rot angezeigt, Nits gelb und bereits vorhandene Fehler grau.

Der Check Run endet als neutral oder, nach manchen Pushes, die keine Dateien ändern und das frühere Ergebnis beibehalten, als übersprungen. Er endet nie mit einem Fehlschlag, sodass ein abgeschlossenes Review keinen erforderlichen Check fehlschlagen lässt. Wenn Sie keine Ergebnisse sehen oder ein Review nicht ausgeführt wurde, siehe Fehlerbehebung bei Code Review.

Wenn ein Push das frühere Ergebnis beibehält

Wenn der Check Run nach Ihrem Push einen dieser Titel hat, hat Code Review das Ergebnis eines früheren Reviews beibehalten, statt ein neues zu starten:

  • Code review skipped — no new changes: Kein Important-Ergebnis aus dem früheren Review ist noch offen, daher benötigen Sie kein neues Review
  • Code review not repeated — earlier findings still open: Um ein neues Review zu starten, pushen Sie eine Korrektur für ein offenes Important-Ergebnis oder lösen Sie dessen Thread auf und pushen Sie erneut

Auf github.com kann Code Review ein Ergebnis beibehalten, wenn beide der folgenden Bedingungen erfüllt sind:

  • Der Pull Request fügt weiterhin dieselben Zeilen hinzu und entfernt dieselben Zeilen, etwa nach einem leeren Commit, einem konfliktfreien Merge des Basis-Branches oder einem konfliktfreien Rebase
  • Seit diesem Review hat niemand den Thread eines Important-Ergebnisses aufgelöst

Um ein Review ohne Codeänderung zu erhalten, kommentieren Sie @claude review oder klicken Sie im Check Run auf Re-run.

Das Ergebnis aus einem Skript lesen

Um einen Merge zu steuern oder eine Zusammenfassung aus Ihrem eigenen CI zu veröffentlichen, parsen Sie die letzte Zeile des Details-Texts mit gh und jq. Diese Zeile ist ein HTML-Kommentar, der die Anzahlen pro Schweregrad als JSON enthält:

<!-- bughunter-severity: {"nit":1,"normal":2,"pre_existing":0} -->

Die Zeilen darüber können Dateinamen aus dem Pull Request enthalten. Wenn Sie den Text auf eigene Weise parsen, entnehmen Sie die Anzahlen nur der letzten Zeile, wie es der Befehl in diesen Schritten tut.

1. Die Check-Run-ID ermitteln

Listen Sie in Ihrer Shell die Check Runs des Commits auf und nehmen Sie die id des Runs Claude Code Review. Ersetzen Sie OWNER und REPO durch den Owner und Namen Ihres Repositorys und <commit-sha> durch den Head-Commit des Pull Requests:

gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'

Wenn es für den Commit mehr als einen Run Claude Code Review gab, etwa nach einem Re-run, listet GitHub nur den neuesten auf.

2. Die Anzahl pro Schweregrad lesen

Lesen Sie die Anzahlen aus dem Feld output.text des Check Runs, das den Details-Text enthält. Ersetzen Sie CHECK_RUN_ID durch die ID:

gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID --jq '
  (.output.text | split("\n") | last
    | scan("^<!-- bughunter-severity: (.*) -->$")[0] | fromjson)?
  // error("no severity line")'

Dies gibt ein JSON-Objekt mit einer Anzahl pro Schweregrad aus, dessen Schlüssel alphabetisch sortiert sind, zum Beispiel {"nit": 1, "normal": 2, "pre_existing": 0}. Außer bei einem Check Run, der ein früheres Ergebnis beibehalten hat, enthalten die Anzahlen Ergebnisse aus früheren Reviews des Pull Requests, deren Threads noch offen sind.

Unter dem Titel Code review skipped — no new changes lassen die Anzahlen Nits und bereits vorhandene Ergebnisse aus früheren Reviews aus, die noch offen sind. In diesem Fall ist kein Important-Ergebnis aus dem früheren Review mehr offen.

3. Auf das Ergebnis reagieren

Lassen Sie Ihr Skript diese Fälle in dieser Reihenfolge behandeln:

  • Der Titel beginnt mit Code review not repeated: Code Review hat ein früheres Ergebnis beibehalten, dessen Important-Ergebnisse noch offen sind, und der Check Run hat keine Schweregrad-Zeile. Lesen Sie den Titel vor den Anzahlen, mit gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID --jq .output.title. Lassen Sie den Job fehlschlagen, wenn Sie den Merge steuern möchten.
  • Der Titel endet mit no new changes: Lassen Sie den Job bestehen, ohne die Anzahlen zu lesen
  • normal ist größer als null: Lassen Sie den Job fehlschlagen, wenn Sie den Merge steuern möchten. Der Schlüssel normal enthält die Anzahl der Important-Ergebnisse, Claude hat also mindestens einen Fehler gefunden, der vor dem Merge behoben werden sollte. Um nur diese Anzahl auszugeben, fügen Sie | .normal vor dem schließenden einfachen Anführungszeichen ein.
  • Die Zeile fehlt: Der Befehl gibt statt der Anzahlen einen Fehler aus, der no severity line enthält, und endet mit einem Exit-Status ungleich null. Behandeln Sie dies als fehlendes Urteil und nicht als null Ergebnisse. Ein Check Run für ein Review, das fehlgeschlagen ist, eine Zeitüberschreitung hatte, abgebrochen oder durch ein neueres ersetzt wurde, hat keine solche Zeile, und auch manche abgeschlossene Reviews haben keine.

Ein Review anfordern

Wenn Ihr Pull Request ein Entwurf ist oder aus einem Fork stammt, wird er von automatischen Reviews übersprungen; fordern Sie das Review daher mit einem Kommentarbefehl an. Um ein Review für Ihren Pull Request zu erhalten, wählen Sie eine dieser Möglichkeiten:

  • Öffnen oder als bereit markieren: In einem Repository mit der Einstellung Once after PR creation oder After every push startet ein Review, wenn Sie den Pull Request öffnen oder erneut öffnen oder einen Entwurf als bereit für das Review markieren.
  • Einen Befehl kommentieren: Veröffentlichen Sie @claude review im Pull Request.
  • Einen Commit pushen: Ein Push startet ein Review in einem Repository mit der Einstellung After every push oder bei einem Pull Request, den Sie mit @claude review always abonniert haben. Wenn Ihr Pull Request nach dem Push weiterhin dieselben Zeilen hinzufügt und entfernt, kann Code Review stattdessen das frühere Ergebnis beibehalten.
  • Auf Re-run klicken: Nachdem ein Review bei einem Pull Request, der nicht aus einem Fork stammt, fehlgeschlagen ist oder eine Zeitüberschreitung hatte, führen Sie es erneut aus, und zwar über den Check Run. Bei einem Pull Request, der nicht aus einem Fork stammt, können Sie auch nach einem Push, bei dem das frühere Ergebnis beibehalten wurde, auf Re-run klicken.
  • Auf den automatischen Wiederholungsversuch warten: Ein Review, dessen Sitzung unterbrochen wurde, wird einmal automatisch erneut versucht. Die Zusammenfassung des Check Runs gibt an, wann dies geschieht.

Kommentarbefehle

Veröffentlichen Sie einen dieser Befehle als Kommentar im Pull Request:

Befehl Was er bewirkt Wann Sie ihn verwenden
@claude review Startet ein einzelnes Review, ohne den PR für künftige Pushes zu abonnieren Sie möchten jetzt ein Review, etwa bei einem Pull Request in einem Repository mit der Einstellung Manual, oder in den anderen Modi sofort ein weiteres Review
@claude review always Startet ein Review und abonniert den PR künftig für durch Pushes ausgelöste Reviews Sie möchten, dass nachfolgende Pushes Reviews starten, etwa bei einem PR mit hoher Priorität in einem Repository mit der Einstellung Manual
@claude review once Wie @claude review: startet ein einzelnes Review ohne Abonnement Dieselben Fälle wie bei @claude review
@claude review stop Beendet das Abonnement des PR für durch Pushes ausgelöste Reviews, ohne ein Review zu starten oder ein bereits laufendes abzubrechen. Claude antwortet mit einem Kommentar statt mit einem Check Run. Sie haben einen PR mit @claude review always in einem Repository mit der Einstellung Manual oder Once after PR creation abonniert und möchten nicht mehr, dass jeder Push ein Review startet
@claude review off oder @claude review pause Wie @claude review stop Dieselben Fälle wie bei @claude review stop

In einem Repository mit der Einstellung After every push können Sie Reviews nicht mit einem Kommentar stoppen, da Pushes dort Reviews mit oder ohne Abonnement starten. Um zu verhindern, dass Pushes dort Reviews für einen einzelnen Pull Request starten, wandeln Sie ihn in einen Entwurf um. Wenn Sie ihn wieder als bereit für das Review markieren, startet ein Review.

Damit ein Kommentarbefehl wirksam wird, müssen alle diese Bedingungen erfüllt sein:

  • Veröffentlichen Sie ihn als neuen Pull-Request-Kommentar auf oberster Ebene, nicht als Inline-Kommentar an einer Diff-Zeile und nicht als Text eines Reviews. Das Bearbeiten eines früheren Kommentars zählt nicht.
  • Setzen Sie den gesamten Befehl in eine Zeile am Anfang des Kommentars. Weiterer Text kann folgen. Wenn always oder stop falsch geschrieben ist oder in einer späteren Zeile steht, liest Claude den Kommentar als einfaches @claude review und startet ein einzelnes Review. Groß- und Kleinschreibung spielt keine Rolle.
  • Sie benötigen die Berechtigung write, maintain oder admin für das Repository. Claude prüft dies bei GitHub für jede Person, die kommentiert, und Kommentare von Bots starten keine Reviews.
  • Der Pull Request muss geöffnet sein.

Wenn ein Befehl, der ein Review startet, angenommen wird, erscheint im Pull Request ein Check Run Claude Code Review mit dem Titel Code review queued.... Der Titel ändert sich zu Code review in progress..., wenn das Review startet. Claude reagiert möglicherweise auch mit 👀 auf Ihren Kommentar, aber diese Reaktion kann auch erscheinen, wenn kein Review startet; achten Sie daher stattdessen auf den Check Run.

Wenn bereits ein Review für den neuesten Commit des Pull Requests läuft, startet eine neue Anfrage kein zweites.

[!NOTE]

Vor einem Update im Juli 2026 hat @claude review den PR für durch Pushes ausgelöste Reviews abonniert. Wenn Sie sich auf dieses Verhalten verlassen haben, kommentieren Sie stattdessen @claude review always.

Was ein späteres Review abdeckt

Ein späteres Review, das von selbst startet, etwa nach einem Push, konzentriert sich auf das, was sich seit dem letzten Review geändert hat, und veröffentlicht weniger Nits und bereits vorhandene Ergebnisse. Um zu sehen, ob es dadurch Ergebnisse ausgelassen hat, suchen Sie im Text des Reviews nach einem Satz, der sie zählt:

  • Ergebnisse zu Code, der sich seit dem letzten Review nicht geändert hat: Der Satz endet mit „outside the scope of this re-review and not posted“
  • Nits und bereits vorhandene Ergebnisse: Der Satz endet mit „found and not posted“

Um ein Review zu erhalten, das nichts davon auslässt, kommentieren Sie @claude review. Es deckt wieder den gesamten Pull Request ab.

Entwürfe und Pull Requests aus Forks prüfen lassen

Automatische Reviews überspringen beide, fordern Sie das Review daher mit einem Kommentarbefehl an:

  • Pull-Request-Entwürfe: Ein Kommentarbefehl wird auch bei einem Entwurf ausgeführt, sodass Sie ein Review anfordern können, bevor Sie den Pull Request als bereit markieren. Pushes auf einen Entwurf starten keine Reviews, auch nicht nach @claude review always. Das Abonnement wird wirksam, sobald Sie den Pull Request als bereit markieren.
  • Pull Requests aus Forks: Claude prüft einen Pull Request aus einem Fork nicht automatisch, unabhängig von der Einstellung Review runs des Repositorys. Um ein Review zu starten, kommentieren Sie @claude review im Pull Request. Die Bedingungen für Kommentarbefehle gelten weiterhin, und der benötigte Schreibzugriff bezieht sich auf das Basis-Repository, nicht auf den Fork.

Bei einem Pull Request aus einem Fork funktioniert auch @claude review always, abonniert den Pull Request aber nicht für Reviews bei späteren Pushes. Ein Klick auf Re-run am Check Run startet dort kein Review.

Code Review zusammen mit der Claude Code GitHub Action verwenden

Wenn im Repository auch die Claude Code GitHub Action im interaktiven Modus mit ihrer Standard-Auslösephrase @claude läuft, startet ein @claude review-Kommentar auch die Action. Um die beiden voneinander zu trennen, setzen Sie die Eingabe trigger_phrase der Action auf eine andere Phrase.

Verwandte Ressourcen