Skip to main content

À propos de CodeQL CLI

Vous pouvez utiliser CodeQL CLI pour exécuter des processus CodeQL localement sur des projets logiciels ou pour générer des résultats de code scanning à charger sur GitHub.

Qui peut utiliser cette fonctionnalité ?

CodeQL est disponible pour les types de référentiels suivants :

Les développeurs de logiciels et les chercheurs en sécurité peuvent sécuriser leur code avec l’analyse de l’CodeQL. Pour plus d’informations sur CodeQL, consultez AUTOTITLE.

L’CodeQL CLI est un outil en ligne de commande autonome que vous pouvez utiliser pour analyser le code. Son objectif principal est de générer une représentation de base de données d’un codebase, une base de données CodeQL. Une fois que la base de données est prête, vous pouvez l’interroger de manière interactive, ou exécuter une suite de requêtes pour générer un ensemble de résultats au format SARIF et charger les résultats dans GitHub.

Vous pouvez utiliser CodeQL CLI pour :

  • Exécuter des analyses CodeQL avec des requêtes fournies par les ingénieurs GitHub et la communauté open source
  • Générer des alertes d’analyse du code que vous pouvez charger pour les afficher dans GitHub
  • Créer des bases de données CodeQL à utiliser dans le CodeQL pour l’extension Visual Studio Code.
  • Développer et tester des requêtes CodeQL personnalisées à utiliser dans vos propres analyses

Le CodeQL CLI peut analyser :

  • Langages dynamiques, par exemple, JavaScript et Python.
  • Langages compilés, par exemple, C/C++, C#, Go, Java, Kotlin, Rust (préversion publique), et Swift
  • Les codebases écrits dans un mélange de langages.

À propos de l’CodeQL CLI pour l’code scanning

Vous pouvez utiliser l’CodeQL CLI pour exécuter l’code scanning sur le code que vous traitez dans un système d’intégration continue (CI) tiers. Code scanning es une fonctionnalité que vous utilisez pour analyser le code dans un dépôt GitHub afin de détecter d’éventuelles vulnérabilités de sécurité et erreurs de codage. Tous les problèmes identifiés par l’analyse sont énumérés dans votre référentiel. Pour une vue d’ensemble de l’utilisation de l’analyse de code avec des systèmes CI externes, consultez AUTOTITLE. Pour découvrir les spécifications recommandées (RAM, cœurs de processeur et disque) pour l’exécution de l’analyse CodeQL, consultez AUTOTITLE.

Vous pouvez également utiliser GitHub Actions ou les pipelines Azure DevOps pour analyser le code à l’aide de CodeQL CLI. Pour plus d’informations, consultez AUTOTITLE ou Configurer GitHub Advanced Security for Azure DevOps dans Microsoft Learn.

Pour obtenir une vue d’ensemble de toutes les options d’utilisation de l’analyse CodeQL pour l’analyse du code, consultez AUTOTITLE.

À propos de la génération de résultats d'analyse du code avec CodeQL CLI

Si vous choisissez d’exécuter directement CodeQL CLI, vous devez d’abord installer le CodeQL CLI localement. Si vous envisagez d'utiliser le CodeQL CLI avec un système CI externe, vous devez rendre le CodeQL CLI disponible pour les serveurs de votre système CI.

Une fois le CodeQL CLI configuré, vous pouvez utiliser trois commandes différentes pour générer des résultats et les charger dans GitHub :

  1. pour créer une base de données CodeQL afin de représenter la structure hiérarchique de chaque langage de programmation pris en charge dans le dépôt. Pour plus d’informations, consultez « AUTOTITLE ».
  2. pour exécuter des requêtes afin d’analyser chaque base de données CodeQL et de synthétiser les résultats dans un fichier SARIF. Pour plus d’informations, consultez « AUTOTITLE ».
  3. pour charger les fichiers SARIF résultants sur GitHub où les résultats sont mis en correspondance avec une branche ou une demande de tirage (pull request) et affichés sous la forme d’alertes d’code scanning. Pour plus d’informations, consultez « AUTOTITLE ».

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é. Pour plus d’informations, consultez « Gestion des paramètres de sécurité et d’analyse pour votre dépôt ».

Exemple de configuration CI pour l’analyse CodeQL

Il s'agit d'un exemple de la série complète de commandes pour le CodeQL CLI que vous pourriez utiliser pour analyser un codebase avec deux langues prises en charge et ensuite télécharger les résultats vers GitHub.

# Create CodeQL databases for Java and Python in the 'codeql-dbs' directory
# Call the normal build script for the codebase: 'myBuildScript'

codeql database create codeql-dbs --source-root=src \
    --db-cluster --language=java,python --command=./myBuildScript

# Analyze the CodeQL database for Java, 'codeql-dbs/java'
# Tag the data as 'java' results and store in: 'java-results.sarif'

codeql database analyze codeql-dbs/java java-code-scanning.qls \
    --format=sarif-latest --sarif-category=java --output=java-results.sarif

# Analyze the CodeQL database for Python, 'codeql-dbs/python'
# Tag the data as 'python' results and store in: 'python-results.sarif'

codeql database analyze codeql-dbs/python python-code-scanning.qls \
    --format=sarif-latest --sarif-category=python --output=python-results.sarif

# Upload the SARIF file with the Java results: 'java-results.sarif'
# The GitHub App or personal access token created for authentication
# with GitHub's REST API is available in the `GITHUB_TOKEN` environment variable.

codeql github upload-results \
    --repository=my-org/example-repo \
    --ref=refs/heads/main --commit=deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 \
    --sarif=java-results.sarif

# Upload the SARIF file with the Python results: 'python-results.sarif'

codeql github upload-results \
    --repository=my-org/example-repo \
    --ref=refs/heads/main --commit=deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 \
    --sarif=python-results.sarif

Extraction de base de données

CodeQL CLI utilise des programmes spéciaux, appelés extracteurs, pour extraire des informations du code source d’un système logiciel dans une base de données pouvant être interrogée. Vous pouvez personnaliser le comportement des extracteurs en définissant les options de configuration d’extracteur via CodeQL CLI. Consultez AUTOTITLE.

À propos de la licence GitHub CodeQL

Avis de licence : si vous ne disposez pas d’une licence pour GitHub Code Security, alors, en installant ce produit, vous acceptez les Conditions générales de GitHub CodeQL.

Démarrage

Pour obtenir le moyen le plus simple de commencer, consultez AUTOTITLE.

Des options de configuration plus avancées sont disponibles si vous en avez besoin. Par exemple, si vous :

  • Veulent contribuer aux requêtes open source partagées CodeQL et préfèrent travailler directement avec le code source de CodeQL. Consultez AUTOTITLE.
  • Vous devez installer plusieurs versions de CodeQL CLI simultanément. Par exemple, si une base de code nécessite une version spécifique tandis qu’une autre utilise la dernière version. Vous pouvez télécharger chaque version et décompresser les deux archives CLI dans le même répertoire parent.
  • Font des recherches ou développent des requêtes et souhaitent télécharger des bases de données à partir de GitHub.com. Consultez AUTOTITLE.