Wird geladen

GitHub Actions und Code Review

Lektion 76 Min.
Wird geladen

GitHub Actions und Code Review

Der beste Ort, um repetitive Arbeit abzugeben, ist der Pull Request. Dort findet die Review statt, dort landen Änderungen, und dort lebt ein Großteil deiner Routinearbeit. Es gibt zwei Möglichkeiten, Claude hier einzusetzen, und sie lösen unterschiedliche Probleme. Die eine ist ein verwalteter Dienst, den du aktivierst. Die andere ist eine GitHub Action, die du selbst einrichtest. Lass uns beide durchgehen und herausfinden, wann du auf welche zurückgreifst.

Der verwaltete Weg: Code Review

Die einfachste Option ist Code Review. Es handelt sich um einen von Anthropic gehosteten Dienst, der deine Pull Requests über die Claude GitHub App überprüft. Du musst nichts bauen oder hosten. Du schaltest es ein, und es beginnt, Befunde als Inline-Kommentare direkt auf den relevanten Zeilen zu posten.

Ein Owner deiner Claude-Organisation aktiviert es in den Claude Code-Admin-Einstellungen. Dort findest du einen Bereich „Code review" mit einem Schalter „Allow code review", der die Einrichtung startet.

Von dort aus installiert der Owner die Claude GitHub App, wählt aus, welche Repos sie überwacht, und entscheidet, wann sie läuft. Wenn der Owner nicht auch Owner der GitHub-Organisation ist, muss zunächst jemand die App installieren und verknüpfen. Du hast ein paar Möglichkeiten für das Timing:

  • Einmal, wenn ein PR geöffnet wird
  • Bei jedem Push zum PR
  • Nur wenn jemand @claude review kommentiert

Sobald es aktiviert ist, läuft alles auf der Infrastruktur von Anthropic. Eine Reihe von Review-Agenten analysiert den Diff im Vergleich zu deiner gesamten Codebasis, nicht nur die geänderten Zeilen isoliert. Anschließend postet es Befunde als Inline-Kommentare auf den jeweiligen Zeilen, nach Schweregrad gekennzeichnet, mit einer zusammenfassenden Tabelle im Check-Run.

So sieht einer dieser Befunde aus. Er landet als Kommentar von Claude direkt auf der Zeile, mit einer klaren Erklärung und einem Lösungsvorschlag.

Das Schöne daran ist, dass es die Befunde dedupliziert und nach Relevanz ordnet. Statt einer Flut von Kleinigkeiten liest du also eine Handvoll echter Probleme, die deine Aufmerksamkeit verdienen.

Was Code Review tut und was nicht

Ein paar Dinge solltest du hier im Hinterkopf behalten, was die Grenzen angeht:

  • Es genehmigt oder blockiert den PR nie. Die Entscheidung bleibt bei einem Menschen. Claude markiert Dinge; du entscheidest.
  • Es pusht keine Fixes. Der Dienst postet nur Befunde.
  • Es ist im Team Plan und im Enterprise Plan verfügbar.

Da der Dienst nur Befunde postet, liegt es an dir, darauf zu reagieren: Behebe den Code und pushe ihn. Um deinen Fix vor dem Push zu überprüfen, führe /code-review in deinem eigenen Terminal aus. Es führt eine eigene Review deines Diffs durch, und das Flag --fix wendet die Befunde dieser Review auf deinen Arbeitsbaum an.

Der Do-it-yourself-Weg: die GitHub Action

Code Review übernimmt die Review. Wenn die Aufgabe über die Review hinausgeht, greifst du zur GitHub Action. Das ist für individuelle CI gedacht: das Umsetzen von Änderungen aus einem Kommentar, das Ausführen geplanter Berichte, alles, wofür du normalerweise einen Workflow schreiben würdest. Sie führt den Agenten bei PR-Kommentaren, geplanten Jobs und jedem GitHub-Event aus.

Die Einrichtung beginnt in Claude Code. Führe den Befehl /install-github-app aus. Dafür benötigst du Repo-Admin-Rechte. Der Slash-Befehl führt dich durch die Installation der GitHub App und das Einrichten des Anthropic-API-Key-Secrets im Repo.

