Skip to main content
POST
Avviare il code scan

Autorizzazioni

Richiede un utente di servizio o un token di accesso personale con l’autorizzazione UseCodeScans a livello dell’organizzazione.

Comportamento

Accoda una nuova scansione del codice per il repository specificato (repo_name) o per i repository specificati (repos) nell’organizzazione. La scansione del codice viene avviata in modo asincrono dal dispatcher delle scansioni; la risposta contiene il record della scansione del codice con status iniziale waiting o pending. Interroga Elenca Scansioni del codice per monitorarne l’avanzamento e Elenca risultati di Scansioni del codice (filtrati per scan_id) per consultare i risultati quando la scansione del codice raggiunge lo stato completed. La scansione del codice è attribuita al principal chiamante (l’utente di servizio o il PAT che ha effettuato la richiesta). L’equivalente nell’ambito Enterprise è Avvia Scansione del codice (Enterprise).

Campi della richiesta

Specifica esattamente uno tra repo_name e repos.
  • repo_name: nome completo del repository, ad es. owner/repo. Il repository deve essere già accessibile tramite l’integrazione Git dell’organizzazione.
  • host: host Git del repository, se non può essere dedotto.
  • repos: repository inclusi in un’unica scansione multi-repo, sotto forma di elenco di oggetti con repo_name e un host facoltativo (fino a 200). La prima voce è il repository principale della scansione.
  • profile_id: un profilo di scansione da applicare. Per i profili in modalità ingest, utilizza Avvia scansione di ingestione.
  • scan_type: tipo di scansione da eseguire. Se viene specificato profile_id, deve corrispondere al tipo di scansione del profilo. Per impostazione predefinita, viene usato il tipo del profilo oppure security per le scansioni senza profilo. I tipi di scansione diversi da security richiedono un profilo.
  • commit_sha: commit da estrarre prima della scansione. Per impostazione predefinita, viene usato l’HEAD del branch predefinito del repository.
  • effort: normal (predefinito) usa un livello di ragionamento del modello più basso con batch di indagine più ampi; deep esegue l’intera pipeline.
  • interactive: se true, la scansione va in pausa nello stato awaiting_user_input tra la modellazione delle minacce e l’indagine, per consentire la revisione da parte dell’utente. Il valore predefinito è false. Solo le scansioni di sicurezza supportano la revisione interattiva; gli altri tipi di scansione vengono eseguiti senza supervisione.
  • platform: dove vengono eseguite le sessioni della scansione, ovvero un’etichetta di piattaforma configurata per l’organizzazione (ad esempio linux, windows o macos) oppure il nome di un pool outpost, senza distinzione tra maiuscole e minuscole. Se un nome corrisponde a entrambi, le piattaforme hanno la priorità. Il valore predefinito è quello impostato per l’organizzazione.

Errori

  • 400 se scan_type è in conflitto con il profilo, se viene specificato un scan_type non di sicurezza senza un profilo oppure se platform non corrisponde a un’etichetta di piattaforma configurata o a un pool outpost (il corpo dell’errore elenca i valori disponibili).
  • 403 se l’organizzazione è limitata alle sole scansioni di ingestione e non viene specificato un profilo in modalità ingest.
  • 404 se il repository o il profilo non è visibile all’organizzazione.
  • 409 se il backlog delle scansioni dell’organizzazione ha raggiunto il limite. Riprova più tardi.
  • 422 se vengono forniti sia repo_name sia repos oppure nessuno dei due, o se repos è vuoto.

Autorizzazioni

Authorization
string
header
obbligatorio

Credenziale dell'utente del servizio (prefisso: cog_)

Parametri del percorso

org_id
string
obbligatorio

ID dell'organizzazione (prefisso: org-)

Esempio:

"org-abc123def456"

Corpo

application/json

Corpo della richiesta per avviare un nuovo code scan.

commit_sha
string | null

Commit di cui effettuare il checkout prima della scansione.

effort
enum<string> | null

Livello di approfondimento dello scan: 'normal' (predefinito) usa un livello di ragionamento del modello più basso con gruppi di indagine più ampi; 'deep' esegue l'intera pipeline.

