Options pour la configuration de l’code scanning
Vous décidez comment générer les alertes d’code scanning et quels outils utiliser, au niveau d’un dépôt. GitHub AE fournit une prise en charge entièrement intégrée de l’analyse CodeQL et prend également en charge l’analyse avec des outils tiers. Pour plus d’informations, consultez les puces suivantes et « À propos de l’analyse du code ».
-
CodeQL : utilise GitHub Actions (voir ci-dessous) ou exécute l’analyse CodeQL dans un système d’intégration continue (CI) tiers (voir « À propos de l’analyse du code CodeQL dans votre système d’intégration continue »).
-
Third‑party : utilise GitHub Actions ou des outils tiers et charge les résultats dans GitHub AE (voir « Chargement d’un fichier SARIF sur GitHub »).
Si vous exécutez l’analyse du code en utilisant plusieurs configurations, il arrive qu’une alerte ait plusieurs origines d’analyse. Si une alerte a plusieurs origines d’analyse, vous pouvez afficher l’état de l’alerte pour chaque origine d’analyse sur la page de l’alerte. Pour plus d’informations, consultez « À propos des alertes d’analyse du code ».
Remarque : Cet article décrit les fonctionnalités disponibles avec la version de l’action CodeQL et le bundle CodeQL CLI associé inclus dans la mise en production initiale de cette version de GitHub AE. Si votre entreprise utilise une version plus récente de l’action CodeQL, consultez la version GitHub Enterprise Cloud de cet article pour obtenir plus d’informations sur les dernières fonctionnalités.
Prérequis
Avant de configurer l’code scanning pour un référentiel, vous devez vous assurer qu’au moins un exécuteur GitHub Actions auto-hébergé est disponible pour le référentiel.
Les propriétaires d’entreprise et les administrateurs d’organisation et de dépôt peuvent ajouter des exécuteurs auto-hébergés. Pour plus d’informations, consultez « À propos des exécuteurs auto-hébergés » et « Ajout d’exécuteurs auto-hébergés ».
Configuration de l’code scanning manuellement
-
Dans votre entreprise, accédez à la page principale du dépôt. 1. Sous le nom du dépôt, cliquez sur Sécurité.
-
À droite de « Alertes d’Code scanning », cliquez sur Configurer l’code scanning . Si « Alertes d’code scanning » n’est pas disponible, vous devez demander à un propriétaire d’organisation ou à un administrateur de dépôt d’activer GitHub Advanced Security. Pour plus d’informations, consultez « Gestion des paramètres de sécurité et d’analyse pour votre organisation » ou « Gestion des paramètres de sécurité et d’analyse pour votre dépôt ».
-
Sous « Bien démarrer avec l’code scanning », cliquez sur Configurer ce workflow sur le Workflow d’analyse CodeQL ou sur un workflow tiers.
Les workflows s’affichent uniquement s’ils sont pertinents pour les langages de programmation détectés dans le dépôt. Le Workflow d’analyse CodeQL est toujours affiché, mais le bouton « Configurer ce workflow » n’est activé que si l’analyse CodeQL prend en charge les langages présents dans le dépôt. -
Pour personnaliser la façon dont l’code scanning analyse votre code, modifiez le workflow.
En règle générale, vous pouvez commiter le Workflow d’analyse CodeQL sans apporter aucun changement à celui-ci. Toutefois, de nombreux workflows tiers nécessitent une configuration supplémentaire. Lisez donc les commentaires dans le workflow avant de commiter.
Pour plus d’informations, consultez « Personnalisation de l’analyse du code ».
-
Sélectionnez la liste déroulante Commencer le commit, puis tapez un message de commit.
-
Indiquez si vous souhaitez valider directement la branche par défaut ou créer une nouvelle branche et démarrer une requête de tirage (pull request).
-
Cliquez sur Valider le nouveau fichier ou Proposer un nouveau fichier.
Dans le Workflow d’analyse CodeQL suggéré, l’code scanning est configurée pour analyser votre code chaque fois que vous poussez un changement vers la branche par défaut ou des branches protégées, ou que vous déclenchez une demande de tirage (pull request) sur la branche par défaut. En conséquence, l’code scanning commence.
Les déclencheurs on:pull_request
et on:push
pour l’analyse du code sont chacun utiles à des fins différentes. Pour plus d’informations, consultez « Personnalisation de l’analyse du code ».
Configuration en bloc de l’code scanning
Vous pouvez configurer l’code scanning dans de nombreux référentiels à la fois avec un script. Si vous souhaitez utiliser un script pour déclencher des demandes de tirage qui ajoutent un workflow GitHub Actions à plusieurs dépôts, consultez le dépôt jhutchings1/Create-ActionsPRs
, pour obtenir un exemple utilisant PowerShell, ou nickliffen/ghas-enablement
, pour les équipes qui n’ont pas PowerShell et qui souhaitent utiliser NodeJS.
Affichage de la sortie de journalisation de l’code scanning
Après avoir configuré l’code scanning pour votre référentiel, vous pouvez regarder la sortie des actions à mesure qu’elles s’exécutent.
-
Sous le nom de votre référentiel, cliquez sur Actions.
La liste qui apparaît inclut une entrée pour l’exécution du workflow d’code scanning. Le texte de l’entrée est le titre que vous avez donné à votre message de commit.
-
Cliquez sur l’entrée du workflow d’code scanning.
-
Cliquez sur le nom du travail sur la gauche. Par exemple, Analyser (LANGAGE) .
-
Passez en revue la sortie de la journalisation des actions de ce workflow à mesure qu’elles s’exécutent.
-
Une fois tous les travaux terminés, vous pouvez afficher les détails de toutes les alertes de l’code scanning qui ont été identifiées. Pour plus d’informations, consultez « Gestion des alertes d’analyse du code pour votre référentiel ».
Remarque : Si vous avez déclenché une demande de tirage pour ajouter le workflow d’code scanning au dépôt, les alertes de cette demande de tirage ne s’affichent directement dans la page Code scanning qu’une fois la demande de tirage fusionnée. Si des alertes ont été trouvées, vous pouvez les voir, avant la fusion de la demande de tirage, en cliquant sur le lien NOMBRE alertes trouvées dans la bannière de la page Code scanning.
Présentation des vérifications des demandes de tirage
Pour chaque workflow d’code scanning configuré pour s’exécuter sur les demandes de tirage, il existe toujours au moins deux entrées dans la section des vérifications d’une demande de tirage. Il existe une entrée pour chacun des travaux d’analyse dans le workflow et une entrée finale pour les résultats de l’analyse.
Les noms des vérifications d’code scanning ont la forme suivante : « NOM DE L’OUTIL / NOM DU TRAVAIL (DÉCLENCHEUR) ». Par exemple, pour CodeQL, l’analyse du code C++ contient l’entrée « CodeQL / Analyser (cpp) (pull_request) ». Vous pouvez cliquer sur Détails sur une entrée d’code scanning pour afficher les données de journalisation. Ainsi, vous pouvez déboguer un problème si le travail d’analyse a échoué. Par exemple, pour l’code scanning des langages compilés, cela peut se produire si l’action ne peut pas générer le code.
Pendant l’exécution des travaux d’code scanning, GitHub détermine si des alertes ont été ajoutées par la demande de tirage et ajoute l’entrée « Résultats de l’Code scanning / NOM DE L’OUTIL » à la liste des vérifications. Après que l’code scanning a été effectuée au moins une fois, vous pouvez cliquer sur Détails pour afficher les résultats de l’analyse.
Si vous avez utilisé une demande de tirage pour ajouter l’code scanning au dépôt, vous voyez d’abord un message « Analyse introuvable » quand vous cliquez sur Détails dans la vérification « Résultats de l’Code scanning / TOOL NAME ».
Le tableau liste une ou plusieurs catégories. Chaque catégorie est liée à des analyses spécifiques, pour le même outil et le même commit, effectuées sur un langage différent ou une partie différente du code. Pour chaque catégorie, le tableau affiche les deux analyses que l’code scanning a tenté de comparer pour déterminer quelles alertes ont été introduites ou corrigées dans la demande de tirage.
Par exemple, dans la capture d’écran ci-dessus, l’code scanning a trouvé une analyse pour le commit de fusion de la demande de tirage, mais aucune analyse pour la tête de la branche primaire.
Raisons du message « Analyse introuvable »
Une fois que l’code scanning a analysé le code dans une demande de tirage, elle doit comparer l’analyse de la branche de rubrique (branche que vous avez utilisée pour créer la demande de tirage) avec l’analyse de la branche de base (branche dans laquelle vous souhaitez fusionner la demande de tirage). Ainsi, l’code scanning peut calculer les alertes nouvellement introduites par la demande de tirage, les alertes qui étaient déjà présentes dans la branche de base et déterminer si des alertes existantes sont corrigées par les modifications apportées dans la demande de tirage. Au départ, si vous utilisez une demande de tirage pour ajouter l’code scanning à un dépôt, la branche de base n’a pas encore été analysée. Il n’est donc pas possible de calculer ces détails. Dans ce cas, quand vous cliquez dans la vérification des résultats de la demande de tirage, vous voyez le message « Analyse introuvable ».
Il existe d’autres situations où il peut ne pas y avoir d’analyse pour le dernier commit dans la branche de base pour une demande de tirage. notamment :
-
La demande de tirage a été déclenchée sur une branche autre que la branche par défaut et cette branche n’a pas été analysée.
Pour vérifier si une branche a été analysée, accédez à la page Code scanning, cliquez sur la liste déroulante Branche et sélectionnez la branche appropriée.
Dans cette situation, la solution consiste à ajouter le nom de la branche de base à la spécification
on:push
eton:pull_request
dans le workflow d’code scanning sur cette branche, puis à apporter une modification qui met à jour la demande de tirage ouverte que vous souhaitez analyser. -
L’analyse n’est pas encore disponible, car le dernier commit sur la branche de base pour la demande de tirage est en cours d’analyse.
Attendez quelques minutes, puis poussez une modification vers la demande de tirage pour redéclencher l’code scanning.
-
Une erreur s’est produite lors de l’analyse du dernier commit sur la branche de base et l’analyse de ce commit n’est pas disponible.
Fusionnez une modification triviale dans la branche de base pour déclencher l’code scanning sur ce dernier commit, puis poussez une modification vers la demande de tirage pour redéclencher l’code scanning.
Étapes suivantes
Après avoir configuré l’code scanning et autorisé ses actions, vous pouvez :
- Afficher toutes les alertes d’code scanning générées pour ce dépôt. Pour plus d’informations, consultez « Gestion des alertes d’analyse du code pour votre référentiel ».
- Afficher toutes les alertes générées pour une demande de tirage envoyée après que vous avez configuré l’code scanning. Pour plus d’informations, consultez « Triage des alertes d’analyse du code dans les demandes de tirage (pull request) ».
- Configurer des notifications pour les exécutions terminées. Pour plus d’informations, consultez « Configuration des notifications ».
- Afficher les journaux générés par l’code scanning. Pour plus d’informations, consultez « Affichage des journaux d’analyse du code ».
- Examiner les problèmes qui se produisent avec la configuration initiale de l’code scanning CodeQL. Pour plus d’informations, consultez « Résolution des problèmes de workflow CodeQL ».
- Personnaliser la façon dont l’code scanning analyse le code dans votre dépôt. Pour plus d’informations, consultez « Personnalisation de l’analyse du code ».