Selon votre configuration, code scanning les résultats peuvent apparaître sous forme de vérifications et d’annotations sur les pull requests. Pour plus d’informations, consultez « À propos des alertes d’analyse du code ».
Affichage des résultats de la code scanning vérification
Pour toutes les configurations de code scanning, la vérification qui contient les résultats de code scanning est : Code scanning résultats. Les résultats de chaque outil d’analyse utilisé sont affichés séparément. Toutes les nouvelles alertes concernant des modifications apportées aux lignes de code dans la demande de tirage sont affichées sous forme d’annotations.
Pour voir l’ensemble complet des alertes de la branche analysée, cliquez sur Voir toutes les alertes de branche. Cette action ouvre la vue complète des alertes, dans laquelle vous pouvez filtrer toutes les alertes sur la branche par type, gravité, étiquette, etc. Pour plus d’informations, consultez Évaluation des alertes d’analyse du code pour votre référentiel.

Gestion des niveaux de gravité pour les échecs de vérification
Si la code scanning vérification des résultats détecte des problèmes avec une gravité de error, criticalou high, la vérification échoue et l’erreur est signalée dans les résultats de la vérification. Si tous les résultats trouvés par code scanning ont des gravités inférieures, les alertes sont traitées comme des avertissements ou des remarques et la vérification réussit.

Vous pouvez remplacer le comportement par défaut dans les paramètres de votre référentiel, en spécifiant le niveau des gravités et les gravités de sécurité qui provoqueront l’échec de la vérification d’une demande de tirage. Pour plus d’informations, consultez « Options de configuration de flux de travail pour l’analyse du code ».
Diagnostic des problèmes liés à votre code scanning configuration
En fonction de votre configuration, vous pouvez voir des vérifications supplémentaires qui s'exécutent sur des pull requests configurées code scanning. Il s’agit généralement de flux de travail qui analysent le code ou qui chargent code scanning les résultats. Ces vérifications sont utiles pour résoudre les problèmes liés à l’analyse.
Par exemple, si le référentiel utilise la vérification Workflow d’analyse CodeQL a CodeQL/Analyze (LANGUAGE), elle est exécutée pour chaque langue avant que l'exécution de la vérification des résultats ne commence. La vérification de l'analyse peut échouer s'il existe des problèmes de configuration ou si la pull request casse la compilation d'un langage que l'analyse compile (par exemple, C/C++, C#, Go, Java, Kotlin, Rust, et Swift).
Comme avec les autres vérifications de demande de tirage, vous pouvez voir les détails complets de l’échec de la vérification dans l’onglet Vérifications. Pour plus d’informations sur la configuration et la résolution des problèmes, consultez Options de configuration de flux de travail pour l’analyse du code ou Résolution des erreurs d’analyse du code.
Affichage d’une alerte sur votre demande de tirage
Vous pouvez voir toutes code scanning les alertes qui se trouvent dans les différences des modifications introduites dans un pull request en consultant l’onglet Conversation. Code scanning publie une révision du pull request qui affiche chaque alerte sous forme d’annotation sur les lignes de code qui ont déclenché l’alerte. Vous pouvez commenter les alertes, les rejeter et visualiser les chemins pour les alertes, directement à partir des annotations. Vous pouvez consulter tous les détails d’une alerte en cliquant sur le lien « Afficher plus de détails », qui vous mènera à la page des détails de l’alerte.

