Copilot Autofix pour l’analyse du code (version préliminaire)

Copilot Autofix est une fonctionnalité de GitHub Advanced Security pour Azure DevOps qui s’appuie sur l’IA pour générer des corrections suggérées pour les alertes d’analyse du code. Lorsque CodeQL identifie une vulnérabilité ou une erreur de codage, vous pouvez générer un correctif pour l’alerte directement à partir de l’onglet Sécurité avancée. Copilot correction automatique utilise l’agent de codage Copilot pour produire le correctif et ouvrir une demande de tirage avec la modification proposée, afin de pouvoir passer en revue, modifier et fusionner le flux de travail de votre demande de tirage normale.

Note

Cette fonctionnalité est en préversion publique limitée. Pour demander l’accès pour votre organisation, inscrivez-vous à la version préliminaire publique.

Les fonctionnalités peuvent changer ou être supprimées sans préavis. Les fonctionnalités en préversion n’ont pas de contrat de niveau de service (SLA) et une prise en charge limitée.

GitHub Advanced Security for Azure DevOps fonctionne avec Azure Repos. Pour utiliser GitHub Advanced Security avec des référentiels GitHub, consultez GitHub Advanced Security.

Prerequisites

Catégorie Spécifications
Permissions - Pour afficher un résumé de toutes les alertes d’un référentiel : Contributeur autorisations pour le référentiel.
- Pour ignorer les alertes dans Advanced Security : autorisations d'administrateur de projet.
- Pour gérer les autorisations dans Advanced Security : membre du groupe Administrateurs de la collection de projets ou la permission Advanced Security : gérer les paramètres doit être définie sur Autorisé.

Pour plus d’informations sur les autorisations Advanced Security, consultez Gérer les autorisations Advanced Security.

  • Analyse du code configurée pour votre référentiel, à l’aide de l’installation par défaut ou de la configuration avancée.
  • Au moins une alerte d’analyse du code CodeQL.

À propos de Copilot Autofix

Copilot Autofix combine la puissance d’analyse de CodeQL avec le grand modèle de langage qui alimente l’agent de code Copilot. Lorsque vous générez un correctif pour une alerte d’analyse de code prise en charge, Copilot Autofix analyse l’alerte et le code environnant, puis ouvre une pull request contenant :

  • Modification de code suggérée qui traite la vulnérabilité sous-jacente.
  • Description de l’alerte en cours de correction, y compris l’ID d’alerte, la gravité et un résumé de la modification.

Étant donné que le correctif suggéré considère le contexte plus large de votre base de code, la modification peut s’étendre sur plusieurs lignes où l’alerte a été déclenchée et peut inclure des modifications apportées à d’autres fichiers si nécessaire.

Important

Copilot suggestions de correction automatique sont générées par un modèle IA et ne sont pas garanties d'être correctes, complètes ou sécurisées. Examinez toujours attentivement la pull request, vérifiez qu’elle résout l’alerte sans introduire de nouveaux problèmes, et testez vos modifications avant de la fusionner.

Langues prises en charge

Copilot Autofix prend en charge les mêmes langages que ceux analysés par CodeQL pour l’analyse de code, notamment C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby et Swift. Pour obtenir la liste actuelle des langages pris en charge par CodeQL, consultez la prise en charge du langage et des requêtes.

Billing

La correction automatique Copilot est incluse dans votre licence GitHub Advanced Security pour Azure DevOps. La génération d'un correctif consomme des crédits IA à partir du compteur de facturation Azure de votre organisation.

Chaque génération de correctif consomme des jetons, qui incluent des jetons d’entrée pour le contexte de code envoyé au modèle, des jetons de sortie pour la modification suggérée et des jetons mis en cache qui réutilisent le contexte existant.

Pour simplifier la facturation, ces jetons sont convertis en unité standard appelée crédit IA GitHub, où 1 crédit est égal à 0,01 USD. Les frais sont facturés à l’abonnement Azure lié à votre organisation Azure DevOps et apparaissent sous la forme d’un compteur distinct dans Gestion des coûts Azure.

