Salta ai contenuti

Parla con Control Center da una PR GitHub

Questa guida mostra come lavorare con Control Center senza uscire da GitHub: richiedi una revisione IA dalla pagina della PR, fai una domanda al bot in un commento e continua la conversazione nei suoi thread di revisione.

Il bot è la GitHub App del tuo server — la stessa che già fa accedere le persone ed esegue il lavoro in background. Non viene registrato nulla di nuovo e nulla deve essere raggiungibile da internet: il server scopre cosa è stato detto su GitHub tramite polling, quindi un portatile dietro NAT si comporta esattamente come un deployment pubblico.

  • Il server ha la sua GitHub App registrata e installata, con Pull requests: read and write (per commenti, thread e reazioni) e Issues: read (per la ricerca dei commenti). Entrambe figurano già nell’elenco dei permessi di quella guida
  • Il repository è collegato a uno spazio di lavoro in Control Center
  • Nessun URL di webhook, nessun tunnel, nessun callback — non c’è nulla da configurare sul lato rete

Il login del bot è <appslug>[bot], dove appslug è il nome che hai dato all’app al momento della registrazione.

  1. Vai su Impostazioni → Server → Accesso single sign-on e scorri fino alla scheda App del fornitore
  2. Apri il blocco GitHub e fai clic su Test
  3. Copia Login del bot quando viene compilato. Se mostra ancora il suggerimento vuoto, il login è sempre <appslug>[bot] — digita quello, oppure la forma breve @appslug

GitHub non offre gli account app nel suo completamento automatico @, quindi il login va digitato — è per questo che la scheda delle impostazioni lo rende copiabile con un clic. Il suffisso [bot] è facoltativo: sia @myapp sia @myapp[bot] si rivolgono al bot.

Due modi, entrambi avviano la stessa pipeline pr_review preconfigurata che avvia il pulsante Ask AI:

  • Aggiungi l’etichetta ai-review alla PR. È la cosa più vicina che GitHub offra ad assegnare il bot come revisore — gli account app non possono occupare lo slot nativo di revisore richiesto. Non c’è alcun commento a cui reagire, quindi nulla viene pubblicato su GitHub; la revisione inizia in Control Center
  • Commenta @myapp review (oppure solo @myapp) nella conversazione della PR. Il bot reagisce con 👀, poi risponde quando la revisione è iniziata (o avverte che una è già in esecuzione)

I revisori lavorano nello spazio di revisione della PR; leggi e pubblica i rilievi come in Usa la revisione basata sull’IA. La pubblicazione di nuovo su GitHub resta una decisione che prendi tu in Control Center — avviare una revisione da GitHub non pubblica nulla su GitHub da solo.

L’etichetta scatta una volta per PR: aggiungerla è la richiesta, e non viene riarmata quando la rimuovi e la riaggiungi. Per eseguire di nuovo una revisione — dopo un push, ad esempio — menziona il bot.

Commenta nella conversazione della PR:

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

Cosa succede, in ordine:

  1. Il bot reagisce con 👀 così sai che il commento è stato visto
  2. La domanda viene pubblicata nello spazio di revisione della PR a tuo nome — la stessa attribuzione che avresti se l’avessi digitata in Control Center
  3. Un agente risponde nello spazio e la risposta viene pubblicata di nuovo sulla PR come commento che ti @-menziona

Una domanda su una PR che non ha ancora una revisione risveglia l’agente lead (CEO) dello spazio di lavoro; dopo che una revisione è stata eseguita, risponde l’agente che ha parlato per ultimo, quindi i seguiti arrivano a chi ha il contesto.

Rispondi all’interno di un thread di revisione inline di cui il bot fa parte — un commento sul diff che ha lasciato, o una risposta che ha pubblicato in quel thread. Non serve alcuna menzione; il thread è l’indirizzamento:

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

Il multi-turno funziona allo stesso modo: ogni risposta è un’altra domanda nella stessa conversazione, con lo spazio di revisione come contesto, e la risposta torna nel thread.

Un seguito sulla timeline della conversazione della PR è un nuovo commento di primo livello, quindi richiede comunque una @menzione.

Un commento GitHub arriva con poco più di un login, quindi il bot risolve l’autore prima di fare qualsiasi cosa:

  • Il tuo account GitHub deve essere collegato alla tua identità in Control Center — accedi con GitHub, oppure incolla un token, da Impostazioni → Spazio di lavoro → Profilo e identità → Hosting del codice
  • Devi essere un membro con un ruolo di scrittura (member, admin o owner) nello spazio di lavoro che collega il repository

Chiunque altro riceve una sola risposta cortese che spiega cosa manca — un login sconosciuto (non collegato, oppure collegato ma non membro qui) e un ruolo in sola lettura sono i due casi — e le sue parole non entrano mai nello spazio di lavoro. L’etichetta ai-review non è vincolata in questo modo: non ha un autore, quindi avvia la revisione nello spazio di lavoro che già collega il repo.

Elemento Comportamento
Conferma 👀 su un commento entro circa un minuto — l’intervallo di scansione. L’etichetta ai-review non ha alcun commento a cui reagire
Risposte Pubblicate come il bot (l’app), nella corsia in cui è stata posta la domanda
Attribuzione nello spazio La domanda è tua; l’agente viene eseguito per tuo conto, secondo le impostazioni di autonomia dello spazio
Revisioni I rilievi arrivano nello spazio di revisione; la pubblicazione su GitHub è manuale

La latenza di circa un minuto è il prezzo da pagare per non aver bisogno di alcun accesso di rete in ingresso. Nulla della scansione è urgente e nulla va perso mentre il server è offline — un commento che arriva durante un’interruzione viene recuperato alla scansione successiva.

Non succede nulla per un commento che menziona il bot.

  • L’app è installata sull’account che possiede il repo e il repo è collegato a uno spazio di lavoro? Un repo non collegato viene ignorato prima che qualsiasi cosa venga registrata, quindi collegarlo in seguito lo consegna comunque
  • Il tuo account GitHub è collegato e sei un membro con un ruolo di scrittura? Controlla la PR per la risposta di rifiuto del bot — dice quale delle due manca
  • Ancora nulla? Il log del server indica la scansione e la PR quando qualcosa fallisce; cerca pr_conversation: (il poller) e github_pr_conversation: (il bridge)

L’etichetta non avvia una revisione.

Scatta una volta per PR. Se una revisione è già stata eseguita, o l’etichetta è stata aggiunta prima che il server vedesse mai la PR (la prima scansione registra l’arretrato in silenzio invece di scatenarlo), menziona il bot — @myapp review ne avvia sempre una, a meno che una revisione sia già in corso.

La risposta del bot non è mai arrivata su GitHub.

La risposta in sé non va mai persa — è nello spazio di revisione della PR in Control Center. Un errore di pubblicazione (GitHub non raggiungibile, permessi cambiati) viene registrato e la risposta non viene ritentata; chiedi di nuovo nel thread se è importante.