Skip to main content

Gestion des alertes d’analyse du code pour votre référentiel

À partir de la vue de sécurité, vous pouvez afficher, corriger ou ignorer les alertes de vulnérabilités ou d'erreurs potentielles dans le code de votre projet.

Qui peut utiliser cette fonctionnalité ?

If you have write permission to a repository you can manage code scanning alerts for that repository.

Code scanning est disponible pour les dépôts appartenant à l’organisation dans GitHub Enterprise Server. Cette fonctionnalité nécessite une licence pour GitHub Advanced Security. Pour plus d’informations, consultez « À propos de GitHub Advanced Security ».

Affichage des alertes pour un dépôt

Toute personne disposant d’une autorisation de lecture pour un dépôt peut voir les annotations d’code scanning sur les demandes de tirage (pull request). Pour plus d’informations, consultez « Triage des alertes d’analyse du code dans les demandes de tirage (pull request) ».

Vous avez besoin d’une autorisation d’écriture pour voir un récapitulatif de toutes les alertes d’un dépôt sous l’onglet Sécurité.

Par défaut, la page d'alertes code scanning est filtrée pour afficher les alertes pour la branche par défaut du référentiel uniquement.

  1. Dans votre instance GitHub Enterprise Server, accédez à la page principale du dépôt.

  2. Sous le nom du dépôt, cliquez sur Sécurité. Si vous ne voyez pas l’onglet « Sécurité », sélectionnez le menu déroulant et cliquez sur Sécurité. Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Sécurité » est mis en évidence avec un encadré orange foncé.

  3. Dans la barre latérale gauche, cliquez sur Code scanning.

  4. Si vous le souhaitez, utilisez la zone de recherche en texte libre ou les menus déroulants pour filtrer les alertes. Par exemple, vous pouvez filtrer en fonction de l’outil utilisé pour identifier les alertes.

    Capture d'écran de la page d'alerte code scanning. La zone de recherche et les menus déroulants des filtres sont soulignés en orange foncé.

  5. Sous « Code scanning », cliquez sur l’alerte à explorer pour afficher la page de l’alerte détaillée. 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é.

  6. Si l’alerte met en évidence un problème avec le flux de données, vous pouvez cliquer sur Afficher les chemins pour afficher le chemin depuis la source de données vers le récepteur où il est utilisé.

    Capture d’écran d’une alerte d’code scanning. Le lien « Afficher les chemins » est mis en évidence avec un encadré orange foncé. Le lien « Afficher plus », décrit à l’étape suivante, est également mis en évidence.

  7. Les alertes de l’analyse CodeQL incluent une description du problème. Cliquez sur Afficher plus pour obtenir des conseils sur la façon de corriger votre code.

Pour plus d’informations, consultez « À propos des alertes d’analyse du code ».

Remarque : Vous pouvez voir des informations sur la date de la dernière exécution de l’code scanning dans la page d’état de l’outil. Pour plus d’informations, consultez « À propos de la page d’état de l’outil pour l’analyse du code ».

Filtrage des alertes d’code scanning

Vous pouvez filtrer les alertes affichées dans la vue des alertes d’code scanning. Cela est utile s’il existe de nombreuses alertes, car vous pouvez vous concentrer sur un type particulier d’alerte. Vous disposez de filtres prédéfinis et d’un éventail de mots clés pour affiner la liste des alertes affichées.

Lorsque vous sélectionnez un mot clé dans une liste déroulante ou lorsque vous entrez une mot clé dans le champ de recherche, seules les valeurs avec des résultats s’affichent. Vous évitez ainsi plus facilement de définir des filtres qui ne trouvent aucun résultat.

Capture d’écran du champ de recherche dans la vue des alertes d’code scanning. L’utilisateur a tapé « branch:dependabot » dans le champ. Les noms de toutes les branches valides portant un nom incluant « dependabot » sont affichés dans un menu déroulant.

