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

# Analyse de code Devin

> Utilisez les analyse de code Devin pour détecter les problèmes de performance, de couverture de tests, de code mort, d'accessibilité et autres dans vos repositories, puis corrigez-les avec Devin

Une analyse de code est une session Devin, accompagnée des child sessions qu'elle lance, qui lit un ou plusieurs repositories, signale des **constats** et peut les corriger via des pull requests. Les analyses de sécurité sont traitées dans [Security Swarm](/fr/work-with-devin/security-swarm). Cette page porte sur les autres types d'analyse.

<Accordion title="Prérequis">
  Pour lancer une analyse :

  * Vous devez disposer de l'autorisation **Utiliser les analyse de code** ainsi que de l'autorisation d'utiliser les sessions Devin. Voir [Accès et autorisations](/fr/work-with-devin/security-swarm#access-and-permissions).
  * Votre organisation doit avoir accès au repository que vous souhaitez analyser.
</Accordion>

<div id="start-a-scan-with-scan">
  ## Lancer une analyse avec `/scan`
</div>

1. Dans le composer, saisissez `/scan` suivi de ce que vous souhaitez trouver, puis mentionnez les repositories à analyser. Par exemple : `/scan find N+1 queries in @acme/api`. Les repositories que vous avez sélectionnés dans le composer sont également inclus.
2. Envoyez le message. Devin démarre une nouvelle session pour configurer l’analyse et l’ouvre. Si vous avez envoyé `/scan` seul, Devin propose des exemples d’analyses, comme la recherche de requêtes de base de données lentes ou de code inutilisé, et vous demande ce que vous cherchez.
3. Devin déduit le type d’analyse de votre demande et l’indique en une ligne : par exemple, qu’il va configurer une analyse personnalisée qui recherche uniquement les noms de variables en camelCase. Répondez-lui si vous souhaitez autre chose.
4. Devin affiche une card **analyse de code setup**. Confirmez les **Repositories** à analyser et, si vous le souhaitez, ajoutez des indications sous **What should the scan focus on?**. Si vous n’avez mentionné aucun repository, Devin présélectionne celui dans lequel vous avez le plus travaillé, d’après vos pull request récentes.
5. Cliquez sur **Start scan**. Devin ne crée l’analyse qu’après la soumission de la card, puis partage un lien vers la session correspondante. Pour annuler la configuration, cliquez plutôt sur **Dismiss**.

