Skip to main content

resolve queries

[Plomberie profonde] DĂ©veloppe les rĂ©pertoires de requĂȘtes et les spĂ©cifications de suite.

Qui peut utiliser cette fonctionnalité ?

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

Remarque

Ce contenu dĂ©crit la version la plus rĂ©cente de CodeQL CLI. Pour plus d’informations sur cette version, consultez https://github.com/github/codeql-cli-binaries/releases.

Pour voir les dĂ©tails des options disponibles pour cette commande dans une version antĂ©rieure, exĂ©cutez la commande avec l’option --help dans votre terminal.

Synopsis

Shell
codeql resolve queries <options>... -- <query|dir|suite|pack>...

Description

[Plomberie profonde] DĂ©veloppe les rĂ©pertoires de requĂȘtes et les spĂ©cifications de suite.

Cette commande de plomberie est chargĂ©e d’étendre les paramĂštres de ligne de commande des sous-commandes qui peuvent exĂ©cuter plusieurs requĂȘtes, Ă  une liste de fichiers .ql individuels Ă  exĂ©cuter.

Si elle est exĂ©cutĂ©e sans argument, elle affiche un message d’aide incluant une liste de dĂ©finitions de suite de requĂȘtes « connues Â» trouvĂ©es dans les packs QL disponibles pour le flux d’erreurs standard, et retourne une liste vide de requĂȘtes.

Options

Options principales

<query|dir|suite|pack>...

[Obligatoire] RequĂȘtes Ă  exĂ©cuter. Chaque argument se prĂ©sente sous la forme scope/name@range:path oĂč :

  • scope/name est le nom qualifiĂ© d’un pack CodeQL.
  • range est une plage semver.
  • path est un chemin de systĂšme de fichiers.

Si scope/name est spĂ©cifiĂ©, range et path sont facultatifs. Un range manquant implique la derniĂšre version du pack spĂ©cifiĂ©. Un path manquant implique la suite de requĂȘtes par dĂ©faut du pack spĂ©cifiĂ©.

path peut ĂȘtre, au choix, un fichier de requĂȘte *.ql, un rĂ©pertoire contenant une ou plusieurs requĂȘtes ou un fichier de suite de requĂȘtes .qls. Si aucun nom de pack n’est spĂ©cifiĂ©, un path doit ĂȘtre fourni et sera interprĂ©tĂ© comme relatif au rĂ©pertoire de travail actuel du processus en cours.

Pour spĂ©cifier un path qui contient un littĂ©ral @ ou :, utilisez path: comme prĂ©fixe de l’argument, comme suit : path:directory/with:and@/chars.

Si scope/name et path sont spĂ©cifiĂ©s, path ne peut pas ĂȘtre absolu. Il est considĂ©rĂ© comme relatif Ă  la racine du pack CodeQL.

--format=<fmt>

SĂ©lectionne le format de sortie. Les options sont les suivantes :

text (par dĂ©faut)  : Liste orientĂ©e ligne des noms de chemin.

json : Liste simple des noms de chemin sous forme de chaĂźnes.

bylanguage : ReprĂ©sentation JSON plus complĂšte qui regroupe les requĂȘtes par extracteur avec lequel elles fonctionnent, dĂ©duit de leurs dĂ©pendances de bibliothĂšque - LĂ©gĂšrement plus cher Ă  calculer.

installedpacks : [Plomberie profonde] ReprĂ©sentation JSON listant les packs de requĂȘtes CodeQL qui sont rĂ©fĂ©rencĂ©s directement ou Ă  l’intĂ©rieur d’une suite de requĂȘtes et qui ne sont pas disponibles en local.

Options pour trouver des packs QL (qui peuvent ĂȘtre nĂ©cessaires pour interprĂ©ter les suites de requĂȘtes)

--search-path=<dir>[:<dir>...]

Liste des rĂ©pertoires sous lesquels les packs QL peuvent ĂȘtre trouvĂ©s. Chaque rĂ©pertoire peut ĂȘtre un pack QL (ou un bundle de packs contenant un fichier .codeqlmanifest.json Ă  la racine) ou le parent immĂ©diat d’un ou plusieurs de ces rĂ©pertoires.

Si le chemin contient plusieurs rĂ©pertoires, leur ordre dĂ©finit la prioritĂ© entre eux : quand un nom de pack qui doit ĂȘtre rĂ©solu est mis en correspondance dans plusieurs arborescences de rĂ©pertoires, celle donnĂ©e en premier gagne.