Vous pouvez également afficher toutes les code scanning alertes qui se trouvent à l'intérieur des différences parmi les modifications introduites dans la pull request sous l’onglet Fichiers modifiés.
Si vous ajoutez une nouvelle configuration d’analyse du code dans votre demande de tirage, vous verrez un commentaire sur votre demande de tirage qui vous dirige vers l’onglet Security and quality du référentiel afin de pouvoir afficher toutes les alertes sur la branche de demande de tirage. Pour plus d’informations sur l’affichage des alertes pour un dépôt, consultez Évaluation des alertes d’analyse du code pour votre référentiel.
Si vous disposez d’une autorisation d’écriture pour le dépôt, certaines annotations contiennent des liens avec un contexte supplémentaire pour l’alerte. Dans l’exemple ci-dessus, à partir de CodeQL l’analyse, vous pouvez cliquer sur la valeur fournie par l’utilisateur pour voir où les données non approuvées entrent dans le flux de données (ce qui est appelé source). Dans ce cas, vous pouvez également afficher le chemin complet depuis la source vers le code qui utilise les données (le récepteur) en cliquant sur Afficher les chemins. Cela permet de vérifier facilement si les données ne sont pas approuvées ou si l’analyse n’a pas pu reconnaître une étape d’assainissement des données entre la source et le récepteur. Pour plus d’informations sur l’analyse du flux de données à l’aide CodeQLde , consultez À propos de l’analyse du flux de données.
Pour plus d’informations sur une alerte, les utilisateurs disposant d’une autorisation d’écriture peuvent cliquer sur le lien Afficher plus de détails affiché dans l’annotation. Cela vous permet de voir tout le contexte et les métadonnées fournis par l’outil dans un affichage d’alerte. Dans l’exemple ci-dessous, vous pouvez voir les étiquettes montrant la gravité, le type et les énumérations des faiblesses courantes pertinentes pour le problème. L’affichage montre également quel commit a introduit le problème.
L’état et les détails présentés sur la page de l’alerte reflètent uniquement l’état de l’alerte sur la branche par défaut du référentiel, même si l’alerte existe sur d’autres branches. Vous pouvez consulter l’état de l’alerte sur les branches autres que la branche par défaut dans la section Branches affectées sur le côté droit de la page de l’alerte. Si une alerte n’existe pas sur la branche par défaut, l’état de l’alerte est « dans la demande de tirage » ou « dans la branche », et il est grisé. La section Développement affiche les branches liées et les demandes de tirage qui permettront de corriger l’alerte.
Dans l’affichage détaillé d’une alerte, certains code scanning outils, tels CodeQL que l’analyse, incluent également une description du problème et un lien Afficher plus pour obtenir des conseils sur la façon de corriger votre code.

Commenter une alerte dans une demande de tirage
Vous pouvez commenter n’importe quelle code scanning alerte qui s’affiche dans une pull request. Les alertes apparaissent sous forme d’annotations dans l’onglet Conversation d’une demande de tirage, dans le cadre d’une révision de la demande de tirage, et sont également affichées dans l’onglet Fichiers modifiés.
Vous pouvez choisir d'exiger que toutes les conversations dans une pull request, y compris celles sur code scanning alertes, soient résolues avant que la pull request puisse être fusionnée. Pour plus d’informations, consultez « À propos des branches protégées ».
Résolution d’une alerte sur votre demande de tirage
Toute personne disposant d’un accès push à une pull request peut corriger une code scanning alerte identifiée sur cette pull request. Si vous commitez des modifications apportées à la demande de tirage, une nouvelle exécution des vérifications de la demande de tirage est déclenchée. Si vos modifications résolvent le problème, l’alerte est fermée et l’annotation supprimée.
Utilisation des propositions Copilot Autofix pour les alertes sur un pull request
GitHub Copilot Autofix est une extension de code scanning qui vous fournit des recommandations ciblées pour vous aider à corriger les alertes code scanning (y compris les alertes CodeQL) dans les demandes de tirage. Les correctifs potentiels sont générés automatiquement par de grands modèles linguistiques (LLMs) à l’aide de données provenant de la base de code, de la pull request et de l’analyse code scanning.
Remarque
Vous n’avez pas besoin d’un abonnement à GitHub Copilot pour utiliser GitHub Copilot Autofix. Copilot Autofix est disponible pour tous les référentiels publics sur GitHub.com, ainsi que pour les référentiels internes ou privés appartenant à des organisations et entreprises disposant d’une licence pour GitHub Code Security.

