{"meta":{"title":"À propos de l’analyse du code CodeQL pour les langages compilés","intro":"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.","product":"Sécurité et qualité du code","breadcrumbs":[{"href":"/fr/code-security","title":"Sécurité et qualité du code"},{"href":"/fr/code-security/concepts","title":"Concepts"},{"href":"/fr/code-security/concepts/code-scanning","title":"Analyse du code"},{"href":"/fr/code-security/concepts/code-scanning/codeql","title":"CodeQL"},{"href":"/fr/code-security/concepts/code-scanning/codeql/about-codeql-code-scanning-for-compiled-languages","title":"CodeQL pour les langages compilés"}],"documentType":"article"},"body":"# À propos de l’analyse du code CodeQL pour les langages compilés\n\nDé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.\n\n## À propos du Workflow d’analyse CodeQL et des langages compilés\n\nCode 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, et Swift, le processus de remplissage de cette base de données implique souvent de compiler le code et d’extraire des données.\n\nLorsque 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/C++, C#, Java et Rust, 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.\n\nVous pouvez utiliser la mise en cache des dépendances avec CodeQL pour stocker les dépendances comme un cache GitHub Actions au lieu de les télécharger depuis les registres. Voir [à propos de la mise en cache des dépendances pour CodeQL](#about-dependency-caching-for-codeql) plus loin dans cet article.\n\n## Modes de build de CodeQL\n\nL’action CodeQL prend en charge trois modes de build différents pour les langages compilés :\n\n* `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/C++, C#, Java et Rust).\n* `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).\n* `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).\n\nPour 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](/fr/code-security/reference/code-scanning/codeql/codeql-build-options-and-steps-for-compiled-languages).\n\n## À propos de la mise en cache des dépendances pour CodeQL\n\nVous pouvez utiliser la mise en cache des dépendances avec CodeQL pour stocker les dépendances comme un cache GitHub Actions au lieu de les télécharger depuis les registres. Cela réduit le risque de perdre des alertes lorsque les registres tiers fonctionnent mal, et peut améliorer les performances des projets ayant un grand nombre de dépendances ou utilisant des registres lents. Pour en savoir plus sur la façon dont la mise en cache des dépendances peut accélérer les workflows, consultez [Référence sur la mise en cache des dépendances](/fr/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows).\n\nLa mise en cache des dépendances fonctionne avec tous les modes de build et est prise en charge par Java, Go, et C#.\n\n> \\[!NOTE]\n> L’utilisation de la mise en cache des dépendances stocke des caches spécifiques à CodeQL, qui seront soumis aux quotas de cache du dépôt. Consultez « [Référence sur la mise en cache des dépendances](/fr/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy) »."}