Skip to main content

Cette version de GitHub Enterprise Server ne sera plus disponible le 2026-03-17. Aucune publication de correctifs n’est effectuée, même pour les problèmes de sécurité critiques. Pour de meilleures performances, une sécurité améliorée et de nouvelles fonctionnalités, effectuez une mise à niveau vers la dernière version de GitHub Enterprise. Pour obtenir de l’aide sur la mise à niveau, contactez le support GitHub Enterprise.

À propos de l’analyse du code CodeQL pour les langages compilés

Découvrez comment CodeQL analyse les langages compilés, les options de build disponibles et comment vous pouvez personnaliser le processus de génération de base de données si nécessaire.

Qui peut utiliser cette fonctionnalité ?

Utilisateurs avec accès en écriture if advanced setup is already enabled

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, GitHub Enterprise Cloud, ou GitHub Enterprise Server, avec GitHub Advanced Security activé.

À propos du Workflow d’analyse CodeQL et des langages compilés

Code scanning fonctionne en exécutant des requêtes sur une ou plusieurs bases de données CodeQL. Chaque base de données contient une représentation du code dans un seul langage au sein de votre dépôt. Pour les langages compilés C/C++, C#, Go, Java, Kotlin, Rust (préversion publique), et Swift, le processus de remplissage de cette base de données implique souvent de compiler le code et d’extraire des données.

Lorsque vous activez code scanning, la configuration par défaut et la configuration avancée génèrent une base de données CodeQL à analyser en utilisant la méthode la plus simple disponible. Pour C# et Java, la base de données CodeQL est générée directement à partir de la base de code sans nécessiter de build (mode de build none). Pour les autres langages compilés, CodeQL compile la base de code à l’aide du mode de build autobuild. Vous pouvez également utiliser le mode de build manual pour spécifier des commandes de build explicites afin d’analyser uniquement les fichiers compilés par ces commandes personnalisées.

Modes de build de CodeQL

L’action CodeQL prend en charge trois modes de build différents pour les langages compilés :

  •         `none` : la base de données CodeQL est créée directement à partir de la base de code sans compiler celle-ci (pris en charge pour tous les langages interprétés, et également pour C# et  Java).
    
  •           `autobuild` : CodeQL détecte la méthode de build la plus probable et tente de l’utiliser pour compiler la base de code et créer une base de données pour l’analyse (pris en charge pour C/C++, C#, Go, Java, Kotlin et Swift).
    
  •           `manual` : vous définissez les étapes de build à utiliser pour la base de code dans le workflow (pris en charge pour C/C++, C#, Go, Java, Kotlin et Swift).
    

Pour connaître le comportement spécifique de chaque langage pour autobuild, les exigences de l’exécuteur et les instructions pour les builds manuelles, consultez Options et étapes de génération CodeQL pour les langages compilés.