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

# Déclencher des analyses de code via l’API Devin

> Guide pour lancer des analyses de code Devin par programmation, interroger périodiquement leur statut et consulter les constats avec les API d’organisation et Enterprise v3

L’API d’analyse de code vous permet de lancer des analyses, d’interroger périodiquement leur statut et de consulter les constats sans utiliser l’application web. Chaque opération est disponible dans deux périmètres, suivant la même [distinction entre organisation et entreprise](/fr/api-reference/v3/overview) que le reste de l’API v3 :

* **Organisation** (`/v3/organizations/{org_id}/code-scans/...`) s’applique à une seule organisation et requiert l’autorisation `UseCodeScans` (écriture) ou `ViewCodeScans` (lecture) au niveau de l’organisation.
* **Enterprise** (`/v3/enterprise/...`) couvre toutes les organisations de l’entreprise et requiert l’autorisation `UseAccountCodeScans` (écriture) ou `ViewAccountCodeScans` (lecture) au niveau Enterprise. Les endpoints de création d’analyses et de remédiation incluent toujours un `org_id` dans le chemin, car une analyse appartient à une seule organisation.

Les deux périmètres utilisent une [API key d’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) pour l’authentification et partagent les mêmes formats de requête et de réponse.

<div id="endpoints">
  ## Endpoints
</div>

| Opération                                  | Organisation                                                                                                       | Enterprise                                                                                                             |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| Démarrer une analyse de code               | [`POST /v3/organizations/{org_id}/code-scans`](/fr/api-reference/v3/code-scans/organizations-code-scans-start)     | [`POST /v3/enterprise/organizations/{org_id}/code-scans`](/fr/api-reference/v3/code-scans/enterprise-code-scans-start) |
| Démarrer une analyse par ingestion         | [`POST .../code-scans/ingestion`](/fr/api-reference/v3/code-scans/organizations-code-scans-start-ingestion)        | [`POST .../code-scans/ingestion`](/fr/api-reference/v3/code-scans/enterprise-code-scans-start-ingestion)               |
| Lister les analyses de code                | [`GET /v3/organizations/{org_id}/code-scans/scans`](/fr/api-reference/v3/code-scans/organizations-code-scans-list) | [`GET /v3/enterprise/code-scans/scans`](/fr/api-reference/v3/code-scans/enterprise-code-scans-list)                    |
| Lister les profils d’analyse de code       | [`GET .../code-scans/profiles`](/fr/api-reference/v3/code-scans/organizations-code-scans-profiles)                 | [`GET /v3/enterprise/code-scans/profiles`](/fr/api-reference/v3/code-scans/enterprise-code-scans-profiles)             |
| Obtenir un profil d’analyse de code        | [`GET .../code-scans/profiles/{profile_id}`](/fr/api-reference/v3/code-scans/organizations-code-scans-profile)     | [`GET /v3/enterprise/code-scans/profiles/{profile_id}`](/fr/api-reference/v3/code-scans/enterprise-code-scans-profile) |
| Lister les constats d’analyse de code      | [`GET .../code-scans/findings`](/fr/api-reference/v3/code-scans/organizations-code-scans-findings)                 | [`GET /v3/enterprise/code-scans/findings`](/fr/api-reference/v3/code-scans/enterprise-code-scans-findings)             |
| Obtenir les métriques des analyses de code | [`GET .../code-scans/metrics`](/fr/api-reference/v3/code-scans/organizations-code-scans-metrics)                   | [`GET /v3/enterprise/code-scans/metrics`](/fr/api-reference/v3/code-scans/enterprise-code-scans-metrics)               |
| Remédier à un constat d’analyse de code    | [`POST .../findings/{finding_id}/remediate`](/fr/api-reference/v3/code-scans/organizations-code-scans-remediate)   | [`POST .../findings/{finding_id}/remediate`](/fr/api-reference/v3/code-scans/enterprise-code-scans-remediate)          |

Les mêmes opérations sont également disponibles via les chemins `/v3beta1/...`, avec des structures de requête et de réponse identiques. Le tableau couvre le workflow d’analyse ; la spécification OpenAPI v3 expose également la planification d’Auto Scan (`POST .../code-scans/{scan_id}/auto-scan`) et la réattribution de profil (`PUT .../code-scans/{scan_id}/profile`) dans les deux périmètres.

Les étapes ci-dessous utilisent le périmètre de l’organisation ; utilisez les chemins et autorisations Enterprise si votre credential est limité au périmètre Enterprise.

<div id="typical-flow">
  ## Flux type
</div>

<Steps>
  <Step title="Choisir un profil (facultatif)">
    Appelez [Lister les profils d’analyse de code](/fr/api-reference/v3/code-scans/organizations-code-scans-profiles) et sélectionnez un profil en mode `discover`. Omettez le profil pour lancer une analyse de sécurité par défaut.
  </Step>

  <Step title="Lancer l’analyse">
    ```bash theme={null}
    curl -X POST "https://api.devin.ai/v3/organizations/$ORG_ID/code-scans" \
      -H "Authorization: Bearer $DEVIN_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"repo_name": "acme/payments"}'
    ```

    La réponse est un `201` contenant l’enregistrement de l’analyse. Conservez `scan_id`. Un `409` indique que la file d’attente des analyses de l’organisation est pleine ; réessayez ultérieurement.
  </Step>

  <Step title="Interroger jusqu’à la fin de l’analyse">
    Appelez [Lister les analyses de code](/fr/api-reference/v3/code-scans/organizations-code-scans-list) (en filtrant par `repo_name`) jusqu’à ce que le `status` de l’analyse soit `completed` (ou `failed` / `cancelled`). Ces trois statuts sont terminaux. `awaiting_user_input` ne s’applique qu’aux analyses interactives lancées depuis l’application web ; les analyses lancées via l’API ne sont pas interactives et n’atteignent pas cet état.
  </Step>

  <Step title="Consulter les constats">
    Appelez [Lister les constats d’analyse de code](/fr/api-reference/v3/code-scans/organizations-code-scans-findings) avec `scan_id` pour parcourir les constats par pages, en filtrant éventuellement par `severity` et `status`.
  </Step>

  <Step title="Remédier">
    Appelez [Remédier à un constat d’analyse de code](/fr/api-reference/v3/code-scans/organizations-code-scans-remediate) pour que Devin ouvre une pull request afin de corriger un constat.
  </Step>
</Steps>

<div id="ingestion-scans">
  ## Analyses d’ingestion
</div>

Pour que Devin assure le triage des constats produits par un autre scanner, créez un profil en mode `ingest` dans l’application web, chargez le rapport du scanner via l’[API des fichiers joints](/fr/api-reference/v3/attachments/post-organizations-attachments) (un endpoint limité à une organisation qui nécessite l’autorisation d’organisation `UseDevinSessions`, en plus des autorisations d’analyse de code), puis appelez [Démarrer une analyse par ingestion](/fr/api-reference/v3/code-scans/organizations-code-scans-start-ingestion) (ou l’[équivalent Enterprise](/fr/api-reference/v3/code-scans/enterprise-code-scans-start-ingestion)) avec `profile_id` et `attachment_urls`.
