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.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- 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
repoundread:orgzum Einfügen
Mit GitHub anmelden
Abschnitt betitelt „Mit GitHub anmelden“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.
- Öffne Einstellungen → Arbeitsbereich → Profil und Identität → Code-Hosting (oder den ersten Schritt des Onboardings)
- Klicke in der Zeile GitHub auf Mit GitHub anmelden
- Ein Dialog zeigt einen achtstelligen Code und öffnet github.com/login/device im Browser. Der Code liegt schon in der Zwischenablage
- 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.
Oder ein Token einfügen
Abschnitt betitelt „Oder ein Token einfügen“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.
- Öffne Einstellungen → Arbeitsbereich → Profil und Identität → Code-Hosting
- Klicke in der Zeile GitHub auf Token hinzufügen
- Füge ein Token mit
repoundread: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“.
Was die Integration bringt
Abschnitt betitelt „Was die Integration bringt“| 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.
GitHub-Ausfälle im Blick behalten
Abschnitt betitelt „GitHub-Ausfälle im Blick behalten“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.
So handeln Agenten auf GitHub
Abschnitt betitelt „So handeln Agenten auf GitHub“- 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 TrailerCo-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
Fehlersuche
Abschnitt betitelt „Fehlersuche“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.
Ein Repo wird beim Hinzufügen abgelehnt
Abschnitt betitelt „Ein Repo wird beim Hinzufügen abgelehnt“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.
Nach starker Nutzung steht eine Weile alles still
Abschnitt betitelt „Nach starker Nutzung steht eine Weile alles still“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.