Configuration de CodeQL CLI
Pour exĂ©cuter les commandes CodeQL, vous devez configurer lâinterface CLI afin quâelle puisse accĂ©der aux outils, aux requĂȘtes et aux bibliothĂšques nĂ©cessaires Ă la crĂ©ation et Ă lâanalyse des bases de donnĂ©es.
CodeQL CLI peut ĂȘtre configurĂ© pour prendre en charge de nombreux cas dâusage et structures de rĂ©pertoires diffĂ©rents. Pour commencer rapidement, nous vous recommandons dâadopter une configuration relativement simple, comme indiquĂ© dans les Ă©tapes ci-dessous.
Si vous prĂ©voyez d'utiliser CodeQL CLI pour des recherches sur la sĂ©curitĂ© ou pour tester ou contribuer Ă des requĂȘtes, vous voudrez peut-ĂȘtre une configuration plus avancĂ©e de CodeQL CLI. Pour plus dâinformations, consultez « Installation avancĂ©e de l'interface CLI CodeQL ».
Si vous crĂ©ez CodeQL CLI dans votre systĂšme de CI, vous devez rendre le contenu complet de l'offre groupĂ©e CodeQL CLI disponible pour chaque serveur CI sur lequel vous souhaitez exĂ©cuter l'analyse CodeQL code scanning. Par exemple, vous pouvez configurer chaque serveur pour copier le bundle Ă partir dâun emplacement central interne et lâextraire. Vous pouvez Ă©galement utiliser lâAPI REST pour obtenir le bundle directement Ă partir de GitHub, bĂ©nĂ©ficiant ainsi des derniĂšres amĂ©liorations apportĂ©es aux requĂȘtes. Pour plus dâinformations, consultez Points de terminaison dâAPI REST pour les versions et les ressources de mise en production dans la documentation de lâAPI REST.
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
Le CodeQL CLI n'est actuellement pas compatible avec les distributions Linux non glibc telles que Alpine Linux (basée sur muslc).
1. TĂ©lĂ©charger lâarchive tar CodeQL CLI
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
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 tar CodeQL CLI
Extrayez lâarchive tar CodeQL CLI dans un rĂ©pertoire de votre choix.
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
Ă votrePATH
, afin de pouvoir exécuter le fichier exécutable uniquement commecodeql
.
Ă 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 est accessible par CodeQL pour que Visual Studio Code compile et exĂ©cute les requĂȘtes. Pour plus dâinformations sur la configuration de VS Code pour accĂ©der au CodeQL CLI, consultez Configuration de lâaccĂšs Ă la CLI CodeQL.
Test de la configuration de lâCodeQL CLI
AprĂšs avoir extrait le bundle de CodeQL CLI, 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 lePATH
.- Sinon,
/<extraction root>/codeql/codeql resolve packs
.
Si vous avez rĂ©ussi, vous devriez obtenir un rĂ©sultat similaire Ă 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'offre groupĂ©e CodeQL CLI extraite, qui est montrĂ© dans l'exemple prĂ©cĂ©dent en tant que <extraction root>
. Si lâCodeQL CLI ne peut pas localiser les qlpacks pour les langages attendus, vĂ©rifiez que vous avez tĂ©lĂ©chargĂ© le bundle CodeQL et non une copie autonome de lâCodeQL CLI.
Vous pouvez aussi exécuter codeql resolve languages
pour montrer les langages disponibles pour la création de base de données. Cette opération liste les langages pris en charge par défaut dans votre package CodeQL CLI.
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 qui devraient ĂȘtre disponibles pour lâanalyse.
Remarque
La commande codeql resolve packs
est disponible dans les données 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 Ă analyser par les donnĂ©es CodeQL CLI, reportez-vous Ă PrĂ©paration de votre code pour lâanalyse CodeQL.