Leggere e richiedere revisioni su una pull request
Leggi i risultati di Code Review sulla tua pull request GitHub, rispondi o ignorali e richiedi una revisione con
@claude review.
Code Review è un servizio gestito che un Owner della tua organizzazione Claude attiva per un insieme di repository GitHub. Una volta attivo, Claude revisiona le pull request in quei repository e pubblica i suoi risultati come commenti inline, un riepilogo nel corpo della revisione e un check run denominato Claude Code Review. Una revisione non approva né blocca mai la tua pull request, e il check run non si conclude mai con un errore.
Un Owner controlla quando vengono eseguite le revisioni e quanto sono approfondite per ciascun repository.
[!NOTE]
Se il tuo piano non include Code Review, puoi comunque far revisionare il tuo branch a Claude da una sessione di Claude Code: consulta Revisionare in locale con
/code-review.
Livelli di gravità
Claude pubblica ogni risultato come commento inline sulle righe interessate e lo contrassegna con uno di tre livelli di gravità:
| Indicatore | Gravità | Significato |
|---|---|---|
| 🔴 | Important | Un bug che dovrebbe essere corretto prima del merge |
| 🟡 | Nit | Un problema minore, che vale la pena correggere ma non bloccante |
| 🟣 | Pre-existing | Un bug che esiste nel codebase ma non è stato introdotto da questa PR |
Quando la revisione ha registrato il suo ragionamento, il risultato include una sezione compressa Why this was flagged. Espandila per leggere perché Claude ha segnalato il problema e come lo ha verificato.
Per cambiare ciò che Claude segnala nel tuo repository o come classifica la gravità, consulta Personalizzare Code Review.
Rispondere ai risultati
Puoi fare il merge senza rispondere a un risultato, a meno che le regole del tuo repository non lo richiedano. Se la protezione del branch richiede la risoluzione delle conversazioni, risolvi il thread di ogni risultato prima di fare il merge.
Per eliminare un risultato, risolvi il suo thread o esegui il push di una correzione.
- Ignoralo senza modificare il codice: risolvi tu stesso il thread su GitHub. Rispondere soltanto non fa ignorare un risultato.
- Correggi il problema: modifica il codice ed esegui il push. La revisione successiva della pull request risolve il thread precedente quando ritiene che il problema sia stato corretto, sia che quella revisione venga eseguita automaticamente al tuo push sia che tu la richieda.
- Spiega o dissenti: rispondi al commento. Claude non risponde subito e una risposta non avvia una revisione. La revisione successiva della pull request legge le risposte ai suoi risultati precedenti e può risolvere il thread o pubblicare una risposta di follow-up. Se lo stesso tipo di risultato continua a ripresentarsi, chiedi a un maintainer di aggiungere una regola a
REVIEW.md.
Per ottenere quella revisione successiva senza eseguire il push, scrivi @claude review come commento di primo livello sulla pull request.
Output del check run
Il link Details sul check run Claude Code Review apre i risultati in un'unica tabella ordinata per gravità, inclusi i risultati il cui commento inline non è stato accettato da GitHub:
| Gravità | File:Riga | Problema |
|---|---|---|
| 🔴 Important | src/auth/session.ts:142 |
Il refresh del token entra in race condition con il logout, lasciando attive sessioni obsolete |
| 🟡 Nit | src/auth/session.ts:88 |
parseExpiry restituisce silenziosamente 0 con input malformato |
Un risultato che ha una riga ma non è stato pubblicato come commento inline appare come annotazione nella scheda Files changed, sulle righe interessate. I risultati Important vengono mostrati in rosso, i nit in giallo e i bug preesistenti in grigio.
Il check run si conclude come neutral, oppure come skipped quando una revisione automatica non è stata eseguita perché un push non ha modificato alcun file. Non si conclude mai con un errore, quindi una revisione completata non fa fallire un check obbligatorio. Se non vedi risultati o una revisione non è stata eseguita, consulta Risoluzione dei problemi di Code Review.
Leggere il risultato da uno script
Per vincolare un merge o pubblicare un riepilogo dalla tua CI, analizza l'ultima riga del testo Details con gh e jq. Quella riga è un commento HTML che contiene i conteggi per gravità in formato JSON:
<!-- bughunter-severity: {"nit":1,"normal":2,"pre_existing":0} -->
Le righe precedenti possono includere nomi di file della pull request. Se analizzi il testo a modo tuo, prendi i conteggi solo dall'ultima riga, come fa il comando in questi passaggi.
1. Trova l'ID del check run
Dalla tua shell, elenca i check run del commit e prendi l'id del run Claude Code Review. Sostituisci OWNER e REPO con il proprietario e il nome del tuo repository, e <commit-sha> con il commit di testa della pull request:
gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'
2. Leggi i conteggi per gravità
Leggi i conteggi dal campo output.text del check run, che contiene il testo Details. Sostituisci CHECK_RUN_ID con l'ID:
gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID --jq '
(.output.text | split("\n") | last
| scan("^<!-- bughunter-severity: (.*) -->$")[0] | fromjson)?
// error("no severity line")'
Questo stampa un oggetto JSON con un conteggio per ciascuna gravità e le chiavi in ordine alfabetico, ad esempio {"nit": 1, "normal": 2, "pre_existing": 0}. I conteggi includono i risultati delle revisioni precedenti della pull request i cui thread sono ancora aperti.
3. Agisci in base al risultato
Fai in modo che il tuo script gestisca questi casi:
normalè maggiore di zero: fai fallire il job se vuoi vincolare il merge. La chiavenormalcontiene il conteggio dei risultati Important, quindi Claude ha trovato almeno un bug che vale la pena correggere prima del merge. Per stampare solo quel conteggio, aggiungi| .normalprima dell'apice singolo di chiusura.- La riga è assente: il comando stampa un errore che contiene
no severity lineinvece dei conteggi ed esce con uno stato diverso da zero. Trattalo come assenza di verdetto anziché come zero risultati. Un check run per una revisione che è fallita, è andata in timeout, è stata annullata o è stata sostituita da una più recente non ha tale riga, e nemmeno alcune revisioni completate ce l'hanno.
Richiedere una revisione
Se la tua pull request è una bozza o proviene da un fork, le revisioni automatiche la saltano, quindi richiedi la revisione con un comando nei commenti. Per ottenere una revisione sulla tua pull request, esegui una di queste azioni:
- Aprila o contrassegnala come pronta: in un repository impostato su Once after PR creation o After every push, una revisione si avvia quando apri o riapri la pull request, oppure quando contrassegni una bozza come pronta per la revisione.
- Scrivi un comando in un commento: pubblica
@claude reviewsulla pull request. - Esegui il push di un commit: un push avvia una revisione in un repository impostato su After every push, oppure su una pull request che hai sottoscritto con
@claude review always. - Fai clic su Re-run: dopo che una revisione è fallita o è andata in timeout su una pull request che non proviene da un fork, eseguila di nuovo dal check run.
- Attendi il nuovo tentativo automatico: una revisione la cui sessione è stata interrotta viene riprovata automaticamente una volta. Il riepilogo del check run indica quando ciò sta accadendo.
Comandi nei commenti
Pubblica uno di questi comandi come commento sulla pull request:
| Comando | Cosa fa | Quando usarlo |
|---|---|---|
@claude review |
Avvia una singola revisione senza sottoscrivere la PR ai push futuri | Vuoi una revisione adesso, ad esempio su una pull request in un repository impostato su Manual, oppure un'altra revisione immediata nelle altre modalità |
@claude review always |
Avvia una revisione e sottoscrive la PR alle revisioni attivate dai push da quel momento in poi | Vuoi che ogni push successivo avvii una nuova revisione, ad esempio su una PR ad alta priorità in un repository impostato su Manual |
@claude review once |
Uguale a @claude review: avvia una singola revisione senza sottoscrivere |
Gli stessi casi di @claude review |
@claude review stop |
Termina la sottoscrizione della PR alle revisioni attivate dai push, senza avviare una revisione né annullarne una già in coda o in esecuzione. Claude risponde con un commento invece che con un check run. | Hai sottoscritto una PR con @claude review always in un repository impostato su Manual o Once after PR creation e non vuoi più che ogni push avvii una revisione |
@claude review off o @claude review pause |
Uguale a @claude review stop |
Gli stessi casi di @claude review stop |
In un repository impostato su After every push, non puoi interrompere le revisioni con un commento, perché lì i push avviano revisioni con o senza sottoscrizione. Per impedire che i push avviino revisioni su una singola pull request in quel caso, convertila in bozza. Quando la contrassegni di nuovo come pronta per la revisione, si avvia una revisione.
Affinché uno qualsiasi dei comandi nei commenti abbia effetto, devono essere soddisfatte tutte queste condizioni:
- Pubblicalo come nuovo commento di primo livello sulla pull request, non come commento inline su una riga del diff né nel corpo di una revisione. La modifica di un commento precedente non conta.
- Metti l'intero comando su una sola riga all'inizio del commento. Può essere seguito da altro testo. Se
alwaysostopè scritto in modo errato o si trova su una riga successiva, Claude interpreta il commento come un semplice@claude reviewe avvia una singola revisione. Le maiuscole non contano. - Ti servono i permessi write, maintain o admin sul repository. Claude lo verifica con GitHub per ogni persona che commenta, e i commenti dei bot non avviano revisioni.
- La pull request deve essere aperta.
Quando un comando che avvia una revisione viene accettato, sulla pull request appare un check run Claude Code Review con il titolo Code review queued.... Il titolo cambia in Code review in progress... quando la revisione inizia. Claude può anche reagire al tuo commento con 👀, ma quella reazione può comparire anche quando non si avvia alcuna revisione, quindi cerca piuttosto il check run.
Se una revisione è già in esecuzione sull'ultimo commit della pull request, una nuova richiesta non ne avvia una seconda.
[!NOTE]
Prima di un aggiornamento di luglio 2026,
@claude reviewsottoscriveva la PR alle revisioni attivate dai push. Se facevi affidamento su quel comportamento, scrivi invece@claude review always.
Cosa copre una revisione successiva
Una revisione successiva che si avvia da sola, ad esempio dopo un push, si concentra su ciò che è cambiato dall'ultima revisione e pubblica meno nit e risultati preesistenti. Il suo riepilogo conta ciò che ha tralasciato, in una riga che termina con "found and not posted" o "outside the scope of this re-review and not posted."
Per ottenere una revisione che non tralasci nulla di tutto ciò, scrivi @claude review. Copre di nuovo l'intera pull request.
Revisionare bozze e pull request provenienti da fork
Le revisioni automatiche saltano entrambe, quindi richiedi la revisione con un comando nei commenti:
- Pull request in bozza: un comando nei commenti viene eseguito su una bozza, quindi puoi richiedere una revisione prima di contrassegnare la pull request come pronta. I push su una bozza non avviano revisioni, nemmeno dopo
@claude review always. La sottoscrizione ha effetto quando contrassegni la pull request come pronta. - Pull request provenienti da fork: Claude non revisiona automaticamente una pull request proveniente da un fork, indipendentemente dall'impostazione Review runs del repository. Per avviarne una, scrivi
@claude reviewsulla pull request. Si applicano comunque le condizioni per i comandi nei commenti, e l'accesso in scrittura di cui hai bisogno è sul repository di base, non sul fork.
Su una pull request proveniente da un fork, anche @claude review always funziona, ma non sottoscrive la pull request alle revisioni sui push successivi. Fare clic su Re-run sul check run non avvia una revisione in quel caso.
Usare Code Review insieme alla GitHub Action di Claude Code
Se il repository esegue anche la GitHub Action di Claude Code in modalità interattiva con la sua frase di attivazione predefinita @claude, un commento @claude review avvia anche la Action. Per tenere separate le due cose, imposta l'input trigger_phrase della Action su una frase diversa.
Risorse correlate
- Risoluzione dei problemi di Code Review: una revisione che non si è avviata, è fallita o è stata saltata per il budget
- Code Review: cos'è il servizio e come viene eseguita una revisione
- Configurare Code Review: per gli Owner, attiva Code Review e scegli quando eseguire le revisioni e a quale livello
- Personalizzare Code Review: cambia ciò che Claude segnala con
REVIEW.mdeCLAUDE.md - Costi e utilizzo di Code Review: come vengono fatturate le revisioni e dove si imposta il limite di spesa
- Revisionare in locale con
/code-review: esegui una revisione del tuo branch da una sessione di Claude Code