Aus einem GitHub-PR mit Control Center sprechen
Diese Anleitung zeigt, wie du mit Control Center arbeitest, ohne GitHub zu verlassen: ein KI-Review von der PR-Seite anfordern, dem Bot in einem Kommentar eine Frage stellen und die Unterhaltung in seinen Review-Threads weiterführen.
Der Bot ist die eigene GitHub App deines Servers, dieselbe, die Personen schon anmeldet und Hintergrundarbeit ausführt. Neu registriert wird nichts, und nichts muss aus dem Internet erreichbar sein: der Server erfährt durch Polling, was auf GitHub gesagt wurde, ein Laptop hinter NAT verhält sich also genau wie eine öffentliche Bereitstellung.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Der Server hat seine GitHub App registriert und installiert, mit Pull requests: read and write (für Kommentare, Threads und Reaktionen) und Issues: read (für die Kommentarsuche). Beides steht schon in der Berechtigungsliste dieser Anleitung
- Das Repository ist in Control Center mit einem Arbeitsbereich verknüpft
- Keine Webhook-URL, kein Tunnel, kein Callback — auf der Netzwerkseite ist nichts zu konfigurieren
Den Namen deines Bots finden
Abschnitt betitelt „Den Namen deines Bots finden“Der Login des Bots lautet <appslug>[bot], wobei appslug der Name ist, den
du der App bei der Registrierung gegeben hast.
- Geh zu Einstellungen → Server → Single sign-on und scrolle zur Karte Anbieter-Apps
- Öffne den Block GitHub und klicke auf Testen
- Kopiere Bot-Login, sobald er erscheint. Zeigt er noch den leeren Hinweis,
ist der Login immer
<appslug>[bot]— tippe das, oder die Kurzform@appslug
GitHub bietet App-Konten in der @-Autovervollständigung nicht an, den Login
musst du also tippen. Deshalb macht die Karte in den Einstellungen das Kopieren
zu einem Klick. Das Suffix [bot] ist optional: @myapp und @myapp[bot]
sprechen beide den Bot an.
Ein Review von GitHub aus anfordern
Abschnitt betitelt „Ein Review von GitHub aus anfordern“Zwei Wege, und beide starten dieselbe mitgelieferte Pipeline pr_review, die
auch die Schaltfläche Ask AI startet:
- Setze das Label
ai-reviewauf dem PR. Das ist das Nächste, was GitHub dazu anbietet, den Bot als Reviewer zuzuweisen: App-Konten können den nativen Platz eines angeforderten Reviewers nicht belegen. Es gibt keinen Kommentar, auf den zu reagieren wäre, also wird auf GitHub nichts gepostet; das Review startet in Control Center - Kommentiere
@myapp review(oder nur@myapp) in der PR-Unterhaltung. Der Bot reagiert mit 👀 und antwortet, sobald das Review gestartet ist (oder dass bereits eines läuft)
Die Reviewer arbeiten im Review-Bereich des PR; lies und veröffentliche die Befunde wie in KI-gestützte Review nutzen. Zurück auf GitHub zu veröffentlichen bleibt eine Entscheidung, die du in Control Center triffst. Ein Review von GitHub aus zu starten veröffentlicht von sich aus nichts auf GitHub.
Das Label löst einmal je PR aus: es zu setzen ist die Anfrage, und Entfernen mit erneutem Setzen schärft es nicht neu. Um ein Review noch einmal laufen zu lassen, etwa nach einem Push, erwähnst du den Bot.
Eine Frage stellen
Abschnitt betitelt „Eine Frage stellen“Kommentiere in der PR-Unterhaltung:
@myapp why does the flaky test in runner_test.dart fail on CI but not locally?Was dann passiert, der Reihe nach:
- Der Bot reagiert mit 👀, damit du siehst, dass der Kommentar angekommen ist
- Die Frage wird im Review-Bereich des PR als du gepostet, mit derselben Zuschreibung, als hättest du sie in Control Center getippt
- Ein Agent antwortet im Bereich, und die Antwort kommt auf dem PR als Kommentar zurück, der dich mit @ erwähnt
Eine Frage auf einem PR ohne bisheriges Review weckt den CEO-Agenten des Arbeitsbereichs; sobald ein Review gelaufen ist, antwortet der Agent, der zuletzt gesprochen hat, damit Nachfragen bei dem ankommen, der den Kontext hat.
In einem Review-Thread nachfassen
Abschnitt betitelt „In einem Review-Thread nachfassen“Antworte in einem Inline-Review-Thread, an dem der Bot beteiligt ist: ein Diff-Kommentar, den er hinterlassen hat, oder eine Antwort, die er in diesem Thread gepostet hat. Eine Erwähnung brauchst du nicht; der Thread ist die Adressierung:
> @myapp the retry loop looks O(n²) to me
what would the complexity be with the bounded queue instead?Mehrere Runden funktionieren genauso: jede Antwort ist eine weitere Frage in derselben Unterhaltung, mit dem Review-Bereich als Kontext, und die Antwort kommt im Thread zurück.
Eine Nachfrage auf der Zeitleiste der PR-Unterhaltung ist ein neuer Kommentar auf oberster Ebene und braucht deshalb weiterhin eine @-Erwähnung.
Mit wem der Bot spricht
Abschnitt betitelt „Mit wem der Bot spricht“Ein GitHub-Kommentar kommt mit kaum mehr an als einem Login, der Bot löst den Autor also auf, bevor er irgendetwas tut:
- Dein GitHub-Konto muss mit deiner Identität verknüpft sein in Control Center: mit GitHub anmelden oder ein Token einfügen, unter Einstellungen → Arbeitsbereich → Profil und Identität → Code-Hosting
- Du musst Mitglied mit einer Schreibrolle sein (
member,adminoderowner) in dem Arbeitsbereich, der das Repository verknüpft
Alle anderen bekommen eine höfliche Antwort, die erklärt, was fehlt. Ein
unbekannter Login (nicht verknüpft, oder verknüpft, aber hier kein Mitglied)
und eine Nur-Lese-Rolle sind die beiden Fälle, und ihre Worte gelangen nie in
den Arbeitsbereich. Das Label ai-review unterliegt dieser Prüfung nicht: es
hat keinen Autor, also startet es das Review in dem Arbeitsbereich, der das
Repo bereits verknüpft.
Was du erwarten kannst
Abschnitt betitelt „Was du erwarten kannst“| Was | Verhalten |
|---|---|
| Bestätigung | 👀 auf einem Kommentar innerhalb von etwa einer Minute, dem Durchlaufintervall. Das Label ai-review hat keinen Kommentar, auf den zu reagieren wäre |
| Antworten | Gepostet als der Bot (die App), in der Spur, in der die Frage gestellt wurde |
| Zuschreibung im Bereich | Die Frage gehört dir; der Agent läuft in deinem Auftrag, unter den Autonomieeinstellungen des Bereichs |
| Reviews | Befunde landen im Review-Bereich; das Veröffentlichen auf GitHub ist manuell |
Die Latenz von etwa einer Minute ist der Preis dafür, dass gar kein eingehender Netzzugriff nötig ist. Am Durchlauf hängt nichts Dringendes, und solange der Server offline ist, geht nichts verloren: ein Kommentar, der während der Ausfallzeit ankommt, wird beim nächsten Durchlauf erfasst.
Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“Bei einem Kommentar, der den Bot erwähnt, passiert nichts.
- Ist die App auf dem Konto installiert, dem das Repo gehört, und das Repo mit einem Arbeitsbereich verknüpft? Ein unverknüpftes Repo wird übersprungen, bevor irgendetwas festgehalten wird, das spätere Verknüpfen liefert also trotzdem
- Ist dein GitHub-Konto verknüpft, und bist du Mitglied mit einer Schreibrolle? Schau auf dem PR nach der Ablehnungsantwort des Bots, sie sagt, welcher Fall es ist
- Immer noch nichts? Das Serverprotokoll nennt den Durchlauf und den PR, wenn
etwas fehlschlägt; such nach
pr_conversation:(der Poller) undgithub_pr_conversation:(die Brücke)
Das Label startet kein Review.
Es löst einmal je PR aus. Ist bereits ein Review gelaufen, oder wurde das Label
gesetzt, bevor der Server den PR je gesehen hat (der erste Durchlauf hält den
Rückstand still fest, statt ihn loszutreten), erwähne stattdessen den Bot.
@myapp review startet immer eines, solange nicht bereits ein Review unterwegs
ist.
Die Antwort des Bots ist nie auf GitHub angekommen.
Die Antwort selbst geht nie verloren: sie liegt im Review-Bereich des PR in Control Center. Ein Fehler beim Posten (GitHub ausgefallen, Berechtigungen geändert) wird protokolliert, und die Antwort wird nicht erneut versucht; frag im Thread noch einmal, wenn es darauf ankommt.
Verwandte Anleitungen
Abschnitt betitelt „Verwandte Anleitungen“- Die GitHub App erstellen: die Registrierung, aus der der Bot entsteht
- KI-gestützte Review nutzen: die Befunde lesen, die ein per Erwähnung gestartetes Review liefert
- GitHub-Integration einrichten: dein eigenes GitHub-Konto verknüpfen, worüber der Bot dich auflöst
- Bereiche nutzen: der Raum, in dem all das landet