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 Enterprise Cloud 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 avec la configuration par défaut (voir « Configuration de l’analyse du code pour un référentiel ») ou une configuration avancée (voir « Configuration de l’analyse du code pour un référentiel »), 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 (voir « Configuration de l’analyse du code pour un référentiel ») ou des outils tiers et charge les résultats dans GitHub Enterprise Cloud (voir « Chargement d’un fichier SARIF sur GitHub »).
Si vous exécutez l’analyse du code à l’aide de plusieurs configurations, la même alerte est parfois générée par plusieurs configurations. Si une alerte provient de plusieurs configurations, vous pouvez afficher l’état de l’alerte pour chaque configuration sur la page des alertes. Pour plus d’informations, consultez « À propos des alertes d’analyse du code ».
La page d’état de l’outil affiche des informations utiles sur tous vos outils d’analyse du code. Si l’analyse du code ne fonctionne pas comme prévu, la page d’état de l’outil est un bon point de départ pour le débogage des problèmes. Pour plus d’informations, consultez « À propos de la page d’état de l’outil pour l’analyse du code ».
Configuration de l’code scanning automatiquement
La configuration par défaut de l’code scanning configure automatiquement l’code scanning avec les meilleurs paramètres pour votre référentiel. La configuration par défaut utilise GitHub Actions pour exécuter l’analyse CodeQL sans vous obliger à commiter un fichier de workflow dans votre référentiel.
Votre référentiel est éligible pour une configuration par défaut, s’il utilise GitHub Actions et ne contient que les langages pris en charge par CodeQL suivants : Go, JavaScript/TypeScript, Python ou Ruby. Bien que vous puissiez utiliser la configuration par défaut si votre référentiel comprend des langages qui ne sont pas pris en charge par CodeQL, par exemple le langage R, vous devez utiliser la configuration avancée si vous incluez d’autres langages pris en charge par CodeQL que ceux listés ci-dessus. Pour plus d’informations sur les langages pris en charge par CodeQL, consultez « À propos de l’analyse du code avec CodeQL ». Pour plus d’informations sur l’activation en bloc, consultez « Configuration de l’analyse du code à grande échelle avec CodeQL ».
L’activation de la configuration par défaut est le moyen le plus rapide de configurer l’code scanning pour votre référentiel. De plus, la configuration par défaut ne nécessite aucune des opérations de maintenance nécessaires à un fichier de workflow CodeQL. Avant d’activer la configuration par défaut, vous pouvez voir les langages qu’elle analyse, les suites de requêtes qu’elle exécute et les événements qui déclenchent une nouvelle analyse.
Essayez la configuration par défaut si vous n’avez pas besoin d’exécuter de requêtes supplémentaires, de changer la planification de l’analyse ou d’analyser un langage non pris en charge par la configuration par défaut.
-
Dans GitHub.com, accédez à la page principale du dépôt. 1. Sous le nom de votre dépôt, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.
-
Dans la section « Sécurité » de la barre latérale, cliquez sur Sécurité et analyse du code.
-
Dans la section « Code scanning », sélectionnez Configuration , puis cliquez sur Par défaut.
-
Si vous le souhaitez, dans la section « Suites de requêtes » de la boîte de dialogue modale « Configuration par défaut de CodeQL », sélectionnez le menu déroulant Par défaut , puis cliquez sur la suite de requêtes CodeQL que vous souhaitez utiliser.
Si vous choisissez la suite de requêtes Étendue, votre configuration de l’code scanning exécute des requêtes de gravité et de précision inférieures en plus des requêtes incluses dans la suite de requêtes Par défaut.
Remarque : Si vous configurez l’code scanning pour utiliser la suite de requêtes Étendue, vous risquez de rencontrer un taux plus élevé d’alertes de faux positifs.
-
Passez en revue les paramètres de la configuration par défaut sur votre dépôt, puis cliquez sur Activer CodeQL .
Remarques :
- La fenêtre Configuration par défaut de CodeQL affiche les détails de la configuration par défaut, notamment les langages à analyser, les suites de requêtes à exécuter et les événements qui déclenchent une nouvelle analyse. Si vous souhaitez changer les événements qui déclenchent une nouvelle analyse ou personnaliser d’autres fonctionnalités de l’code scanning, vous devez utiliser la configuration avancée. Pour plus d’informations, consultez « Configuration de l’analyse du code pour un référentiel ».
- Si vous passez de la configuration avancée à la configuration par défaut, un avertissement s’affiche pour vous informer que la configuration par défaut va remplacer les configurations existantes. La configuration par défaut de CodeQL désactive le fichier de workflow existant et bloque les chargements d’API d’analyse CodeQL.
- Si vous souhaitez voir votre configuration par défaut de CodeQL une fois la configuration effectuée, sélectionnez , puis cliquez sur Voir la configuration de CodeQL .
Création d’une configuration avancée
La configuration avancée de l’code scanning est utile quand vous devez personnaliser votre code scanning. En créant et en modifiant un fichier de workflow, vous pouvez choisir les requêtes à exécuter, changer la planification de l’analyse, analyser les langages pris en charge par CodeQL, utiliser une build matricielle, etc.
Configuration de l’code scanning en utilisant des workflows de démarrage
Remarque : Les workflows de démarrage pour Advanced Security ont été regroupés dans une catégorie « Sécurité » sous l’onglet Actions d’un dépôt. Cette nouvelle configuration est actuellement en version bêta et susceptible d’être modifiée.
GitHub Enterprise Cloud fournit des workflows de démarrage pour les fonctionnalités de sécurité comme l’code scanning. Vous pouvez utiliser ces workflows suggérés pour construire vos workflows d’code scanning au lieu de commencer à partir de zéro. Les workflows de démarrage de l’Code scanning ne sont disponibles pour votre dépôt que si l’code scanning est activée.
L’utilisation d’actions pour exécuter l’code scanning repose sur le comptage des minutes. Pour plus d’informations, consultez « À propos de la facturation de GitHub Actions ».
- Dans GitHub.com, accédez à la page principale du dépôt. 1. Sous le nom de votre dépôt, cliquez sur Actions.
- Si au moins un workflow est déjà configuré et en cours d’exécution pour le dépôt, cliquez sur Nouveau workflow pour afficher les workflows de démarrage. Si aucun workflow n’est configuré pour le dépôt, passez à l’étape suivante.
- Dans la vue « Choisir un workflow » ou « Bien démarrer avec GitHub Actions », faites défiler jusqu’à la catégorie « Sécurité » et cliquez sur Configurer sous le workflow que vous souhaitez configurer. Vous devrez peut-être cliquer sur Tout afficher pour rechercher le workflow de sécurité que vous souhaitez configurer.
- Suivez les instructions fournies dans le workflow pour le personnaliser selon vos besoins. Pour obtenir une aide plus générale sur les workflows, cliquez sur Documentation dans le volet droit de la page du workflow.
Pour plus d’informations, consultez « Utilisation de workflows de démarrage » et « Personnalisation de l’analyse du code ».
Configuration de l’code scanning manuellement
Vous pouvez personnaliser l’code scanning en créant et en modifiant un fichier de workflow. La configuration avancée génère un fichier de workflow de base que vous pouvez personnaliser.
L’utilisation d’actions pour exécuter l’code scanning repose sur le comptage des minutes. Pour plus d’informations, consultez « À propos de la facturation de GitHub Actions ».
-
Dans GitHub.com, accédez à la page principale du dépôt. 1. Sous le nom de votre dépôt, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.
-
Dans la section « Sécurité » de la barre latérale, cliquez sur Sécurité et analyse du code.
-
Faites défiler jusqu’à la section « Code scanning », sélectionnez Configuration , puis cliquez sur Avancé.
Remarque : Si vous passez de la configuration par défaut à la configuration avancée de l’code scanning, dans la section « Code scanning », sélectionnez , puis cliquez sur Passer au mode avancé. Dans la fenêtre indépendante qui s’affiche, cliquez sur Désactiver CodeQL .
-
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 ».
-
Cliquez sur Commiter les changements... pour afficher le formulaire de commit des changements.
-
Dans le champ de message de commit, tapez un message de commit.
-
Indiquez si vous voulez commiter directement dans la branche par défaut ou créer une branche et démarrer une demande de tirage (pull request).
-
Cliquez sur Commiter le nouveau fichier pour commiter le fichier de workflow dans la branche par défaut ou sur Proposer un nouveau fichier pour commiter le fichier dans une nouvelle branche.
-
Si vous avez créé une branche, cliquez sur Créer une demande de tirage et ouvrez une demande de tirage pour fusionner votre changement dans la branche par défaut.
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 ».
Pour plus d’informations sur l’activation en bloc, consultez « Configuration de l’analyse du code à grande échelle avec CodeQL ».
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 dépôt, 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 de l’exécution 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 ».
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.
É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 configuration avancée de 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 ».