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 dopo alcuni push che non modificano alcun file e mantengono il risultato precedente. 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.
Quando un push mantiene il risultato precedente
Se dopo il tuo push il check run ha uno di questi titoli, Code Review ha mantenuto il risultato di una revisione precedente invece di avviarne una nuova:
- Code review skipped — no new changes: nessun risultato Important della revisione precedente è ancora aperto, quindi non ti serve una nuova revisione
- Code review not repeated — earlier findings still open: per avviare una nuova revisione, fai il push di una correzione per un risultato Important aperto, oppure risolvi il suo thread e fai di nuovo il push
Su github.com, Code Review può mantenere un risultato quando valgono entrambe queste condizioni:
- La pull request aggiunge e rimuove ancora le stesse righe, come dopo un commit vuoto, un merge pulito del branch base o un rebase pulito
- Nessuno ha risolto il thread di un risultato Important da quella revisione
Per ottenere una revisione senza una modifica al codice, commenta @claude review o fai clic su Re-run sul check run.
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}'
Se il commit ha avuto più di un run Claude Code Review, ad esempio dopo un Re-run, GitHub elenca solo il più recente.
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}. Tranne che su un check run che ha mantenuto un risultato precedente, i conteggi includono i risultati delle revisioni precedenti della pull request i cui thread sono ancora aperti.
Con il titolo Code review skipped — no new changes, i conteggi escludono i nit e i risultati preesistenti delle revisioni precedenti che sono ancora aperti. In quel caso nessun risultato Important della revisione precedente è ancora aperto.
3. Agisci in base al risultato
Fai in modo che il tuo script gestisca questi casi nell'ordine:
- Il titolo inizia con
Code review not repeated: Code Review ha mantenuto un risultato precedente i cui risultati Important sono ancora aperti, e il check run non ha una riga di gravità. Leggi il titolo prima dei conteggi, congh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID --jq .output.title. Fai fallire il job se vuoi vincolare il merge. - Il titolo termina con
no new changes: lascia che il job abbia esito positivo senza leggere i conteggi 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. Se dopo il push la tua pull request aggiunge e rimuove ancora le stesse righe, Code Review può invece mantenere il risultato precedente. - 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. Su una pull request che non proviene da un fork, puoi anche fare clic su Re-run dopo un push che ha mantenuto il risultato precedente.
- 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 i push successivi avviino revisioni, 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 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