Hoppa till innehåll

Prata med Control Center från en GitHub-PR

Den här guiden visar hur du arbetar med Control Center utan att lämna GitHub: begär en AI-granskning från PR-sidan, ställ en fråga till boten i en kommentar och fortsätt samtalet i dess granskningstrådar.

Boten är serverns egen GitHub App – samma app som redan loggar in personer och kör bakgrundsarbete. Inget nytt registreras, och inget behöver kunna nås från internet: servern upptäcker vad som sagts på GitHub genom pollning, så en bärbar dator bakom NAT beter sig precis som en offentlig driftsättning.

  • Servern har sin GitHub App registrerad och installerad, med Pull requests: read and write (för kommentarer, trådar och reaktioner) och Issues: read (för kommentarsökningen). Båda finns redan med i den guidens behörighetslista
  • Repot är länkat till en arbetsyta i Control Center
  • Ingen webhook-URL, ingen tunnel, ingen callback – det finns inget att konfigurera på nätverkssidan

Botens inloggning är <appslug>[bot], där appslug är namnet du gav appen när du registrerade den.

  1. Gå till Inställningar → Server → Enkel inloggning och rulla ned till kortet Leverantörsappar
  2. Öppna blocket GitHub och klicka på Test
  3. Kopiera Bot-inloggning när den fylls i. Om den fortfarande visar den tomma hjälptexten är inloggningen alltid <appslug>[bot] – skriv det, eller den korta formen @appslug

GitHub erbjuder inte appkonton i sin @-autokomplettering, så inloggningen måste skrivas – det är därför inställningskortet gör den till ett klick att kopiera. Suffixet [bot] är valfritt: både @myapp och @myapp[bot] adresserar boten.

Två sätt, som båda startar samma medföljande pr_review-pipeline som knappen Fråga AI startar:

  • Lägg till etiketten ai-review på PR:en. Det här är det närmaste GitHub kommer att tilldela boten som granskare – appkonton kan inte hålla den inbyggda platsen för begärda granskare. Det finns ingen kommentar att reagera på, så inget publiceras på GitHub; granskningen startar i Control Center
  • Kommentera @myapp review (eller bara @myapp) i PR-samtalet. Boten reagerar med 👀 och svarar sedan när granskningen har startat (eller att en redan körs)

Granskarna arbetar i PR:ens granskningsyta; läs och publicera fynden som i Använd AI-driven granskning. Att publicera tillbaka till GitHub är fortfarande ett beslut du fattar i Control Center – att starta en granskning från GitHub publicerar inte i sig något till GitHub.

Etiketten utlöses en gång per PR: att lägga till den är begäran, och den laddas inte om när den tas bort och läggs till igen. För att köra en granskning igen – efter en push, till exempel – nämn boten.

Kommentera i PR-samtalet:

@myapp why does the flaky test in runner_test.dart fail on CI but not locally?

Vad som händer, i ordning:

  1. Boten reagerar med 👀 så att du vet att kommentaren sågs
  2. Frågan publiceras i PR:ens granskningsyta som du – samma tillskrivning som om du hade skrivit den i Control Center
  3. En agent svarar i ytan, och svaret publiceras tillbaka på PR:en som en kommentar som @-nämner dig

En fråga på en PR utan någon granskning än väcker arbetsytans CEO-agent; när en granskning har körts svarar den agent som talade sist, så uppföljningar hamnar hos den som har kontexten.

Svara i en inline-granskningstråd som boten är en del av – en diffkommentar den lämnade, eller ett svar den publicerade i den tråden. Ingen nämning behövs; tråden är adresseringen:

> @myapp the retry loop looks O(n²) to me
what would the complexity be with the bounded queue instead?

Flera turer fungerar på samma sätt: varje svar är ytterligare en fråga i samma samtal, med granskningsytan som kontext, och svaret kommer tillbaka i tråden.

En uppföljning i tidslinjen för PR-samtalet är en ny kommentar på toppnivå, så den behöver fortfarande en @-nämning.

En GitHub-kommentar kommer in som föga mer än en inloggning, så boten löser upp avsändaren innan den gör något:

  • Ditt GitHub-konto måste vara länkat till din identitet i Control Center – logga in med GitHub, eller klistra in en token, från Inställningar → Arbetsyta → Profil och identitet → Kodvärd
  • Du måste vara medlem med en skrivroll (member, admin eller owner) i den arbetsyta som länkar repot

Alla andra får ett artigt svar som förklarar vad som saknas – en okänd inloggning (olänkad, eller länkad men inte medlem här) och en skrivskyddad roll är de två fallen – och deras ord kommer aldrig in i arbetsytan. Etiketten ai-review grindas inte på det här sättet: den har ingen avsändare, så den startar granskningen i den arbetsyta som redan länkar repot.

Sak Beteende
Bekräftelse 👀 på en kommentar inom ungefär en minut – svepintervallet. Etiketten ai-review har ingen kommentar att reagera på
Svar Publiceras som boten (appen), i samma spår som frågan ställdes i
Tillskrivning i ytan Frågan är din; agenten körs på dina vägnar, under ytans autonomi-inställning
Granskningar Fynden landar i granskningsytan; publicering till GitHub är manuell

Latensen på ungefär en minut är priset för att inte behöva någon inkommande nätverksåtkomst alls. Inget med svepet är brådskande, och inget går förlorat medan servern är offline – en kommentar som kommer in under nedtid fångas upp vid nästa svep.

Inget händer för en kommentar som nämner boten.

  • Är appen installerad på kontot som äger repot, och repot länkat till en arbetsyta? Ett olänkat repo hoppas över innan något registreras, så att länka det senare levererar fortfarande
  • Är ditt GitHub-konto länkat, och är du medlem med en skrivroll? Leta på PR:en efter botens avvisningssvar – det säger vilket
  • Fortfarande inget? Serverloggen namnger svepet och PR:en när något misslyckas; leta efter pr_conversation: (pollaren) och github_pr_conversation: (bryggan)

Etiketten startar ingen granskning.

Den utlöses en gång per PR. Om en granskning redan har körts, eller etiketten lades till innan servern någonsin såg PR:en (det första svepet registrerar eftersläpet tyst i stället för att vräka igenom det), nämn boten i stället – @myapp review startar alltid en om inte en granskning redan är i gång.

Botens svar kom aldrig fram till GitHub.

Själva svaret går aldrig förlorat – det finns i PR:ens granskningsyta i Control Center. Ett publiceringsfel (GitHub nere, behörigheter ändrade) loggas och svaret görs inte om; fråga igen i tråden om det spelar roll.