Skip to main content

Cette version de GitHub Enterprise Server ne sera plus disponible le 2026-04-09. 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.

Configuration de CodeQL CLI

Pour commencer, CodeQL CLIvous devez télécharger et configurer l’interface CLI afin qu’elle puisse accéder aux outils et bibliothèques nécessaires pour créer et analyser des bases de données.

Qui peut utiliser cette fonctionnalité ?

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

Configuration de CodeQL CLI

Remarque

Cet article décrit les fonctionnalités disponibles avec le pack CodeQL CLI 2.17.6 inclus dans la mise en production initiale de GitHub Enterprise Server 3.14.

Si votre administrateur de site a mis à jour votre versionCodeQL CLI vers une version plus récente, consultez la version GitHub Enterprise Cloud de cet article pour obtenir plus d’informations sur les dernières fonctionnalités.

Pour exécuter CodeQL des commandes, vous devez configurer CodeQL CLI pour qu'il puisse accéder aux outils, aux requêtes et aux bibliothèques nécessaires pour créer et analyser des bases de données.

Le CodeQL CLI prend en charge une gamme de cas d'utilisation et de structures d'annuaire. Cet article décrit une configuration simple qui fonctionne pour la plupart des utilisateurs et des environnements.

Si vous envisagez d'utiliser CodeQL CLI pour la recherche en sécurité ou pour tester et contribuer des requêtes, vous aurez peut-être besoin d'une configuration plus avancée. Pour plus d’informations, consultez « À propos de CodeQL CLI ».

Avant de commencer

Si vous utilisez macOS sur Apple Silicon (par exemple, Apple M1), assurez-vous que les outils de développement en ligne de commande Xcode et Rosetta 2 sont installés.

Remarque

Actuellement, CodeQL CLI n’est pas compatible avec les distributions Linux qui ne sont pas basées sur glibc, telles qu’Alpine Linux (basées sur muslc).

1. Télécharger l’archive CodeQL CLI tar

Le package de téléchargement CodeQL CLI est une archive tar contenant des outils, des scripts et divers fichiers spécifiques à CodeQL. Si vous n’avez pas de licence GitHub Enterprise, en téléchargeant cette archive, vous acceptez les conditions générales de GitHub CodeQL.

Vous devez télécharger le bundle CodeQL à partir de https://github.com/github/codeql-action/releases. Le bundle contient :

  • L’CodeQL CLI
  • Une version compatible des requêtes et des bibliothèques de https://github.com/github/codeql
  • Versions précompilées de toutes les requêtes incluses dans le bundle

Remarque

Pour GitHub Enterprise Server 3.14, nous recommandons la version CodeQL CLI 2.17.6.

Vous devez toujours utiliser le bundle CodeQL. Cela garantit la compatibilité et offre de meilleures performances qu’un téléchargement de CodeQL CLI et une extraction des requêtes CodeQL. Si vous envisagez d’exécuter l’interface CLI sur une seule plateforme, téléchargez le fichier codeql-bundle-PLATFORM.tar.zst approprié. Vous pouvez également télécharger codeql-bundle.tar.zst qui contient l’interface CLI pour toutes les plateformes prises en charge.

Il existe également des variantes tar.gz du bundle, qui sont identiques aux variantes tar.zst, sauf qu’elles sont compressées à l’aide de l’algorithme gzip moins efficace. La seule raison de télécharger les variantes tar.gz est si vous utilisez des outils de décompression plus anciens qui ne prennent pas en charge l’algorithme de compression Zstandard.

2. Extraire l’archive CodeQL CLI tar

Extrayez l’archive CodeQL CLI tar dans un répertoire de votre choix.

Facultatif : rendre disponible CodeQL CLI dans votre système CI

Si vous envisagez d’exécuter CodeQLcode scanning l’analyse dans un système d'intégration continue, vérifiez que le contenu complet de l'ensemble CodeQL CLI est disponible pour chaque serveur CI qui exécutera l’analyse.

Par exemple, vous pouvez :

3. Lancer codeql