Vous n’avez pas à choisir un type d’analyse ni à configurer l’analyse vous-même. Les demandes qui couvrent tout un domaine, comme une analyse de performance d’un repository, utilisent le [type d’analyse](#scan-types) correspondant. Les objectifs plus restreints ou différents, comme la recherche de fuites mémoire, donnent lieu à une analyse **Custom** ciblée sur ce que vous avez décrit.

<video autoPlay muted loop playsInline className="w-full aspect-video" src="https://mintcdn.com/cognitionai/C44xaWXfrf74E4c0/images/work-with-devin/code-scans/code-scans-walkthrough.mp4?fit=max&auto=format&n=C44xaWXfrf74E4c0&q=85&s=8c69208be93267cd470d3591447f3c5f" data-path="images/work-with-devin/code-scans/code-scans-walkthrough.mp4" />

Lorsqu’une analyse non liée à la sécurité se termine, Devin vous envoie un message direct Slack résumant les constats, sauf si vous avez demandé un autre type de notification ou aucune notification. Les messages Slack nécessitent que l’intégration Slack de votre organisation autorise les sessions à envoyer des messages directs.

<Note>Les analyses non liées à la sécurité s’exécutent sans supervision avec un effort normal. Le choix du niveau d’effort et le mode interactif, où Devin se met en pause pour vous permettre d’examiner un threat model avant l’investigation, ne sont disponibles que pour les [analyses de sécurité](/fr/work-with-devin/security-swarm#interactive-mode).</Note>

<div id="scan-types">
  ## Types d'analyses
</div>

| Type d'analyse                  | Ce qu'elle recherche                                                                                                                                                                        |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Performance**                 | Les problèmes de performance et les possibilités de rendre votre code plus rapide et plus efficace.                                                                                         |
| **Requêtes de base de données** | Les problèmes là où votre code interroge ses magasins de données : requêtes inefficaces, incorrectes, non sécurisées ou peu fiables.                                                        |
| **Couverture de tests**         | Les flux et composants qui ne sont pas couverts par des tests.                                                                                                                              |
| **Code mort**                   | Le code que plus rien n'atteint : fonctions, modules, flags et dépendances inutilisés qu'il est sans risque de supprimer.                                                                   |
| **Qualité du code**             | Les problèmes de maintenabilité qui rendent le code plus difficile à lire, à modifier et à maintenir correct.                                                                               |
| **Nettoyage**                   | Le code désordonné, redondant ou inutilement complexe qui peut être nettoyé sans changer le comportement.                                                                                   |
| **Telemetry**                   | Les endroits qui nécessitent une instrumentation de télémétrie ou de suivi.                                                                                                                 |
| **Accessibilité**               | Le code frontend qui ne respecte pas les règles d'accessibilité (WCAG), par exemple des libellés manquants, un accès clavier défaillant ou un contraste insuffisant.                        |
| **Conformité**                  | Les écarts par rapport aux réglementations, normes et politiques que l'analyse est configurée pour vérifier, comme le traitement des données sensibles, les pistes d'audit et la rétention. |
| **Documentation de migration**  | Retrace les flux de bout en bout et la logique métier de votre code et produit une documentation prête pour la migration, avec des diagrammes.                                              |
| **Personnalisé**                | Tout autre besoin que vous décrivez, par exemple les endroits qui journalisent des données personnelles ou une convention de nommage que votre équipe souhaite faire respecter.             |

Pour les vulnérabilités et les surfaces d'attaque, utilisez une analyse [Security Swarm](/fr/work-with-devin/security-swarm).

<div id="review-and-fix-findings">
  ## Examiner et corriger les constats
</div>

Ouvrez l'onglet **Constats** dans la session qui a lancé l'analyse, ou dans la session principale de l'analyse, pour traiter les constats. Les constats ouverts sont regroupés par étape :

* **Unassigned** — aucune session de remédiation n'a démarré.
* **Assigned** — une session de remédiation a démarré, mais aucune pull request n'est ouverte.
* **PR open** — une pull request est ouverte pour le constat.

Pour chaque constat, vous pouvez :

* **Assign to Devin** — démarrer une session Devin qui corrige le constat et ouvre une pull request. Utilisez **Open session** pour suivre l'avancement et **Open PR** pour examiner le résultat.
* **Dismiss** — écarter un constat qui ne nécessite aucune action.

Pendant l'exécution d'une analyse, l'onglet Constats de la session principale de l'analyse propose également **Pause scan**, **Resume scan** et **Kill scan**. Ces commandes nécessitent la permission **Manage code scans**.

<div id="scale-scanning">
  ## Scan à grande échelle
</div>

<div id="scan-new-commits">
  ### Scan new commits
</div>

Une fois qu'une analyse, quel que soit son type, est terminée, cliquez sur **Scan new commits** dans l'onglet Constats pour lancer une exécution incrémentale qui n'analyse que les commits ajoutés depuis la dernière exécution terminée. Cette exécution reprend la configuration existante de l'analyse et en ajoute les constats à cette même analyse. Le bouton n'apparaît pas tant que l'analyse est en cours, ni après son archivage, et il requiert la permission **Manage code scans**. Si aucun nouveau commit n'a été ajouté, aucune exécution ne démarre.

Vous pouvez également demander à Devin, dans une session, d'analyser les nouveaux commits d'une analyse existante.

<div id="automations">
  ### Automatisations
</div>

Les [automatisations](/fr/product-guides/automations) peuvent exécuter des analyses de tout type selon une planification ou en réponse à un événement. Choisissez le type d'agent **analyse de code**, puis, sous **Scan** :

* Choisissez **Create a new scan** pour lancer une nouvelle analyse à chaque déclenchement de l'automatisation. Sélectionnez les repositories, le type d'analyse et le profil. Les types d'analyse autres que la sécurité nécessitent un [profil d'analyse](/fr/work-with-devin/security-swarm#scan-profiles) du même type.
* Choisissez une analyse existante pour analyser ses nouveaux commits à chaque déclenchement de l'automatisation. Cette analyse doit déjà avoir une exécution terminée.

Les analyses lancées par des automatisations s'exécutent sans surveillance. Consultez [Lancer des analyses depuis les automatisations](/fr/work-with-devin/security-swarm#start-scans-from-automations).

<div id="api">
  ### API
</div>

L'[API Code Scans](/fr/api-reference/v3/code-scans/triggering-code-scans) permet de lancer des analyses, de les interroger périodiquement et d'en consulter les constats sans passer par l'application web. Lorsque vous lancez une analyse non liée à la sécurité via l'API, vous devez fournir un `profile_id` correspondant à un profil de ce type d'analyse ; `scan_type` prend par défaut le type du profil. Les analyses lancées via l'API ne sont pas interactives.

<div id="related-pages">
  ## Pages associées
</div>

* [Security Swarm](/fr/work-with-devin/security-swarm) — analyses de sécurité, profils d’analyse, mode interactif et autorisations relatives aux analyses de code.
* [Activer des analyses de code via l’API Devin](/fr/api-reference/v3/code-scans/triggering-code-scans) — le flux API de bout en bout.
* [Automatisations](/fr/product-guides/automations) — planifier et déclencher des analyses.
