Gå til innholdet

Snakk med Control Center fra en GitHub-PR

Denne guiden viser deg hvordan du kan jobbe med Control Center uten å forlate GitHub: be om en AI-gjennomgang fra PR-siden, still boten et spørsmål i en kommentar, og hold samtalen gående i gjennomgangstrådene dens.

Boten er serverens egen GitHub App — den samme som allerede logger folk inn og kjører bakgrunnsarbeid. Ingenting nytt registreres, og ingenting trenger å være tilgjengelig fra internett: serveren oppdager det som ble sagt på GitHub ved polling, så en bærbar maskin bak NAT oppfører seg nøyaktig som en offentlig utrulling.

  • Serveren har sin GitHub App registrert og installert, med Pull requests: read and write (for kommentarer, tråder og reaksjoner) og Issues: read (for kommentarsøket). Begge står allerede i den guidens tillatelsesliste
  • Repoet er koblet til et arbeidsområde i Control Center
  • Ingen webhook-URL, ingen tunnel, ingen callback — det finnes ingenting å konfigurere på nettverkssiden

Botens pålogging er <appslug>[bot], der appslug er navnet du ga appen da du registrerte den.

  1. Gå til Innstillinger → Server → Enkel pålogging og rull ned til Leverandørapper-kortet
  2. Åpne GitHub-blokken og klikk på Test
  3. Kopier Bot-innlogging når den fylles ut. Hvis den fortsatt viser hintet for tomt felt, er påloggingen alltid <appslug>[bot] — skriv det, eller den korte formen @appslug

GitHub tilbyr ikke appkontoer i @-autofullføringen, så påloggingen må skrives — derfor gjør innstillingskortet det til ett klikk å kopiere den. [bot]-endelsen er valgfri: både @myapp og @myapp[bot] adresserer boten.

To måter, som begge starter den samme forhåndsdefinerte pr_review-pipelinen som Spør AI-knappen starter:

  • Legg til etiketten ai-review på PR-en. Dette er det nærmeste GitHub kommer å tildele boten som reviewer — appkontoer kan ikke fylle den innebygde plassen for forespurte reviewere. Det er ingen kommentar å reagere på, så ingenting publiseres på GitHub; gjennomgangen starter i Control Center
  • Kommenter @myapp review (eller bare @myapp) i PR-samtalen. Boten reagerer med 👀 og svarer deretter når gjennomgangen har startet (eller at en allerede kjører)

Reviewerne arbeider i PR-ens gjennomgangsområde; les og publiser funnene som i Bruk AI-drevet gjennomgang. Å publisere tilbake til GitHub er fortsatt en beslutning du tar i Control Center — å starte en gjennomgang fra GitHub publiserer ikke noe til GitHub av seg selv.

Etiketten utløses én gang per PR: å legge den til er henvendelsen, og den aktiveres ikke på nytt når den fjernes og legges til igjen. For å kjøre en gjennomgang på nytt — etter en push, for eksempel — omtaler du boten.

Kommenter i PR-samtalen:

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

Dette skjer, i rekkefølge:

  1. Boten reagerer med 👀 så du vet at kommentaren ble sett
  2. Spørsmålet legges inn i PR-ens gjennomgangsområde som deg — samme tilskrivning som om du hadde skrevet det i Control Center
  3. En agent svarer i området, og svaret publiseres tilbake på PR-en som en kommentar som @-nevner deg

Et spørsmål på en PR uten noen gjennomgang ennå vekker arbeidsområdets CEO-agent; når en gjennomgang har kjørt, svarer agenten som snakket sist, så oppfølginger havner hos den som har konteksten.

Svar inne i en innebygd gjennomgangstråd som boten er en del av — en diff-kommentar den la igjen, eller et svar den publiserte i den tråden. Ingen omtale er nødvendig; tråden er adresseringen:

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

Flere runder fungerer på samme måte: hvert svar er et nytt spørsmål i samme samtale, med gjennomgangsområdet som kontekst, og svaret kommer tilbake i tråden.

En oppfølging i tidslinjen for PR-samtalen er en ny kommentar på øverste nivå, så den trenger fortsatt en @-omtale.

En GitHub-kommentar kommer inn som lite annet enn en pålogging, så boten løser opp forfatteren før den gjør noe:

  • GitHub-kontoen din må være koblet til identiteten din i Control Center — logg inn med GitHub, eller lim inn et token, fra Innstillinger → Arbeidsområde → Profil og identitet → Kodehosting
  • Du må være medlem med en skriverolle (member, admin eller owner) i arbeidsområdet som kobler til repoet

Alle andre får ett høflig svar som forklarer hva som mangler — en ukjent pålogging (ikke tilkoblet, eller tilkoblet men ikke medlem her) og en skrivebeskyttet rolle er de to tilfellene — og ordene deres kommer aldri inn i arbeidsområdet. Etiketten ai-review er ikke betinget på denne måten: den har ingen forfatter, så den starter gjennomgangen i arbeidsområdet som allerede har repoet tilkoblet.

Ting Oppførsel
Bekreftelse 👀 på en kommentar innen omtrent et minutt — søkerundeintervallet. Etiketten ai-review har ingen kommentar å reagere på
Svar Publiseres som boten (appen), i sporet spørsmålet ble stilt i
Tilskrivning i området Spørsmålet er ditt; agenten kjører på dine vegne, under områdets autonomiinnstillinger
Gjennomganger Funn lander i gjennomgangsområdet; publisering til GitHub er manuell

Forsinkelsen på omtrent ett minutt er prisen for å ikke trenge noen innkommende nettverkstilgang i det hele tatt. Ingenting med søkerunden haster, og ingenting går tapt mens serveren er offline — en kommentar som kommer inn i nedetiden, fanges opp i neste søkerunde.

Ingenting skjer for en kommentar som omtaler boten.

  • Er appen installert på kontoen som eier repoet, og er repoet koblet til et arbeidsområde? Et ukoblet repo hoppes over før noe registreres, så å koble det til senere leverer fortsatt
  • Er GitHub-kontoen din koblet, og er du medlem med en skriverolle? Sjekk PR-en for botens avvisningssvar — det sier hvilken av delene det gjelder
  • Fortsatt ingenting? Serverloggen navngir søkerunden og PR-en når noe mislykkes; se etter pr_conversation: (søket) og github_pr_conversation: (broen)

Etiketten starter ikke en gjennomgang.

Den utløses én gang per PR. Hvis en gjennomgang allerede har kjørt, eller etiketten ble lagt til før serveren noen gang så PR-en (den første søkerunden registrerer etterslepet i stillhet i stedet for å storme det), omtaler du boten i stedet — @myapp review starter alltid én med mindre en gjennomgang allerede er i gang.

Botens svar kom aldri fram til GitHub.

Selve svaret går aldri tapt — det ligger i PR-ens gjennomgangsområde i Control Center. En publiseringsfeil (GitHub nede, endrede tillatelser) logges, og svaret prøves ikke på nytt; spør igjen i tråden hvis det er viktig.