Une fois extrait, vous pouvez exécuter des processus CodeQL en exécutant le fichier exécutable codeql de deux façons :

  • En exécutant <extraction-root>/codeql/codeql, où <extraction-root> est le dossier dans lequel vous avez extrait le package de CodeQL CLI.
  • En ajoutant <extraction-root>/codeql à votre PATH, afin de pouvoir exécuter le fichier exécutable uniquement comme codeql.

À ce stade, vous pouvez exécuter des commandes CodeQL. Pour obtenir la liste complète des commandes CodeQL CLI, consultez Manuel des commandes de l’interface CLI CodeQL.

Remarque

Si vous ajoutez codeql à votre PATH, il peut être accédé par CodeQL pour Visual Studio Code compiler et exécuter des requêtes. Pour plus d'information sur la configuration de VS Code pour accéder à CodeQL CLI, consultez Gestion de l’interface CLI CodeQL dans l’extension VS Code.

Test de la CodeQL CLI configuration

Après avoir extrait le CodeQL CLI bundle, vous pouvez exécuter la commande suivante pour vérifier que l’interface CLI est correctement configurée pour créer et analyser des bases de données :

  •         `codeql resolve packs` si `/<extraction root>/codeql` est dans le `PATH`.
    
  • Sinon, /<extraction root>/codeql/codeql resolve packs.

Si cela fonctionne, le résultat devrait ressembler à l’extrait ci-dessous :

Searching directories specified by `--additional-packs`. All directories have equal priority.
  Searching in:
    No packs were found at this location.
Searching directories specified by `--search-path`. Directories are searched in order.
Searching the root of the CodeQL distribution.
  Searching in:
      <extraction root>
    The following packs were found:
      codeql/java-all@<version>: (library) <extraction root>/qlpacks/codeql/javat-all/<version>/qlpack.yml
      codeql/java-queries@<version>: (query) <extraction root>/qlpacks/codeql/java-queries/<version>/qlpack.yml
      codeql/javascript-all@<version>: (library) <extraction root>/qlpacks/codeql/javascript-all/<version>/qlpack.yml
      codeql/javascript-queries@<version>: (query) <extraction root>/qlpacks/codeql/javascript-queries/<version>/qlpack.yml
      codeql/swift-all@<version>: (library) <extraction root>/qlpacks/codeql/swift-all/<version>/qlpack.yml
      codeql/swift-queries@<version>: (query) <extraction root>/qlpacks/codeql/swift-queries/<version>/qlpack.yml
...

Les résultats ont été tronqués par souci de concision. Les résultats réels seront plus longs et détaillés.

Vous devez vérifier que la sortie contient les langages attendus et que l’emplacement du répertoire des fichiers qlpack est correct. L’emplacement doit se trouver dans l’ensemble extrait CodeQL CLI , illustré dans l’exemple précédent comme <extraction root>. Si le CodeQL CLI ne parvient pas à localiser les qlpacks pour les langues attendues, vérifiez que vous avez téléchargé le lot CodeQL et non un fichier CodeQL CLI autonome.

Vous pouvez aussi exécuter codeql resolve languages pour montrer les langages disponibles pour la création de base de données. Cela répertorie les langues prises en charge par défaut dans votre CodeQL CLI package.

Si vous le souhaitez, vous pouvez télécharger des packs CodeQL contenant des requêtes précompilées que vous voulez exécuter. Pour plus d’informations, consultez « Personnalisation de l’analyse avec des packs CodeQL ».

La commande codeql resolve packs est utile pour diagnostiquer les problèmes lorsque le CodeQL CLI ne parvient pas à localiser les packs de requêtes que vous vous attendez à être disponibles pour l'analyse.

Remarque

La codeql resolve packs commande est disponible dans les CodeQL CLI versions 2.19.0 et ultérieures. Pour les versions antérieures de la CLI, vous devez exécuter la commande codeql resolve qlpacks, qui produit un résultat similaire, mais moins détaillé.

Étapes suivantes

Pour savoir comment préparer votre code à être analysé par CodeQL CLI, consultez Préparation de votre code pour l’analyse CodeQL.