Le pointage de ce chemin vers une extraction du dĂ©pĂŽt CodeQL open source devrait fonctionner lors de l’interrogation d’un des langages qui y rĂ©sident.

Si vous avez extrait le dĂ©pĂŽt CodeQL en tant que frĂšre de la chaĂźne d’outils CodeQL dĂ©compressĂ©e, vous n’avez pas besoin de donner cette option ; ces rĂ©pertoires frĂšres sont toujours recherchĂ©s pour les packs QL qui ne peuvent pas ĂȘtre trouvĂ©s autrement. (Si cette valeur par dĂ©faut ne fonctionne pas, il est fortement recommandĂ© de configurer --search-path une fois pour toutes dans un fichier de configuration par utilisateur).

(Remarque : Sur Windows, le sĂ©parateur de chemin est ;.)

--additional-packs=<dir>[:<dir>...]

Si cette liste de rĂ©pertoires est donnĂ©e, des packs y sont recherchĂ©s avant ceux indiquĂ©s dans --search-path. L’ordre entre eux n’a pas d’importance ; il s’agit d’une erreur si un nom de pack est trouvĂ© dans deux rĂ©pertoires diffĂ©rents de cette liste.

Cette option est utile si vous dĂ©veloppez temporairement une nouvelle version d’un pack qui apparaĂźt aussi dans le chemin par dĂ©faut. En revanche, il n’est pas recommandĂ© de remplacer cette option dans un fichier de configuration ; certaines actions internes ajoutent cette option Ă  la volĂ©e, remplaçant toute valeur configurĂ©e.

(Remarque : Sur Windows, le sĂ©parateur de chemin est ;.)

Options pour configurer le gestionnaire de package CodeQL

--registries-auth-stdin

Permet de vous authentifier auprÚs des registres de conteneurs GitHub Enterprise Server en passant une liste de paires <registry_url>=<token> séparées par des virgules.

Par exemple, vous pouvez passer https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2 pour vous authentifier auprĂšs de deux instances GitHub Enterprise Server.

Cela remplace les variables d’environnement CODEQL_REGISTRIES_AUTH et GITHUB_TOKEN. Si vous avez seulement besoin de vous authentifier auprùs du registre de conteneurs github.com, vous pouvez vous authentifier en utilisant l’option plus simple --github-auth-stdin.

--github-auth-stdin

Permet de vous authentifier auprĂšs du registre de conteneurs github.com en passant un jeton github.com GitHub Apps ou un jeton d’accĂšs personnel via une entrĂ©e standard.

Pour vous authentifier auprùs des registres de conteneurs GitHub Enterprise Server, passez --registries-auth-stdin ou utilisez la variable d’environnement CODEQL_REGISTRIES_AUTH.

Cela remplace la variable d’environnement GITHUB_TOKEN.

Options courantes

-h, --help

Affiche ce texte d’aide.

-J=<opt>

[AvancĂ©] Donne une option Ă  l’environnement JVM exĂ©cutant la commande.

(Attention, les options contenant des espaces ne sont pas gérées correctement.)

-v, --verbose

Augmente de façon incrémentielle le nombre de messages de progression affichés.

-q, --quiet

Diminue de façon incrémentielle le nombre de messages de progression affichés.

--verbosity=<level>

[Avancé] Définit explicitement le niveau de détail sur errors, warnings, progress, progress+, progress++ ou progress+++. Remplace -v et -q.

--logdir=<dir>

[AvancĂ©] Écrit des journaux dĂ©taillĂ©s dans un ou plusieurs fichiers du rĂ©pertoire donnĂ©, avec des noms gĂ©nĂ©rĂ©s qui incluent des horodatages et le nom de la sous-commande en cours d’exĂ©cution.

(Pour écrire un fichier journal avec un nom sur lequel vous avez un contrÎle total, donnez plutÎt --log-to-stderr et redirigez stderr comme vous le souhaitez.)

--common-caches=<dir>

[AvancĂ©] ContrĂŽle l’emplacement des donnĂ©es en cache sur le disque qui persisteront entre plusieurs exĂ©cutions de l’interface CLI, telles que les packs QL tĂ©lĂ©chargĂ©s et les plans de requĂȘte compilĂ©s. S’il n’est pas dĂ©fini explicitement, il s’agit par dĂ©faut d’un rĂ©pertoire nommĂ© .codeql dans le rĂ©pertoire de base de l’utilisateur. S’il n’existe pas dĂ©jĂ , il est créé.

Disponible depuis v2.15.2.