Salta ai contenuti

Revisiona e unisci una PR

Questa guida mostra come revisionare e unire una pull request.

  1. Vai a Pull request nella barra laterale
  2. Seleziona una PR dall’elenco

Una PR si apre come un banco di lavoro a schede, non come una pagina singola. Cinque schede si aprono per impostazione predefinita, in questo ordine: Panoramica, Diff, Controllo del codice, Chat e Azioni (controlli CI raggruppati per workflow). Revisione — l’avanzamento della pipeline di revisione, poi l’artefatto che ha pubblicato con il suo elenco di rilievi — non è deliberatamente una di esse: una PR non ha alcuna revisione finché qualcuno non la richiede, quindi la apre Ask AI. Un terminale, un editor per singoli file, un code-server incorporato e un browser integrato si aprono su richiesta; le schede di anteprima del deployment vengono inserite automaticamente quando sulla PR viene rilevato un URL di anteprima. La disposizione delle schede viene memorizzata per ogni PR.

La scheda Panoramica contiene i metadati della PR (autore, branch, etichette, assegnatari, reazioni, commit, stato dei controlli) e la riga delle azioni: aggiorna, Revisione, Merge, apri nell’IDE e un menu a comparsa ⋯.

Apri la scheda Diff per vedere l’intero diff della PR in una volta, con un albero dei file per passare da un file all’altro.

  • Il pulsante delle impostazioni nella barra degli strumenti del diff passa tra la vista affiancata (una accanto all’altra) e quella unificata e attiva o disattiva il ritorno a capo automatico e le legature del font del codice.
  • Le intestazioni di hunk @@ sono sostituite dalle affordance Show N lines / Show end of file, che inseriscono il contesto circostante al clic.
  • Premi j / k per passare da un file all’altro, c per comprimere o espandere il file attivo, t per riportare la barra laterale all’albero dei file e ⌘F per cercare in tutto il diff (Enter / Shift+Enter scorrono le corrispondenze).
  • Premi v per contrassegnare il file attivo come visto, e il cursore avanza al file successivo. Su GitHub lo stato «visto» è memorizzato sul forge, quindi ti segue tra i client; GitLab e Bitbucket non hanno un’API del genere, quindi lì viene ricordato solo su questo dispositivo.

Il trascinamento del mouse nell’area del codice seleziona il testo fino alla colonna esatta e ⌘C copia il codice sorgente grezzo anziché i marcatori di diff visualizzati.

  1. Tocca il margine di una riga di codice per aprire un composer ancorato a quella riga, oppure usa il pulsante + su un’intestazione di file per un commento a livello di file
  2. Scrivi il tuo feedback in Markdown
  3. Invia

Su GitHub e GitLab il composer offre due invii: Aggiungi un solo commento pubblica immediatamente, mentre Avvia una revisione / Aggiungi alla revisione mette il commento in coda su una revisione in sospeso che viene inviata con Approva, Richiedi modifiche o Commento. Bitbucket non ha il raggruppamento in revisioni in sospeso, quindi lì ogni invio pubblica immediatamente. Un invio immediato mostra uno stato in sospeso finché il forge non lo conferma, poi passa a sincronizzato. Se l’invio non riesce, il thread viene contrassegnato con l’errore e offre un nuovo tentativo.

Solo il corpo della revisione è una bozza: viene salvato lato server per la chiave (proprietario, repo, numero di PR) poco dopo che smetti di digitare, quindi sopravvive a un ricaricamento e ti segue tra i client desktop e web.

  1. Premi Revisione nella riga delle azioni della Panoramica (è nascosto sulle tue PR e su una PR chiusa o unita)
  2. Scrivi il corpo della revisione. Puoi allegare un’immagine, inserire un’emoji o una GIF e passare tra scrittura e anteprima
  3. Premi Richiedi modifiche, Commento o Approva

Il verdetto è il pulsante — non esiste un selettore di verdetto separato. Dopo Approva o Richiedi modifiche, il pulsante si rinomina in Approvato o Modifiche richieste e il corpo della bozza viene cancellato. Un verdetto Commento lascia il pulsante etichettato Revisione.

Il pulsante Merge compare quando hai l’accesso in scrittura e la PR è aperta e non è una bozza. Il suo colore è un segnale di preparazione derivato dalle approvazioni richieste e dallo stato dei controlli (pronto / in sospeso / bloccato) — è solo indicativo. Il pulsante non viene mai disabilitato dallo stato della revisione; è la stessa protezione dei branch del forge ad applicare le regole.

  1. Premi Merge per aprire il pannello a comparsa di merge
  2. Scegli un metodo di merge: squash, merge commit o rebase (squash è il valore predefinito). Bitbucket non ha un vero merge con rebase, quindi rebase viene mappato sulla sua strategia fast-forward e non riesce su un branch divergente
  3. Per squash e merge commit, modifica il titolo e la descrizione del commit precompilati. Rebase non prende né l’uno né l’altro e nasconde entrambi i campi
  4. Leggi il pannello degli avvisi — elenca i controlli non riusciti e le revisioni in sospeso, ma non ti blocca
  5. Premi il pulsante di merge nel pannello a comparsa per confermare

Il merge è irreversibile: spinge i commit sul forge, quindi ottiene un passaggio di conferma invece di una voce di annullamento. In seguito la cache della PR viene invalidata, il suo stato passa a Unita e viene attivato un evento PullRequestStatusChanged con stato merged. Quell’evento rilascia il worktree effimero «Apri nell’editor» e avvia due pipeline preconfigurate: Stale repository cleanup, che rimuove i worktree obsoleti e le cartelle delle conversazioni della PR, e Release notes, che redige una voce di changelog.

Il menu a comparsa ⋯ sulla scheda Panoramica contiene Ask AI, che avvia la pipeline pr_review preconfigurata per questa PR. Compare solo mentre la PR è aperta. Vedi Usa la revisione basata sull’IA per sapere cosa fa la pipeline e come pubblicare i suoi rilievi, e Calcolo della revisione per il modello deterministico di coorti e assi.

Control Center importa anche le PR aperte da persone al di fuori dell’app. Il flusso di revisione descritto sopra è identico. Le PR esterne vengono rilevate dal servizio di polling delle PR.