Si vous entrez plusieurs filtres, l’affichage montre les alertes correspondant à tous ces filtres. Par exemple, is:closed severity:high branch:main affiche uniquement les alertes de gravité élevée fermées qui sont présentes sur la branche main. L’exception concerne les filtres relatifs aux références (ref, branch et pr) : is:open branch:main branch:next vous montre les alertes ouvertes à la fois sur la branche main et sur la branche next.

Veuillez noter que si vous avez filtré les alertes sur une branche autre que celle par défaut, mais que les mêmes alertes existent sur la branche par défaut, la page d’une alerte donnée reflétera uniquement l’état de l’alerte sur la branche par défaut, même si cet état est en conflit avec celui d’une branche autre que celle par défaut. Par exemple, une alerte qui apparaît dans la liste « Ouvertes » dans le résumé des alertes de la branch-x peut présenter l’état « Résolue » sur la page de l’alerte, si l’alerte est déjà résolue sur la branche par défaut. Vous pouvez consulter l’état de l’alerte pour la branche filtrée dans la section Branches affectées sur le côté droit de la page de l’alerte.

Vous pouvez préfixer le filtre tag avec - pour exclure les résultats ayant cette étiquette. Par exemple, -tag:style affiche uniquement les alertes qui n’ont pas la balise style.

Restriction des résultats au code d’application uniquement

Vous pouvez utiliser le filtre « Uniquement les alertes dans le code d’application » ou la paire mot clé/valeur autofilter:true pour restreindre les résultats aux alertes dans le code d’application. Pour plus d’informations sur les types de code qui sont automatiquement étiquetés comme n’étant pas du code d’application, consultez « À propos des alertes d’analyse du code ».

Exploration des alertes d’code scanning

Vous pouvez explorer la liste des alertes. Cela est utile s’il existe un grand nombre d’alertes dans votre dépôt ou si vous ne connaissez pas le nom exact d’une alerte, par exemple. GitHub Enterprise Server effectue la recherche en texte libre dans les éléments suivants :

  • Nom de l'alerte
  • Détails de l’alerte (comprenant aussi les informations masquées par défaut dans la section réductible Afficher plus)
Recherche prise en chargeExemple de syntaxeRésultats
Recherche avec un seul motinjectionRetourne toutes les alertes contenant le mot injection
Recherche avec plusieurs motssql injectionRetourne toutes les alertes contenant sql ou injection
Recherche de correspondance exacte
(utilisez des guillemets doubles)
"sql injection"Retourne toutes les alertes contenant l’expression exacte sql injection
Recherche OUsql OR injectionRetourne toutes les alertes contenant sql ou injection
Recherche ETsql AND injectionRetourne toutes les alertes contenant à la fois les mots sql et injection

Conseils :

  • La recherche avec sur plusieurs mots équivaut à une recherche OU.
  • La recherche ET retourne des résultats dans lesquels les termes de recherche se trouvent n’importe où, dans n’importe quel ordre dans le nom ou les détails de l’alerte.
  1. Dans votre instance GitHub Enterprise Server, accédez à la page principale du dépôt.
  2. Sous le nom du dépôt, cliquez sur Sécurité. Si vous ne voyez pas l’onglet « Sécurité », sélectionnez le menu déroulant et cliquez sur Sécurité. Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Sécurité » est mis en évidence avec un encadré orange foncé.
  3. Dans la barre latérale gauche, cliquez sur Code scanning.
  4. À droite des menus déroulants Filtres, tapez les mots clés à rechercher dans la zone de recherche en texte libre. Capture d’écran du champ de recherche dans la vue des alertes d’code scanning. Le champ inclut les filtres prédéfinis « is: open branch:main ». Le texte libre « sql ou injection » est encadré en orange foncé.
  5. Appuyez sur Entrée. La liste des alertes contient les alertes d’code scanning ouvertes correspondant à vos critères de recherche.

Correction d’une alerte

Toute personne disposant d’une autorisation d’écriture pour un dépôt peut corriger une alerte en commitant une correction dans le code. Si le dépôt a une code scanning planifiée pour s’exécuter sur les demandes de tirage (pull request), il est préférable de déclencher une demande de tirage avec votre correction. Cela déclenche une code scanning des modifications et vérifie que votre correctif n’introduit aucun nouveau problème. Pour plus d’informations, consultez « Personnalisation de votre configuration avancée pour l’analyse du code » et « Triage des alertes d’analyse du code dans les demandes de tirage (pull request) ».

