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

# Démarrer une analyse de code (API Devin)

> Démarrer une nouvelle analyse de code Devin d’un dépôt d’une organisation via l’API Enterprise v3, éventuellement avec un profil d’analyse ou un commit

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

Requiert un [utilisateur de service](/fr/api-reference/v3/service-users/members-service-users) ou un [jeton d’accès personnel](/fr/api-reference/personal-access-tokens) disposant de l’autorisation `UseAccountCodeScans` au niveau de l’entreprise.

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

Met en file d’attente une nouvelle analyse de code pour `repo_name` dans l’organisation indiquée. L’analyse est lancée de manière asynchrone par le répartiteur d’analyses ; la réponse contient l’enregistrement de l’analyse avec un `status` initial défini sur `waiting` ou `pending`. Interrogez périodiquement [List Code Scans](/fr/api-reference/v3/code-scans/enterprise-code-scans-list) pour suivre sa progression et [List Code Scan Findings](/fr/api-reference/v3/code-scans/enterprise-code-scans-findings) (filtré par `scan_id`) pour consulter les résultats une fois l’analyse au statut `completed`.

L’analyse est attribuée au principal appelant (l’utilisateur de service ou le PAT ayant effectué la requête).

<div id="request-fields">
  ### Champs de la requête
</div>

* `repo_name` (obligatoire) : nom complet du dépôt, par ex. `owner/repo`. Le dépôt doit déjà être accessible via l’intégration Git de l’organisation.
* `host` : hôte Git du dépôt, s’il ne peut pas être déterminé automatiquement.
* `profile_id` : [profil d’analyse](/fr/api-reference/v3/code-scans/enterprise-code-scans-profiles) à appliquer. Utilisez [Start Ingestion Scan](/fr/api-reference/v3/code-scans/enterprise-code-scans-start-ingestion) pour les profils en mode `ingest`.
* `scan_type` : type d’analyse à exécuter. Doit correspondre au type d’analyse du profil lorsque `profile_id` est fourni. Par défaut, utilise le type du profil ou `security` pour les analyses sans profil. Les types d’analyse autres que `security` nécessitent un profil.
* `commit_sha` : commit à extraire avant l’analyse. Par défaut, utilise le dernier commit de la branche par défaut du dépôt.

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

* `400` lorsque `scan_type` est incompatible avec le profil ou qu’un `scan_type` non lié à la sécurité est fourni sans profil.
* `403` lorsque l’organisation est limitée aux analyses par ingestion et qu’aucun profil en mode `ingest` n’est fourni.
* `404` lorsque l’organisation, le dépôt ou le profil n’est pas visible par le compte Enterprise.
* `409` lorsque le backlog d’analyses de l’organisation est saturé. Réessayez plus tard.


## OpenAPI

