Remarque
Votre administrateur de site doit activer l’code scanning avant de pouvoir utiliser cette fonctionnalité. Pour plus d’informations, consultez « Configuration de l’analyse de code pour votre appliance ».
Vous ne pourrez peut-être pas activer ou désactiver code scanning si un propriétaire d’entreprise a défini une stratégie GitHub Advanced Security au niveau de l’entreprise. Pour plus d’informations, consultez « Application de stratégies de sécurité et d’analyse du code pour votre entreprise ».
En guise d’alternative à l’exécution code scanning à l’aide GitHubGitHub Actions, vous pouvez analyser le code dans un système d’intégration continue externe ou de livraison/déploiement continu (CI/CD), puis charger les résultats vers GitHub.
Remarque
Le chargement des données SARIF à afficher comme résultats code scanning dans GitHub est pris en charge pour les référentiels appartenant à l’organisation avec GitHub Advanced Security activé. Pour plus d’informations, consultez « Gestion des paramètres de sécurité et d’analyse pour votre dépôt ».
Configuration de votre outil d'analyse
Vous devez d'abord télécharger votre outil d'analyse de votre choix et le configurer avec votre système CI.
Si vous utilisez le CodeQL CLIfichier, vous devez rendre le contenu complet du paquet CodeQL CLI disponible pour chaque serveur CI sur lequel vous souhaitez exécuter l'analyse CodeQLcode scanning. Pour plus d’informations, consultez « Configuration de CodeQL CLI ».
Une fois que vous avez mis votre outil d'analyse à la disposition des serveurs de votre système de CI, vous êtes prêt à générer des données.
Analyser le code
Pour analyser du code avec l’outil CodeQL CLI d’analyse ou un autre outil d’analyse, vous souhaitez extraire le code que vous souhaitez analyser et configurer l’environnement codebase, en vous assurant que toutes les dépendances sont disponibles. Vous pouvez également rechercher la commande de création de codebase, généralement disponible dans le fichier de configuration du système de votre CI.
Vous pouvez ensuite suivre les étapes permettant d'analyser votre codebase et de produire des résultats différents en fonction de l'outil d'analyse statique que vous utilisez.
Si vous utilisez le CodeQL CLI fichier, vous devez d’abord créer une base de données CodeQL depuis votre code, puis analyser la base de données pour produire des résultats SARIF. Pour plus d’informations, consultez « Préparation de votre code pour l’analyse CodeQL » et « Analyse de votre code avec des requêtes CodeQL ».
Génération d’un jeton pour l’authentification avec GitHub
Chaque serveur CI a besoin d’un GitHub App ou d’un personal access token pour charger les résultats vers GitHub, que vous utilisiez le CodeQL CLI l’API REST ou une autre méthode. Vous devez utiliser un jeton d’accès ou un GitHub App avec l’autorisation d’écriture security_events . Si les serveurs CI utilisent déjà un jeton avec cette étendue pour extraire des référentiels GitHub, vous pouvez éventuellement utiliser le même jeton. Sinon, vous devez créer un jeton avec l’autorisation d’accès en écriture security_events et l’ajouter au magasin de secrets du système CI. Pour plus d’informations, consultez À propos de la création d’applications GitHub et Gestion de vos jetons d’accès personnels.
Pour plus d’informations sur les différentes méthodes de chargement des résultats GitHub, consultez Chargement d’un fichier SARIF sur GitHub.
Chargement de vos résultats dans GitHub
Une fois que vous avez analysé votre code, produit des résultats SARIF et vérifié que vous pouvez vous authentifier avec GitHub, vous pouvez charger les résultats dans GitHub. Pour en savoir plus sur les différentes méthodes que vous pouvez utiliser pour télécharger vos résultats, consultez Chargement d’un fichier SARIF sur GitHub.
Pour plus d’informations sur le chargement de vos résultats sur GitHub à l’aide de l’élément CodeQL CLI, consultez Chargement des résultats d’analyse CodeQL dans GitHub.
Par défaut, code scanning attend un fichier de résultats SARIF par analyse pour un référentiel. Ainsi, quand vous chargez un deuxième fichier de résultats SARIF pour un commit, il est traité comme un remplacement du jeu de données d’origine. Vous pouvez télécharger deux fichiers SARIF différents pour une même analyse si, par exemple, votre outil d'analyse génère un fichier SARIF différent pour chaque langue qu'il analyse ou chaque ensemble de règles qu'il utilise. Si vous souhaitez télécharger plusieurs jeux de résultats pour un commit dans un référentiel, vous devez identifier chaque jeu de résultats en tant que jeu unique. La manière de spécifier une catégorie pour un chargement SARIF varie selon la méthode d'analyse.