Génération Copilot Autofix de suggestions et publication dans une pull request
Lorsqu’elles Copilot Autofix sont activées pour un référentiel, les alertes sont affichées dans les demandes de tirage comme normales et les informations de toutes les alertes trouvées par code scanning sont automatiquement envoyées au LLM pour traitement. Une fois l’analyse par le LLM terminée, tous les résultats sont publiés en tant que commentaires sur les alertes concernées. Pour plus d’informations, consultez « Utilisation responsable de Copilot Autofix pour l’analyse du code ».
Remarque
* Copilot Autofix prend en charge un sous-ensemble de CodeQL requêtes. Pour plus d’informations sur la disponibilité de Copilot Autofix, consultez les tables de requête associées à Requêtes pour l’analyse CodeQL.
- Une fois l’analyse terminée, tous les résultats pertinents sont publiés en une seule fois sur la demande de tirage. Si au moins une alerte dans votre pull request a une Copilot Autofix suggestion, vous devez supposer que le LLM a terminé d’identifier les correctifs potentiels pour votre code.
- Sur les alertes générées à partir de requêtes qui ne sont pas prises en charge par Copilot Autofix, vous verrez une note indiquant que la requête n’est pas prise en charge. Si une suggestion pour une requête prise en charge ne se génère pas, vous verrez une note sur l’alerte vous invitant à essayer de pousser un autre commit ou à contacter le support.
-
Copilot Autofix pour les alertes de code scanning ne pourra pas générer un correctif pour chaque alerte dans toutes les situations. La fonctionnalité fonctionne sur la base du meilleur effort possible et son succès n’est pas garanti à 100 %. Pour plus d’informations sur les limites des corrections générées automatiquement, voir [Limites des suggestions](/code-security/code-scanning/managing-code-scanning-alerts/about-autofix-for-codeql-code-scanning#limitations-of-suggestions).
En règle générale, lorsque vous suggérez des modifications pour une demande de tirage, votre commentaire contient des modifications pour un seul fichier modifié dans la demande de tirage. La capture d’écran suivante montre un Copilot Autofix commentaire qui suggère des modifications apportées au index.js fichier dans lequel l’alerte s’affiche. Étant donné que le correctif potentiel nécessite une nouvelle dépendance sur escape-html, le commentaire suggère également d’ajouter cette dépendance au fichier package.json, même si la demande de tirage d’origine n’apporte aucune modification à ce fichier.

Évaluation et validation d’une Copilot Autofix suggestion
Chaque Copilot Autofix suggestion illustre une solution potentielle pour une code scanning alerte dans votre codebase. Vous devez évaluer les modifications suggérées afin de déterminer si elles constituent une solution appropriée pour votre base de code et vous assurer qu’elles conservent le comportement prévu. Pour plus d’informations sur les limitations des Copilot Autofix suggestions, consultez Limitations des suggestions et atténuation des limitations des suggestions dans « Utilisation responsable de Copilot Autofixcode scanning».
- Cliquez sur Modifier pour afficher les options de modification et sélectionner la méthode que vous préférez.
- Sous Modifier avec GitHub CLI, suivez les instructions pour vérifier la pull request localement et appliquer le correctif suggéré.
- Sélectionnez Modifier FILENAME pour modifier le fichier directement sur GitHub avec le correctif suggéré appliqué.
- Si vous préférez appliquer le correctif sur un référentiel local ou une branche, sélectionnez le menu déroulant de la suggestion.
- Sélectionnez Afficher le correctif autofix pour afficher les instructions permettant d’appliquer le correctif suggéré à n’importe quel dépôt ou branche local(e).
- Sélectionnez Copier la ligne modifiée LINE_NUMBER pour copier une ligne spécifique de la suggestion.
- Testez et modifiez le correctif suggéré si nécessaire.
- Une fois que vous avez terminé de tester vos modifications, commitez-les et envoyez-les (push) vers votre branche.
- L’envoi (push) des modifications vers votre branche déclenchera tous les tests habituels pour votre demande de tirage. Vérifiez que vos tests unitaires réussissent toujours et que l’alerte code scanning est maintenant corrigée.
Rejeter une Copilot Autofix suggestion
Si vous décidez de rejeter une Copilot Autofix suggestion, cliquez sur Ignorer la suggestion dans le commentaire pour ignorer le correctif suggéré.
Ignorer une alerte sur votre demande de tirage
Une autre façon de fermer une alerte consiste à l’ignorer. Vous pouvez ignorer une alerte si vous ne pensez pas qu’elle doit être résolue. Par exemple, dans le cas d’une erreur présente dans du code utilisé uniquement à des fins de test, ou quand l’effort de correction de l’erreur est supérieur à l’avantage potentiel que représente l’amélioration du code. Si vous disposez d’une autorisation d’écriture pour le référentiel, un bouton Ignorer l’alerte est disponible dans les annotations de code et dans le résumé des alertes. Quand vous cliquez sur Ignorer l’alerte, vous êtes invité à choisir une raison de fermer l’alerte.

Il est important de choisir le motif approprié dans le menu déroulant, car cela peut avoir une incidence sur l’inclusion ou non d’une requête dans une analyse future. Si vous le souhaitez, vous pouvez commenter un rejet pour enregistrer le contexte du rejet d’une alerte. Le commentaire sur le licenciement est ajouté à la chronologie des alertes et peut être utilisé comme justification lors de l’audit et de la création de rapports. Vous pouvez récupérer ou définir un commentaire à l’aide de l’API REST d’analyse du code. Le commentaire est contenu dans dismissed_comment pour le point de terminaison alerts/{alert_number}. Pour plus d’informations, consultez « Points de terminaison d’API REST pour l’analyse de codes ».
Si vous ignorez une alerte CodeQL que vous considérez comme un résultat faux positif, par exemple parce que le code utilise une bibliothèque d’assainissement qui n’est pas prise en charge, envisagez de contribuer au dépôt CodeQL et d’améliorer l’analyse. Pour plus d’informations sur CodeQL, consultez Contribution à CodeQL.
Pour plus d’informations sur le rejet des alertes, consultez Résoudre les alertes d'analyse de code.