> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Avvia code scan (API Devin)

> Avvia un nuovo code scan Devin su un repository di un'organizzazione tramite l'API Enterprise v3, facoltativamente con un profilo di scansione o un commit

<div id="permissions">
  ## Autorizzazioni
</div>

Richiede un [utente di servizio](/it/api-reference/v3/service-users/members-service-users) o un [token di accesso personale](/it/api-reference/personal-access-tokens) con l'autorizzazione `UseAccountCodeScans` a livello aziendale.

<div id="behavior">
  ## Comportamento
</div>

Accoda un nuovo code scan per `repo_name` nell'organizzazione specificata. Il code scan viene avviato in modo asincrono dal dispatcher delle scansioni; la risposta contiene il record del code scan con uno `status` iniziale di `waiting` o `pending`. Esegui il polling di [Elencare i code scan](/it/api-reference/v3/code-scans/enterprise-code-scans-list) per monitorarne l'avanzamento e di [Elencare i risultati dei code scan](/it/api-reference/v3/code-scans/enterprise-code-scans-findings) (filtrati per `scan_id`) per leggere i risultati quando il code scan raggiunge lo stato `completed`.

Il code scan è attribuito al principal chiamante, ovvero l'utente di servizio o il PAT che ha effettuato la richiesta.

<div id="request-fields">
  ### Campi della richiesta
</div>

* `repo_name` (obbligatorio): 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.
* `profile_id`: un [profilo di scansione](/it/api-reference/v3/code-scans/enterprise-code-scans-profiles) da applicare. Usa [Avvia scansione di ingestione](/it/api-reference/v3/code-scans/enterprise-code-scans-start-ingestion) per i profili in modalità `ingest`.
* `scan_type`: tipo di scansione da eseguire. Deve corrispondere al tipo di scansione del profilo se viene specificato `profile_id`. Per impostazione predefinita, usa il tipo del profilo oppure `security` per le scansioni senza profilo. I tipi di scansione non di sicurezza richiedono un profilo.
* `commit_sha`: commit su cui effettuare il checkout prima della scansione. Per impostazione predefinita, viene usato l'HEAD del branch predefinito del repository.

<div id="errors">
  ### Errori
</div>

* `400` quando `scan_type` è in conflitto con il profilo oppure viene specificato un `scan_type` non relativo alla sicurezza senza un profilo.
* `403` quando l'organizzazione è limitata alle sole scansioni di ingestione e non viene specificato un profilo in modalità `ingest`.
* `404` quando l'organizzazione, il repository o il profilo non sono visibili all'account Enterprise.
* `409` quando il backlog delle scansioni dell'organizzazione ha raggiunto il limite. Riprova più tardi.


## OpenAPI

````yaml it/v3-openapi.yaml POST /v3/enterprise/organizations/{org_id}/code-scans
openapi: 3.1.0
info:
  description: API Devin v3 con autenticazione utente di servizio e RBAC
  title: Devin API v3
  version: 3.0.0
servers: []
security:
  - bearerAuth: []
