Skip to main content

Utilisation de l'analyse du code avec votre systĂšme CI existant

Vous pouvez analyser votre code avec CodeQL CLI ou un autre outil dans un systĂšme d’intĂ©gration continue tiers et charger les rĂ©sultats dans GitHub. Les alertes code scanning obtenues s’affichent en mĂȘme temps que toutes les alertes gĂ©nĂ©rĂ©es dans GitHub.

Qui peut utiliser cette fonctionnalité ?

Utilisateurs avec accÚs en écriture

Code scanning est disponible pour les types de rĂ©fĂ©rentiels suivants :

  • Des rĂ©fĂ©rentiels publics sur GitHub.com
  • RĂ©fĂ©rentiels appartenant Ă  l’organisation sur GitHub Team avec GitHub Code Security activĂ©

À propos de l'utilisation de code scanning avec votre systùme CI existant

En guise d'alternative à l'exécution de code scanning dans GitHub à l'aide de GitHub Actions, vous pouvez analyser le code dans un systÚme externe d'intégration continue ou de livraison/déploiement continu (CI/CD), puis télécharger les résultats dans GitHub.

Vous pouvez ajouter le CodeQL CLI Ă  votre systĂšme tiers ou utiliser un autre outil d'analyse statique tiers pouvant produire des rĂ©sultats sous forme de donnĂ©es SARIF (Static Analysis Results Interchange Format) 2.1.0. Pour en savoir plus sur le format SARIF pris en charge, consultez Prise en charge de SARIF pour l’analyse du code.

L’CodeQL CLI est un outil en ligne de commande autonome que vous pouvez utiliser pour analyser le code. Pour plus d’informations, consultez « Ă€ propos de CodeQL CLI Â».

Les alertes de code scanning que vous exĂ©cutez en externe sont affichĂ©es de la mĂȘme façon que celles de code scanning que vous gĂ©nĂ©rez dans 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

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 Code Security activĂ©, et les rĂ©fĂ©rentiels publics sur GitHub.com. 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 CLI, vous devez mettre le contenu complet de l'offre groupĂ©e CodeQL CLI Ă  la disposition de chaque serveur CI sur lequel vous voulez exĂ©cuter l'analyse CodeQL code 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 le code avec CodeQL CLI ou un autre outil d'analyse, vous devez vérifier le code que vous souhaitez analyser et configurer l'environnement de 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 CodeQL CLI, vous devrez d'abord crĂ©er une base de donnĂ©es CodeQL Ă  partir de 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 de GitHub App ou de personal access token Ă  utiliser pour tĂ©lĂ©charger les rĂ©sultats vers GitHub, que vous utilisiez CodeQL CLI, l'API REST ou une autre mĂ©thode. Vous devez utiliser un jeton d’accĂšs ou une GitHub App avec l’autorisation d’écriture security_events. Si les serveurs CI utilisent dĂ©jĂ  un jeton avec cette Ă©tendue pour vĂ©rifier les rĂ©fĂ©rentiels Ă  partir de 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 en savoir plus sur les diffĂ©rentes mĂ©thodes de chargement des rĂ©sultats vers 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 tĂ©lĂ©charger les rĂ©sultats vers 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 en savoir plus sur le téléchargement de vos résultats vers GitHub en utilisant CodeQL CLI, consultez Chargement des résultats d'analyse de CodeQL sur GitHub.

Par dĂ©faut, l’code scanning attend un fichier de rĂ©sultats SARIF par analyse pour un dĂ©pĂŽt. 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. Pour plus d’informations, consultez « Prise en charge de SARIF pour l’analyse du code Â».