Si vous disposez d’une autorisation d’écriture pour un dépôt, vous pouvez voir les alertes corrigées en affichant le récapitulatif des alertes et en cliquant sur Fermées. Pour plus d’informations, consultez « Affichage des alertes pour un dépôt ». La liste « Fermées » affiche les alertes corrigées et les alertes que les utilisateurs ont ignorées.

Vous pouvez utiliser la recherche en texte libre ou les filtres pour afficher un sous-ensemble d’alertes, puis marquer toutes les alertes correspondantes comme fermées.

Les alertes peuvent être corrigées dans une branche, mais pas dans une autre. Vous pouvez utiliser le filtre « Branche », dans le récapitulatif des alertes, pour vérifier si une alerte est corrigée dans une branche particulière.

Capture d’écran du champ de recherche dans l’code scanning, avec le menu déroulant « Branche » développé. Le bouton « Branche » est encadré en orange foncé.

Veuillez noter que si vous avez filtré les alertes sur une branche autre que celle par défaut, mais que les mêmes alertes existent sur la branche par défaut, la page d’une alerte donnée reflétera uniquement l’état de l’alerte sur la branche par défaut, même si cet état est en conflit avec celui d’une branche autre que celle par défaut. Par exemple, une alerte qui apparaît dans la liste « Ouvertes » dans le résumé des alertes de la branch-x peut présenter l’état « Résolue » sur la page de l’alerte, si l’alerte est déjà résolue sur la branche par défaut. Vous pouvez consulter l’état de l’alerte pour la branche filtrée dans la section Branches affectées sur le côté droit de la page de l’alerte.

Remarque : Si vous exécutez l’code scanning avec plusieurs configurations, la même alerte est parfois générée par plus d’une configuration. Sauf si vous exécutez régulièrement toutes les configurations, vous pouvez voir des alertes qui sont corrigées dans une configuration, mais pas dans une autre. Ces configurations et alertes obsolètes peuvent être supprimées d’une branche. Pour plus d’informations, consultez « Suppression des configurations et des alertes obsolètes d’une branche ».

Suppression des alertes

Il existe deux façons de fermer une alerte. Vous pouvez résoudre le problème dans le code ou ignorer l’alerte.

Le rejet d'une alerte est un moyen de fermer une alerte qui, selon vous, ne doit pas être corrigée. 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. Vous pouvez ignorer des alertes à partir des annotations d’code scanning dans le code ou de la liste récapitulative sous l’onglet Sécurité.

Quand vous ignorez une alerte :

  • Elle est ignorée dans toutes les branches.
  • L’alerte est supprimée du nombre d’alertes actuel pour votre projet.
  • L’alerte est déplacée vers la liste « Fermées » dans le récapitulatif des alertes. Vous pouvez la rouvrir depuis cet endroit, si nécessaire.
  • La raison pour laquelle vous avez fermé l’alerte est enregistrée.
  • Si vous le souhaitez, vous pouvez commenter un rejet pour enregistrer le contexte du rejet d’une alerte.
  • La prochaine fois que l’code scanning s’exécute, le même code ne génère pas d’alerte.

Pour supprimer une alerte :

  1. Dans votre instance GitHub Enterprise Server, accédez à la page principale du dépôt.

  2. Sous le nom du dépôt, cliquez sur Sécurité. Si vous ne voyez pas l’onglet « Sécurité », sélectionnez le menu déroulant et cliquez sur Sécurité. Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Sécurité » est mis en évidence avec un encadré orange foncé.

  3. Dans la barre latérale gauche, cliquez sur Code scanning.

  4. Si vous souhaitez ignorer une alerte, il est important d’explorer l’alerte en premier, afin que vous puissiez choisir la bonne raison de l’ignorer. Cliquez sur l’alerte que vous voulez explorer.

  5. Passez en revue l’alerte, puis cliquez sur Ignorer l’alerte et choisissez, ou entrez, une raison de fermer l’alerte. Capture d’écran de l’échec de la vérification d’une alerte code scanning dans une demande de tirage. Le bouton « Ignorer l’alerte » dans l’échec de la vérification est mis en évidence en orange foncé. La liste déroulante « Ignorer l’alerte » s’affiche. 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 licenciement pour enregistrer le contexte d’un licenciement d’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 « Analyse du code ».

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