Opzioni disponibili:
normal,
deep
host
string | null

Host Git del repository, se noto.

interactive
boolean
predefinito:false

Se true, la scansione si mette in pausa tra la modellazione delle minacce e l'indagine per consentire la revisione da parte dell'utente.

new_budget
NewScanBudget · object | null

Assegna alla scansione un budget ACU dedicato. Richiede le autorizzazioni ManageAccountServiceUsers e ManageAcuLimits.

platform
string | null

Dove vengono eseguite le sessioni della scansione: un'etichetta di piattaforma configurata per l'organizzazione (ad es. 'linux', 'windows', 'macos') o il nome di un pool outpost (BYOB), senza distinzione tra maiuscole e minuscole; se un nome corrisponde sia a una piattaforma sia a un pool, la piattaforma ha la priorità. Se omesso, viene usato il valore predefinito dell'organizzazione. I valori non riconosciuti vengono rifiutati con un errore 400 il cui corpo elenca le etichette di piattaforma e i nomi dei pool outpost disponibili.

Maximum string length: 128
profile_id
string | null

Profilo di scansione da applicare alla scansione.

repo_name
string | null

Nome completo del repository da scansionare. Fornisci uno solo dei due parametri: repo_name o repos.

repos
ScanRepoRequest · object[] | null

Repository inclusi in una singola scansione; la prima voce è il repository principale della scansione. Fornisci uno solo dei due parametri: repo_name o repos.

Maximum array length: 200
scan_type
enum<string> | null

Tipo di scansione da eseguire. Se viene fornito un profilo, deve corrispondere al tipo di scansione del profilo. Il valore predefinito è il tipo del profilo, oppure 'security' per le scansioni senza profilo. I tipi diversi da 'security' richiedono un profilo e vengono rifiutati in sua assenza.

Opzioni disponibili:
security,
performance,
db-queries,
test-coverage,
dead-code,
code-quality,
cleanup,
telemetry,
accessibility,
compliance,
general,
migration-docs

Risposta

Risposta con esito positivo

Un singolo code scan.

created_at
integer
obbligatorio

Momento in cui lo scan è stato creato (secondi Unix).

effort
enum<string>
obbligatorio

Livello di approfondimento dello scan: 'normal' usa un livello di ragionamento del modello più basso con gruppi di indagine più ampi; 'deep' esegue l'intera pipeline.

Opzioni disponibili:
normal,
deep
host
string | null
obbligatorio

Host Git della repository, se noto.

org_id
string
obbligatorio

Organizzazione a cui appartiene lo scan.

profile
CodeScanProfileResponse · object | null
obbligatorio

Profilo con cui è stato eseguito lo scan, se presente.

repo_name
string
obbligatorio

Repository principale dello scan. Gli scan multi-repo coprono repository aggiuntive non elencate qui.

scan_id
string
obbligatorio

Identificatore univoco dello scan.

scan_type
enum<string>
obbligatorio

Tipo di scansione, definito al momento della creazione.

Opzioni disponibili:
security,
performance,
db-queries,
test-coverage,
dead-code,
code-quality,
cleanup,
telemetry,
accessibility,
compliance,
general,
migration-docs
status
enum<string>
obbligatorio

Stato dello scan: waiting, pending, running, awaiting_user_input, completed, failed o cancelled.

Opzioni disponibili:
waiting,
pending,
running,
awaiting_user_input,
completed,
failed,
cancelled
url
string
obbligatorio

URL della pagina della scansione nell'applicazione web di Devin.

outpost_pool_id
string | null

Pool outpost su cui vengono eseguite le sessioni della scansione, se impostato.

platform
string | null

Etichetta della piattaforma ospitata su cui vengono eseguite le sessioni della scansione. Null quando la scansione viene eseguita su un pool outpost o sulla piattaforma predefinita dell'organizzazione.

repo_full_name
string | null

Identificativo del repository principale comprensivo dell'host (ad es. github.com/org/repo). Null per i depot Perforce, che non hanno un host git.