````yaml fr/v3-openapi.yaml POST /v3/enterprise/organizations/{org_id}/code-scans
openapi: 3.1.0
info:
  description: API Devin v3 avec authentification par compte de service et 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: Lancer l’analyse de code
      description: >-
        Lance une nouvelle analyse de code sur un dépôt au sein d’une
        organisation.


        L’analyse est mise en file d’attente et lancée de manière asynchrone par
        le répartiteur d’analyses.

        L’analyse est attribuée au principal appelant (l’utilisateur de service
        ou le PAT

        ayant effectué la requête). Renvoie ``409`` lorsque le backlog
        d’analyses de l’organisation

        a atteint sa capacité maximale.
      operationId: >-
        handle_start_code_scan_v3_enterprise_organizations__org_id__code_scans_post
      parameters:
        - description: "ID d’organisation (préfixe\_: 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: Réponse réussie
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Non autorisé
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Interdit
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Non trouvé
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Conflit
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Contenu impossible à traiter
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Trop de requêtes
components:
  schemas:
    CodeScanCreateRequest:
      description: Corps de la requête pour lancer une nouvelle analyse de code.
      properties:
        commit_sha:
          anyOf:
            - type: string
            - type: 'null'
          description: Commit à extraire avant l’analyse.
          title: Commit Sha
        host:
          anyOf:
            - type: string
            - type: 'null'
          description: Hôte Git du dépôt, s’il est connu.
          title: Host
        profile_id:
          anyOf:
            - type: string
            - type: 'null'
          description: Profil d’analyse à appliquer à l’analyse.
          title: Profile Id
        repo_name:
          description: Nom complet du dépôt à analyser.
          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: >-
            Type d'analyse à exécuter. Doit correspondre au type d'analyse du
            profil lorsqu'un profil est fourni ; utilise par défaut le type du
            profil, ou 'security' pour les analyses sans profil. Les types
            autres que security nécessitent un profil et sont refusés sans
            celui-ci.
          title: Scan Type
      required:
        - repo_name
      title: CodeScanCreateRequest
      type: object
    CodeScanResponse:
      description: Une analyse de code.
      properties:
        created_at:
          description: Date de création de l’analyse (secondes Unix).
          title: Created At
          type: integer
        host:
          anyOf:
            - type: string
            - type: 'null'
          description: Hôte Git du dépôt, s’il est connu.
          title: Host
        org_id:
          description: Organisation à laquelle l’analyse appartient.
          title: Org Id
          type: string
        profile:
          anyOf:
            - $ref: '#/components/schemas/CodeScanProfileResponse'
            - type: 'null'
          description: Profil avec lequel l’analyse a été exécutée, le cas échéant.
        repo_name:
          description: >-
            Dépôt principal de l’analyse. Les analyses multi-dépôts couvrent des
            dépôts supplémentaires non répertoriés ici.
          title: Repo Name
          type: string
        scan_id:
          description: Identifiant unique de l’analyse.
          title: Scan Id
          type: string
        scan_type:
          description: Type d'analyse, défini lors de la création.
          enum:
            - security
            - performance
            - db-queries
            - test-coverage
            - dead-code
            - code-quality
            - telemetry
            - accessibility
            - general
            - migration-docs
          title: Scan Type
          type: string
        status:
          description: "Statut de l’analyse\_: waiting, pending, running, awaiting_user_input, completed, failed ou 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: "Corps d’erreur RFC 9457 application/problem+json pour l’API v3.\n\ndetail est conservé de l’ancien corps {\"detail\": ...} pour assurer la rétrocompatibilité\_; les\nautres membres sont ajoutés de manière additive. errors contient les échecs de validation\nau niveau des champs (422 uniquement)."
      properties:
        detail:
          anyOf:
            - type: string
            - type: 'null'
          description: Explication en langage clair, spécifique à cette occurrence.
          title: Detail
        errors:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          description: Erreurs de validation par champ (réponses 422 uniquement).
          title: Errors
        instance:
          anyOf:
            - type: string
            - type: 'null'
          description: Une référence d’URI (le chemin de la requête) pour cette occurrence.
          title: Instance
        status:
          description: Le code d’état HTTP.
          title: Status
          type: integer
        title:
          description: Un bref résumé du type de problème, compréhensible par un humain.
          title: Title
          type: string
        type:
          default: about:blank
          description: Une référence d’URI identifiant le type de problème.
          title: Type
          type: string
      required:
        - title
        - status
      title: ProblemDetail
      type: object
    CodeScanProfileResponse:
      description: Résumé du profil avec lequel une analyse a été exécutée.
      properties:
        name:
          description: Nom du profil.
          title: Name
          type: string
        profile_id:
          description: Identifiant unique du profil.
          title: Profile Id
          type: string
      required:
        - profile_id
        - name
      title: CodeScanProfileResponse
      type: object
  securitySchemes:
    bearerAuth:
      description: "Identifiant de compte de service (préfixe\_: cog_)"
      scheme: bearer
      type: http

````