Ignorer plusieurs alertes à la fois

Si un projet a plusieurs alertes que vous souhaitez ignorer pour la même raison, vous pouvez les ignorer en bloc à partir du récapitulatif des alertes. En règle générale, vous souhaitez filtrer la liste, puis ignorer toutes les alertes correspondantes. Par exemple, vous souhaiterez peut-être ignorer toutes les alertes actuelles dans le projet qui ont été marquées pour une vulnérabilité CWE (Common Weakness Enumeration) particulière.

Rouvrir les alertes ignorées

Si vous ignorez une alerte, mais que vous devez y revenir ultérieurement, vous pouvez la rouvrir et résoudre le problème avec le code. Affichez la liste des alertes fermées, recherchez l’alerte, affichez-la et rouvrez-la. Vous pouvez ensuite corriger le problème de la même façon qu’avec n’importe quelle autre alerte.

Suppression des configurations et des alertes obsolètes d’une branche

Vous pouvez avoir plusieurs configurations d’analyse de code sur un seul dépôt. Lors de l’exécution, plusieurs configurations peuvent générer la même alerte. De plus, si les configurations sont exécutées selon des planifications différentes, les états d’alerte peuvent devenir obsolètes pour les configurations peu fréquentes ou obsolètes. Pour plus d’informations sur les alertes de plusieurs configurations, consultez « À propos des alertes d’analyse du code ».

  1. Dans votre instance GitHub Enterprise Server, accédez à la page principale du dépôt.

  2. Sous le nom du dépôt, cliquez sur Sécurité. Si vous ne voyez pas l’onglet « Sécurité », sélectionnez le menu déroulant et cliquez sur Sécurité. Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Sécurité » est mis en évidence avec un encadré orange foncé.

  3. Dans la barre latérale gauche, cliquez sur Code scanning.

  4. Sous « Code scanning », cliquez sur une alerte code scanning.

  5. Dans la section « Branches affectées » de la barre latérale, cliquez sur la branche souhaitée.

  6. Dans la boîte de dialogue « Analyse des configurations », passez en revue les détails des configurations qui ont signalé cette alerte sur la branche sélectionnée. Pour supprimer une configuration indésirable pour la branche souhaitée, cliquez sur .

    Si vous supprimez une configuration par erreur, cliquez sur Annuler pour éviter d’appliquer vos modifications.

    Capture d’écran de la boîte de dialogue modale « Analyse des configurations ». L’icône « Supprimer la configuration » est encadrée en orange foncé.

  7. Une fois que vous avez supprimé les configurations indésirables et confirmé que les configurations attendues s’affichent, cliquez sur Enregistrer les modifications.

    Si vous enregistrez vos modifications après la suppression accidentelle d’une configuration, réexécutez la configuration pour mettre à jour l’alerte. Pour plus d’informations sur la réexécution des configurations qui utilisent GitHub Actions, consultez « Ré-exécution de workflows et de travaux ».

Remarques :

  • Si vous supprimez toutes les configurations d’code scanning pour la branche par défaut de votre dépôt, la branche par défaut reste dans la barre latérale « Branches affectées », mais elle ne sera analysée par aucune configuration.
  • Si vous supprimez toutes les configurations d’code scanning pour une branche autre que la branche par défaut de votre dépôt, cette branche est supprimée de la barre latérale « Branches affectées ».

Audit des réponses aux alertes d’code scanning

Vous pouvez auditer les actions effectuées en réponse aux alertes code scanning à l’aide des outils GitHub. Pour plus d’informations, consultez « Audit des alertes de sécurité ».

Pour aller plus loin