paths:
  /v3/enterprise/organizations/{org_id}/code-scans:
    post:
      tags:
        - code-scans
      summary: Avviare il code scan
      description: >-
        Avvia una nuova code scan su un repository di un'organizzazione.


        La scansione viene messa in coda e avviata in modo asincrono dal
        dispatcher delle scansioni.

        La scansione viene attribuita al principal chiamante (l'utente di
        servizio o il PAT

        che ha effettuato la richiesta). Restituisce ``409`` quando il backlog
        delle scansioni

        dell'organizzazione ha raggiunto la capacità massima.
      operationId: >-
        handle_start_code_scan_v3_enterprise_organizations__org_id__code_scans_post
      parameters:
        - description: 'ID dell''organizzazione (prefisso: org-)'
          in: path
          name: org_id
          required: true
          schema:
            example: org-abc123def456
            title: Org Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CodeScanCreateRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CodeScanResponse'
          description: Risposta riuscita
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Non autorizzato
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Accesso negato
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Non trovato
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Conflitto
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Contenuto non elaborabile
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Troppe richieste
components:
  schemas:
    CodeScanCreateRequest:
      description: Corpo della richiesta per avviare un nuovo code scan.
      properties:
        commit_sha:
          anyOf:
            - type: string
            - type: 'null'
          description: Commit da estrarre prima della scansione.
          title: Commit Sha
        host:
          anyOf:
            - type: string
            - type: 'null'
          description: Host Git del repository, se noto.
          title: Host
        profile_id:
          anyOf:
            - type: string
            - type: 'null'
          description: Profilo di scansione da applicare alla scansione.
          title: Profile Id
        repo_name:
          description: Nome completo del repository da sottoporre a scansione.
          title: Repo Name
          type: string
        scan_type:
          anyOf:
            - enum:
                - security
                - performance
                - db-queries
                - test-coverage
                - dead-code
                - code-quality
                - telemetry
                - accessibility
                - general
                - migration-docs
              type: string
            - type: 'null'
          description: >-
            Tipo di scansione da eseguire. Deve corrispondere al tipo di
            scansione del profilo quando viene fornito un profilo; per
            impostazione predefinita usa il tipo del profilo oppure 'security'
            per le scansioni senza profilo. I tipi diversi da security
            richiedono un profilo e vengono rifiutati senza di esso.
          title: Scan Type
      required:
        - repo_name
      title: CodeScanCreateRequest
      type: object
    CodeScanResponse:
      description: Un singolo code scan.
      properties:
        created_at:
          description: Momento in cui lo scan è stato creato (secondi Unix).
          title: Created At
          type: integer
        host:
          anyOf:
            - type: string
            - type: 'null'
          description: Host Git della repository, se noto.
          title: Host
        org_id:
          description: Organizzazione a cui appartiene lo scan.
          title: Org Id
          type: string
        profile:
          anyOf:
            - $ref: '#/components/schemas/CodeScanProfileResponse'
            - type: 'null'
          description: Profilo con cui è stato eseguito lo scan, se presente.
        repo_name:
          description: >-
            Repository principale dello scan. Gli scan multi-repo coprono
            repository aggiuntive non elencate qui.
          title: Repo Name
          type: string
        scan_id:
          description: Identificatore univoco dello scan.
          title: Scan Id
          type: string
        scan_type:
          description: Tipo di scansione, definito al momento della creazione.
          enum:
            - security
            - performance
            - db-queries
            - test-coverage
            - dead-code
            - code-quality
            - telemetry
            - accessibility
            - general
            - migration-docs
          title: Scan Type
          type: string
        status:
          description: >-
            Stato dello scan: waiting, pending, running, awaiting_user_input,
            completed, failed o cancelled.
          enum:
            - waiting
            - pending
            - running
            - awaiting_user_input
            - completed
            - failed
            - cancelled
          title: Status
          type: string
      required:
        - scan_id
        - org_id
        - repo_name
        - host
        - status
        - profile
        - scan_type
        - created_at
      title: CodeScanResponse
      type: object
    ProblemDetail:
      description: >-
        Corpo dell'errore application/problem+json RFC 9457 per l'API v3.


        detail è mantenuto dal corpo legacy {"detail": ...} per
        retrocompatibilità; gli

        altri membri sono aggiuntivi. errors contiene gli errori di validazione
        a livello di campo

        (solo 422).
      properties:
        detail:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Una spiegazione leggibile dall'utente, specifica per questa
            occorrenza.
          title: Detail
        errors:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          description: Errori di convalida a livello di campo (solo per le risposte 422).
          title: Errors
        instance:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Un riferimento URI (il percorso della richiesta) per questa
            occorrenza.
          title: Instance
        status:
          description: Il codice di stato HTTP.
          title: Status
          type: integer
        title:
          description: Un breve riepilogo del tipo di problema, leggibile dall'utente.
          title: Title
          type: string
        type:
          default: about:blank
          description: Un riferimento URI che identifica il tipo di problema.
          title: Type
          type: string
      required:
        - title
        - status
      title: ProblemDetail
      type: object
    CodeScanProfileResponse:
      description: Riepilogo del profilo con cui è stato eseguito un scan.
      properties:
        name:
          description: Nome del profilo.
          title: Name
          type: string
        profile_id:
          description: Identificatore univoco del profilo.
          title: Profile Id
          type: string
      required:
        - profile_id
        - name
      title: CodeScanProfileResponse
      type: object
  securitySchemes:
    bearerAuth:
      description: 'Credenziale dell''utente del servizio (prefisso: cog_)'
      scheme: bearer
      type: http

````