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

# Avvia code scan di ingestione (API Devin)

> Avvia un code scan di Devin in modalità di ingestione che effettua il triage dei finding di uno scanner esterno utilizzando un profilo di ingestione tramite l'API Enterprise v3

<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 Enterprise.

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

Accoda una code scan in modalità di ingestione. Invece di individuare i problemi da zero, una code scan di ingestione utilizza i findings prodotti altrove (ad esempio, un report SAST) e incarica Devin di sottoporli a triage e convalidarli rispetto al repository. La scansione viene avviata in modo asincrono dal dispatcher delle scansioni e attribuita al principal chiamante.

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

* `repo_name` (obbligatorio): nome completo del repository, ad es. `owner/repo`.
* `profile_id` (obbligatorio): un [profilo di scansione](/it/api-reference/v3/code-scans/enterprise-code-scans-profiles) in modalità `ingest`. I profili in modalità `discover` vengono rifiutati con `400`.
* `host`: host Git del repository, se non può essere dedotto.
* `attachment_urls`: URL degli allegati Devin (ad esempio un report dello scanner esportato) da fornire alla scansione. Carica prima i file tramite l'[API degli allegati](/it/api-reference/v3/attachments/post-organizations-attachments).

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

* `400` se `profile_id` non corrisponde a un profilo in modalità di ingestione.
* `404` se l'organizzazione, il repository o il profilo non è visibile all'account Enterprise.
* `409` se il backlog delle scansioni dell'organizzazione ha raggiunto la capacità massima. Riprova più tardi.


## OpenAPI

````yaml it/v3-openapi.yaml POST /v3/enterprise/organizations/{org_id}/code-scans/ingestion
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/ingestion:
    post:
      tags:
        - code-scans
      summary: Avvia scansione di importazione
      description: >-
        Avvia un code scan in modalità ingest su un repository di
        un'organizzazione.


        La scansione viene accodata e avviata asincronamente dal dispatcher di
        scansione.

        Sono accettati solo profili in modalità ingest; un profilo non ingest
        viene rifiutato

        con ``400``. Gli URL facoltativi degli allegati (caricati tramite l'API
        degli allegati)

        vengono passati alla scansione. Restituisce ``409`` quando il backlog
        delle scansioni

        dell'organizzazione ha raggiunto la capacità massima.
      operationId: >-
        handle_start_ingestion_scan_v3_enterprise_organizations__org_id__code_scans_ingestion_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/StartIngestionScanRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CodeScanResponse'
          description: Risposta con esito positivo
        '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:
    StartIngestionScanRequest:
      description: >-
        Corpo della richiesta per avviare un code scan in modalità ingest.


        Accetta solo un profilo di scansione in modalità ingest (ingest-mode):
        il profilo viene eseguito

        sul repository specificato.
      properties:
        attachment_urls:
          anyOf:
            - items:
                format: uri
                maxLength: 2083
                minLength: 1
                type: string
              maxItems: 10
              type: array
            - type: 'null'
          description: >-
            URL degli allegati Devin da fornire alla scansione, ad es. file
            caricati tramite l'API degli allegati. Gli allegati devono
            appartenere all'organizzazione sottoposta a scansione.
          title: Attachment Urls
        host:
          anyOf:
            - type: string
            - type: 'null'
          description: Host Git del repository, se noto.
          title: Host
        profile_id:
          description: >-
            Profilo di scansione in modalità ingest da eseguire. Deve essere un
            profilo ingest; i profili non ingest vengono rifiutati con 400.
          title: Profile Id
          type: string
        repo_name:
          description: Nome completo del repository da sottoporre a scansione.
          title: Repo Name
          type: string
      required:
        - repo_name
        - profile_id
      title: StartIngestionScanRequest
      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

````