Die Action selbst ist anthropics/claude-code-action@v1. Hier sind die Eingaben, die du tatsächlich verwenden wirst:

  • anthropic_api_key — erforderlich, wenn der Lauf die Claude API aufruft, es sei denn, du authentifizierst dich mit claude_code_oauth_token (aus einem Claude-Abonnement) oder mit Workload Identity Federation (eingerichtet über ein Claude Console-Service-Konto, sodass kein gespeichertes Secret nötig ist). Wird bei den unten genannten Cloud-Anbietern nicht verwendet.
  • github_token — optional. Lässt du ihn weg, authentifiziert sich die Action als die Claude GitHub App, die du bei der Einrichtung installiert hast. Übergib ein Token nur, um das zu überschreiben.
  • trigger_phrase — worauf die Action in Kommentaren achtet. Standardmäßig @claude.
  • use_bedrock / use_vertex / use_foundry — leitet den Lauf über Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry statt über die Claude API, wobei du dich mit deinem Cloud-Konto statt mit einem API-Key anmeldest.
  • prompt — die Anweisung für einen automatisierten Lauf. Setzt du ihn, läuft Claude bei dem Event, ohne auf eine Erwähnung zu warten. Lässt du ihn weg, wartet die Action auf die Trigger-Phrase.
  • claude_args — eine Zeichenkette von CLI-Argumenten, die direkt an Claude Code weitergegeben wird.

Ein Workflow, der auf @claude reagiert

Lege einen Workflow in .github/workflows/claude.yaml ab, und er achtet auf @claude in PR-Kommentaren und Issue-Kommentaren. Gewähre unter den permissions des Jobs id-token: write, damit sich die Action als Claude GitHub App anmelden kann. Der zentrale Schritt sieht so aus:

yaml
- uses: anthropics/claude-code-action@v1
  with:
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    trigger_phrase: "@claude"
    claude_args: "--max-turns 5 --model claude-sonnet-5"

Jetzt schreibt jemand @claude implement the spec in the linked Linear issue auf einem Pull Request, und die Action greift das auf. Claude pusht Commits und postet Kommentare, die beschreiben, was es getan hat.

Ein Workflow, der nach einem Zeitplan läuft

Dieselbe Action funktioniert auch für eine tägliche Zusammenfassung. Ein Cron-Trigger löst beispielsweise um 9:00 UTC aus, die Action führt deinen prompt aus, und du liest die Zusammenfassung im Log dieses Laufs. Ein geplanter Lauf postet von sich aus keinen Kommentar. Du kannst außerdem einen workflow_dispatch-Trigger hinzufügen, damit du ihn manuell über den Actions-Tab auslösen kannst.

Wenn die Action läuft, kannst du im Actions-Tab zusehen, wie sie die Schritte durchläuft, genau wie bei jedem anderen GitHub-Workflow.

Den Lauf mit claude_args feinabstimmen

Die Zeile claude_args ist der Ort, an dem die Feinabstimmung stattfindet. Ein paar Stellschrauben, die du kennen solltest:

  • --max-turns 5 setzt eine feste Obergrenze für die Agenten-Schleife, damit sie nicht endlos läuft.
  • Permission-Modus. Bei einem unbeaufsichtigten Job möchtest du, dass er nicht anhält und nachfragt, da niemand da ist, um zu antworten.
  • Erlaubte Tools. Gib dem Job genau das, was er braucht, und nicht mehr. Bei einem Bericht bedeutet das: nur lesend.

Welche solltest du verwenden?

Hier die Kurzfassung:

  • Für PR-Reviews nimm den verwalteten Weg. Aktiviere Code Review, lass die GitHub App Inline-Befunde posten, behebe dann den Code und pushe.
  • Greife zur Action, wenn die Aufgabe mehr als nur Review ist. Verwende /install-github-app für die Einrichtung, einen Workflow für @claude-Erwähnungen, einen für Cron, und die gesamte Feinabstimmung steckt in claude_args.

Beginne mit dem verwalteten Dienst. Wechsle zur Action, sobald du möchtest, dass Claude in der CI tatsächlich etwas tut, statt nur zu kommentieren.