Le coût de chaque correctif varie selon la taille du contexte de code environnant et la complexité de la modification.

Pour surveiller vos frais quotidiens, accédez à Abonnement>Gestion des coûts>Analyse des coûts dans le portail Azure.

Activer la correction automatique de Copilot

Activez la correction automatique de Copilot pour chaque dépôt dans les paramètres de sécurité du code.

  1. Connectez-vous à votre organisation Azure DevOps (https://dev.azure.com/{yourorganization}).
  2. Sélectionnez Project paramètres>Repositories, puis sélectionnez le référentiel que vous souhaitez configurer.
  3. Dans la section Advanced Security , ouvrez le panneau Fonctionnalités de sécurité du code .
  4. Cochez la case Autofix pour les alertes d’analyse de code pour créer des correctifs automatiques pour les alertes d’analyse de code, générées par l’agent de codage Copilot.
  5. Sélectionnez Appliquer pour enregistrer vos modifications.

Capture d’écran du panneau Fonctionnalités de sécurité du code avec la case à cocher Correction automatique des alertes d’analyse du code mise en surbrillance.

CodeQL doit déjà être en cours d’exécution et générer des alertes pour le référentiel. Pour plus d’informations, consultez Configurer l’analyse du code et Configure GitHub fonctionnalités Advanced Security.

Générer un correctif pour une alerte

Après avoir activé Copilot correction automatique, vous pouvez générer un correctif à partir de n’importe quelle alerte d’analyse de code prise en charge.

  1. Sélectionnez Repos>Advanced Security.
  2. Sélectionnez l’onglet Analyse du code , puis sélectionnez une alerte pour ouvrir son affichage détaillé.
  3. Passez en revue l’emplacement, la description et la recommandation de l’alerte pour comprendre la recherche.
  4. Sélectionnez Générer un correctif.

Capture d’écran d’un affichage détaillé de l’alerte d’analyse du code avec le bouton Générer le correctif en haut à droite.

Copilot Autofix génère le correctif et ouvre une pull request depuis une branche nommée copilot-autofix/.... Une fois le correctif généré, la demande de tirage s’affiche sous Demandes de tirage associées dans l’affichage des détails de l’alerte.

Examiner et fusionner le correctif

La demande de tirage ouverte par Copilot Autofix se comporte comme toute autre demande de tirage Azure Repos. Sa description résume l’alerte corrigée par le correctif.

Capture d’écran d’une pull request créée par Copilot Autofix, montrant l’ID de l’alerte, le niveau de gravité et les détails du correctif dans la description.

  1. Ouvrez la demande de tirage depuis la section Demandes de tirage associées de l’alerte, ou via Repos>Demandes de tirage.
  2. Passez en revue la modification proposée sous l’onglet Fichiers dans tous les fichiers affectés.
  3. Modifiez la modification si vous devez correspondre à votre style de code, conventions d’affectation de noms ou exigences de projet.
  4. Approuvez et finalisez la pull request selon votre processus habituel de révision.

Une fois la demande de fusion intégrée et l’analyse de code suivante terminée, l’alerte se ferme automatiquement si le correctif corrige la vulnérabilité sous-jacente.

Tip

Un correctif généré est un point de départ, pas une réponse finale. Traitez la pull request comme toute autre modification : examinez-la, testez-la et demandez des relecteurs supplémentaires si nécessaire avant de la fusionner.

Quand un correctif n’est pas disponible

Copilot Autofix ne peut pas générer de correctif pour chaque alerte. Un correctif peut ne pas être disponible lorsque :

  • Le type d’alerte n’est actuellement pas pris en charge par Copilot Autofix.
  • Copilot détermine que l’alerte est un faux positif.
  • Une requête personnalisée ou un outil tiers, plutôt que CodeQL, génère l’alerte.

Lorsqu’un correctif n’est pas disponible, utilisez les sections Recommandation et Exemple de l’alerte pour la corriger ou ignorer l’alerte manuellement. Pour plus d’informations, consultez les détails de l'alerte .