Zum Inhalt springen

GitHub-Integration einrichten

Diese Anleitung behandelt die GitHub-spezifischen Teile der Einrichtung. GitHub ist einer von drei unterstützten Code-Hosts — siehe Einen Code-Host verbinden, wenn du GitLab oder Bitbucket verbindest und wissen willst, wie ein Arbeitsbereich sie mischt.

  • Ein GitHub-Konto mit Zugriff auf die Repos, an denen du arbeiten willst
  • Entweder eine für deinen Server registrierte GitHub App (siehe Die GitHub App erstellen), damit du dich anmelden kannst, oder ein persönliches Zugriffstoken (PAT) mit repo und read:org zum Einfügen

Ein Device Flow: GitHub zeigt dir einen kurzen Code, du gibst ihn auf github.com frei, und der Server erhält das Zugangsdatum — keine Callback-URL, kein Port, nichts, das du nach außen öffnen müsstest. Das geht, sobald der Server eine Client-ID hat; ein offizieller Build bringt sie schon mit.

  1. Öffne Einstellungen → Arbeitsbereich → Profil und Identität → Code-Hosting (oder den ersten Schritt des Onboardings)
  2. Klicke in der Zeile GitHub auf Mit GitHub anmelden
  3. Ein Dialog zeigt einen achtstelligen Code und öffnet github.com/login/device im Browser. Der Code liegt schon in der Zwischenablage
  4. Füge ihn ein, gib die App frei und komm zurück. Die Zeile wechselt von selbst zu „Angemeldet als dein-benutzername“

Den Dialog kannst du schließen, während du im Browser fertig wirst — der Server fragt weiter ab, bis der Code abläuft (etwa 15 Minuten), die Anmeldung kommt also trotzdem an.

Der Weg, wenn der Server keine App hat, die App auf einem Konto, das du brauchst, nicht installiert ist, oder du lieber ein PAT nutzen willst.

  1. Öffne Einstellungen → Arbeitsbereich → Profil und Identität → Code-Hosting
  2. Klicke in der Zeile GitHub auf Token hinzufügen
  3. Füge ein Token mit repo und read:org (classic) ein und speichere. Ein Fine-grained- Token braucht am Repository Contents und Pull requests (read and write) sowie Checks und Actions (read).

Das Token wird so geprüft, wie es gespeichert ist, deshalb nennt die Zeile das Konto dahinter. Zum Entfernen klickst du auf Trennen.

Zur Kontrolle: Die Zeile GitHub zeigt „Angemeldet als dein-benutzername“. Ein Zusatz nennt die Quelle, wenn das antwortende Zugangsdatum nicht deins ist — „über die App dieses Servers“ oder „aus der Umgebung“.

Funktion Wie
PR-Liste und Detail Die GitHub-REST-API, vom Server aus, über die App-Identität oder dein eigenes Zugangsdatum
Check-Runs Die GitHub Checks API
Review veröffentlichen Ein Schritt, den ein Nutzer auslöst und der dein Review an den PR postet
Repo-Registrierung Ein Checkout wird angenommen, wenn sein origin-Remote auf github.com zeigt — oder auf gitlab.com / bitbucket.org
GitHub-Zugang für Agenten Der Zugangsdaten-Broker injiziert ein Token, das nur lesen darf, als GH_TOKEN / GITHUB_TOKEN; Pushes laufen durch Control Center
Benachrichtigungen Eine serverseitige Abfrage deines GitHub-Benachrichtigungspostfachs erzeugt „In Pull Request erwähnt“ und „Review angefragt“
Nutzerprofile Profilkarten beim Überfahren und die Filterung der PRs nach Autor

Manche Pfade nutzen die GraphQL-API statt REST, wo das günstiger ist — die Branch- Aktivität für die Auswahl beim Erstellen eines Pull Requests und der aktuelle Review-Status, der entscheidet, ob eine Benachrichtigung „Review angefragt“ noch offen ist.

Die Titelleiste zeigt ein Status-Kennzeichen, wenn ein Anbieter beeinträchtigt ist: GitHub, Claude, OpenAI und Kimi. Solange alles gesund ist, bleibt es ausgeblendet — sichtbar meldet es eine Störung, nicht deren Abwesenheit.

