Skip to main content
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. Cette page porte sur les autres types d’analyse.
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.
  • Votre organisation doit avoir accès au repository que vous souhaitez analyser.

Lancer une analyse avec /scan

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

Types d’analyses

Pour les vulnérabilités et les surfaces d’attaque, utilisez une analyse Security Swarm.

Examiner et corriger les constats

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.

Scan à grande échelle

Scan new commits

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.

Automatisations

Les automatisations 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 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.

API

L’API 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.