Skip to main content
Un code scan è una sessione Devin, insieme alle sessioni figlie che avvia, che legge uno o più repository, segnala i findings e può risolverli tramite pull request. Le scansioni di sicurezza sono trattate in Security Swarm. Questa pagina riguarda gli altri tipi di scansione.
Per eseguire una scansione:
  • Ti serve l’autorizzazione Use code scans e l’autorizzazione per usare le sessioni Devin. Vedi Access and permissions.
  • La tua organizzazione deve avere accesso al repository che vuoi scansionare.

Avviare una scansione con /scan

  1. Nel compositore, digita /scan seguito da ciò che vuoi trovare e menziona i repository da scansionare. Per esempio: /scan find N+1 queries in @acme/api. Vengono inclusi anche i repository che hai selezionato nel compositore.
  2. Invia il messaggio. Devin avvia una nuova sessione per impostare la scansione e la apre. Se hai inviato /scan da solo, Devin suggerisce alcune scansioni di esempio, come l’individuazione di query lente sul database o di codice inutilizzato, e ti chiede cosa vuoi trovare.
  3. Devin sceglie il tipo di scansione in base alla tua richiesta e lo indica in una riga: per esempio, che imposterà una scansione personalizzata alla ricerca dei soli nomi di variabili in camelCase. Rispondi se desideri qualcosa di diverso.
  4. Devin mostra una card Code scan setup. Conferma i Repositories da scansionare e, facoltativamente, aggiungi indicazioni in What should the scan focus on?. Se non hai menzionato un repository, Devin preseleziona quello in cui hai lavorato di più, in base alle tue pull request recenti.
  5. Fai clic su Start scan. Devin crea la scansione solo dopo l’invio della card, poi condivide un collegamento alla sessione della scansione. Per annullare la configurazione, fai clic su Dismiss.
Non devi scegliere un tipo di scansione né configurarla manualmente. Le richieste che coprono un’intera area, come una scansione delle prestazioni di un repository, utilizzano il tipo di scansione corrispondente. Obiettivi più circoscritti o differenti, come l’individuazione di memory leak, utilizzano una scansione Custom incentrata su ciò che hai descritto. Quando una scansione non di sicurezza termina, Devin ti invia un messaggio diretto su Slack con un riepilogo dei findings, a meno che tu non abbia richiesto una notifica diversa o nessuna notifica. Per i messaggi Slack è necessario che l’integrazione Slack della tua organizzazione consenta alle sessioni di inviare messaggi diretti.
Le scansioni non di sicurezza vengono eseguite senza supervisione con un livello di impegno normale. Le opzioni di impegno e la modalità interattiva, in cui Devin si mette in pausa per permetterti di rivedere un modello di minaccia prima dell’indagine, sono disponibili solo per le scansioni di sicurezza.

Tipi di scansione

Per vulnerabilities e superfici di attacco, usa una scansione Security Swarm.

Esaminare e correggere i finding

Apri il tab Findings nella sessione che ha avviato la scansione, oppure nella sessione principale della scansione, per gestire i relativi finding. I finding aperti sono raggruppati per fase:
  • Unassigned — nessuna sessione di remediation avviata.
  • Assigned — una sessione di remediation è stata avviata, ma non è aperta alcuna pull request.
  • PR open — è aperta una pull request per il finding.
Per ogni finding puoi:
  • Assign to Devin — avviare una sessione Devin che corregge il finding e apre una pull request. Usa Open session per seguire il lavoro e Open PR per esaminare il risultato.
  • Dismiss — rimuovere un finding che non richiede interventi.
Mentre una scansione è in esecuzione, il tab Findings nella sessione principale della scansione offre anche Pause scan, Resume scan e Kill scan. Questi controlli richiedono Manage code scans.

Scansione su larga scala

Scan new commits

Al termine di una scansione di qualsiasi tipo, fai clic su Scan new commits nella scheda Findings per avviare un run incrementale che analizza solo i commit aggiunti dopo l’ultimo run completato della scansione. Il run utilizza la configurazione esistente della scansione e aggiunge i propri finding alla stessa scansione. Il pulsante non è visibile mentre la scansione è in corso o dopo che è stata archiviata, e richiede Manage code scans. Se non sono stati aggiunti nuovi commit, non viene avviato alcun run. In alternativa, puoi chiedere a Devin in una sessione di analizzare i nuovi commit di una scansione esistente.

Automazioni

Le automazioni possono eseguire scansioni di qualsiasi tipo secondo una pianificazione o in risposta a un evento. Scegli il tipo di agent Code scan, quindi in Scan:
  • Scegli Create a new scan per avviare una nuova scansione ogni volta che l’automazione si attiva. Seleziona i repository, il tipo di scansione e il profilo. I tipi di scansione non di sicurezza richiedono uno profilo di scansione dello stesso tipo.
  • Scegli una scansione esistente per analizzarne i nuovi commit ogni volta che l’automazione si attiva. La scansione deve già avere una run completata.
Le scansioni avviate dalle automazioni vengono eseguite senza supervisione. Consulta Avviare scansioni dalle automazioni.

API

L’API Code Scans consente di avviare i code scan, monitorarne lo stato e leggere i findings senza usare la web app. Quando avvii un code scan non di sicurezza tramite l’API, devi indicare un profile_id corrispondente a un profile di quel tipo di scansione; il valore predefinito di scan_type è il tipo del profile. I code scan avviati tramite l’API non sono interattivi.