Klicke auf das Kennzeichen, um ein Fenster mit dem Zustand jedes Anbieters und der Schaltfläche Aktualisieren zu öffnen. Die Statuswerte aktualisieren sich alle zwei Minuten von selbst.

  • Ein Agent, der in einem GitHub-Worktree arbeitet, bekommt immer ein GitHub-Token, das nur lesen darf. Ein Push läuft durch Control Center, das die Regel Zu einem Remote pushen fragt und ihn dann mit einem Schreib-Token weiterleitet, das der Agent nie besitzt. Siehe Sandbox-Richtlinien konfigurieren
  • Commits, die ein Agent macht, entstehen als der Agent — Anzeigename plus (agent), an einer synthetischen Adresse, die sich aus der ID des Agenten ableitet — nie als Mensch. Die Person, die den Auftrag gegeben hat, steht im Trailer Co-Authored-By
  • Ist eine GitHub App konfiguriert, stellt der Broker je Start eng gefasste, auf das Repo begrenzte Installationstokens mit etwa einer Stunde Gültigkeit aus, statt ein breites Token weiterzugeben. Die Installation ergibt sich aus dem Besitzer des Repos dieses Laufs, deshalb gilt eine App, die auf mehreren Konten installiert ist, genau für das Konto, das der Lauf berührt. Ohne App erhalten Agenten das Token aus der Umgebung, das sich nicht auf Lesen beschränken lässt: Die Push-Regel bindet dann git push, aber nicht Code, der das Token direkt nutzt
  • Das Token ist immer das des Brokers, nie das eigene des anfragenden Mitglieds. Das Token des Servers wird einem Lauf vorenthalten, der für ein Mitglied handelt, das nicht der Besitzer ist und GitHub nicht verbunden hat

Die PR-Liste ist leer und meldet, GitHub sei nicht verbunden

Abschnitt betitelt „Die PR-Liste ist leer und meldet, GitHub sei nicht verbunden“

Du hast auf diesem Server kein GitHub-Zugangsdatum. Melde dich an oder füge unter Code-Hosting ein Token ein. Repos auf anderen Code-Hosts bleiben unberührt — nur die von GitHub tragen nichts bei.

Die Zeile bietet „Token hinzufügen“, aber kein „Mit GitHub anmelden“

Abschnitt betitelt „Die Zeile bietet „Token hinzufügen“, aber kein „Mit GitHub anmelden““

Der Server hat keine Client-ID — der Normalfall bei einem Build aus dem Quellcode, weil die Zugangsdaten nur in offizielle Builds eingebaut werden. Siehe Die GitHub App erstellen: das dauert etwa zwei Minuten, und nur der Server-Eigentümer muss es einmal tun.

Der Anmeldedialog sagt, der Anbieter habe keinen Device-Code geliefert

Abschnitt betitelt „Der Anmeldedialog sagt, der Anbieter habe keinen Device-Code geliefert“

Die GitHub App existiert, ihr Kontrollkästchen Device flow ist aber aus. Schalte es in den Einstellungen der App ein (General → Device flow) und versuche es erneut.

Die Zeile sagt „über die App dieses Servers“, obwohl ich mein eigenes Konto erwartet habe

Abschnitt betitelt „Die Zeile sagt „über die App dieses Servers“, obwohl ich mein eigenes Konto erwartet habe“

Du bist nicht angemeldet; was du siehst, ist die App-Identität des Servers, die antwortet. Klicke in dieser Zeile auf Mit GitHub anmelden.

Ein Fine-grained-PAT zeigt keine Schaltfläche Merge und keinen Check-Status

Abschnitt betitelt „Ein Fine-grained-PAT zeigt keine Schaltfläche Merge und keinen Check-Status“

Das Token braucht Contents und Pull requests (read and write) sowie Checks und Actions (read). Nach der Änderung fügst du es unter Code-Hosting erneut ein.

Zur Registrierung müssen alle drei gelten: Der Pfad liegt in einem Git-Arbeitsbaum, er hat ein origin-Remote, und dieses Remote zeigt auf eine unterstützte Forge (github.com, gitlab.com oder bitbucket.org). Siehe Repos zu einem Arbeitsbereich hinzufügen.

Das ist der Schutzschalter für das Rate-Limit. GitHub signalisiert sein primäres Limit mit einem 403, das x-ratelimit-remaining: 0 und eine Reset-Zeit trägt; sobald der Client eines sieht, lässt er weitere Anfragen lokal scheitern, ohne Netzwerkaufruf, bis das Fenster abgelaufen ist, damit eine Flut von Wiederholungen das Limit nicht weiter verschärft. Vorübergehende Fehler werden bis zu dreimal mit exponentiellem Backoff erneut versucht, und retry-after wird beachtet.