Skip to main content

database index-files

[Plomberie] Indexe des fichiers autonomes avec un extracteur CodeQL donné.

Qui peut utiliser cette fonctionnalité ?

GitHub CodeQL est concédé sous licence par utilisateur lors de l’installation. Vous pouvez utiliser CodeQL uniquement pour certaines tâches soumises aux restrictions de licence. Pour plus d’informations, consultez « À propos de CodeQL CLI ».

Si vous disposez d’une licence GitHub Advanced Security, vous pouvez utiliser CodeQL pour l’analyse automatisée, l’intégration continue et la livraison continue. Pour plus d’informations, consultez « À propos de GitHub Advanced Security ».

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 database index-files --language=<lang> [--threads=<num>] [--ram=<MB>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>

Description

[Plomberie] Indexe des fichiers autonomes avec un extracteur CodeQL donné.

Cette commande sélectionne un ensemble de fichiers dans le répertoire de travail spécifié et leur applique l’extracteur donné. Par défaut, tous les fichiers sont sélectionnés. Les appels typiques spécifient des options pour restreindre l’ensemble des fichiers inclus.

Les options --include, --exclude et --prune prennent toutes des modèles de glob, qui peuvent utiliser les caractères génériques suivants :

  • Un seul « ? » correspond à un caractère autre qu’une barre oblique et une barre oblique inverse.
  • Un seul « * » correspond à une suite de caractères autres qu’une barre oblique et une barre oblique inverse.
  • Le modèle « ** » correspond à zéro, un ou plusieurs composants de répertoire complets.

Options

Options principales

<database>

[Obligatoire] Chemin de la base de données CodeQL en cours de construction. Doit avoir été préparé pour l’extraction avec codeql database init.

-l, --language=<lang>

[Obligatoire] Extracteur qui doit être utilisé pour indexer les fichiers correspondants.

-j, --threads=<num>

Demande à l’extracteur d’utiliser le nombre de threads spécifié. Cette option est passée à l’extracteur en tant que suggestion. Si la variable d’environnement CODEQL_THREADS est définie, la valeur de la variable d’environnement est prioritaire sur cette option.

Vous pouvez passer 0 pour utiliser un thread par cœur sur la machine ou -N pour laisser N cœurs inutilisés (sauf si au moins un thread est toujours utilisé).

-M, --ram=<MB>

Demande à l’extracteur d’utiliser la quantité de mémoire spécifiée. Cette option est passée à l’extracteur en tant que suggestion. Si la variable d’environnement CODEQL_RAM est définie, la valeur de la variable d’environnement est prioritaire sur cette option.

--working-dir=<dir>

[Avancé] Répertoire dans lequel la commande spécifiée doit être exécutée. Si cet argument n’est pas fourni, la commande est exécutée dans la valeur de --source-root passée à codeql database create, le cas échéant. Si aucun argument --source-root n’est fourni, la commande est exécutée dans le répertoire de travail actif.

Options pour contrôler le comportement des extracteurs

-O, --extractor-option=<extractor-option-name=value>

Définit les options pour les extracteurs CodeQL. extractor-option-name doit être de la forme extracteur_nom.groupe1.groupe2.option_nom ou groupe1.groupe2.option_nom. Si extractor_option_name commence par un nom d’extracteur, l’extracteur indiqué doit déclarer l’option groupe1.groupe2.option_nom. Sinon, tout extracteur qui déclare l’option groupe1.groupe2.option_nom aura l’option définie. value peut être n’importe quelle chaîne qui ne contient pas de nouvelle ligne.

Vous pouvez utiliser cette option de ligne de commande à plusieurs reprises pour définir plusieurs options d’extracteur. Si vous fournissez plusieurs valeurs pour la même option d’extracteur, le comportement dépend du type attendu par l’option d’extracteur. Les options de chaîne utilisent la dernière valeur fournie. Les options de tableau utilisent toutes les valeurs fournies, dans l’ordre. Les options d’extracteur spécifiées à l’aide de cette option de ligne de commande sont traitées après les options d’extracteur fournies via --extractor-options-file.

Lorsqu’elles sont passées à codeql database init ou codeql database begin-tracing, les options sont appliquées uniquement à l’environnement de traçage indirect. Si votre workflow effectue également des appels à codeql database trace-command, les options doivent également y être passées si vous le souhaitez.

Consultez https://codeql.github.com/docs/codeql-cli/extractor-options pour plus d’informations sur les options d’extracteur CodeQL, notamment sur la façon de lister les options déclarées par chaque extracteur.

--extractor-options-file=<extractor-options-bundle-file>

Spécifie les fichiers de bundle d’options d’extracteur. Un fichier bundle d’options d’extracteur est un fichier JSON (extension .json) ou un fichier YAML (extension .yaml ou .yml) qui définit les options de l’extracteur. Le fichier doit avoir la clé de mappage de niveau supérieur « extractor » et, dessous, les noms d’extracteur en tant que clés de mappage de deuxième niveau. Les autres niveaux de mappage représentent les groupes d’extracteurs imbriqués, et les options de chaîne et de tableau sont des entrées de mappage avec des valeurs de chaîne et de tableau.

Les fichiers de bundle d’options d’extracteur sont lus dans l’ordre dans lequel ils sont spécifiés. Si des fichiers de bundle d’options d’extracteur différents spécifient la même option d’extracteur, le comportement dépend du type attendu par l’option d’extracteur. Les options de chaîne utilisent la dernière valeur fournie. Les options de tableau utilisent toutes les valeurs fournies, dans l’ordre. Les options d’extracteur spécifiées à l’aide de cette option de ligne de commande sont traitées avant les options d’extracteur fournies via --extractor-option.

Lorsqu’elles sont passées à codeql database init ou codeql database begin-tracing, les options sont appliquées uniquement à l’environnement de traçage indirect. Si votre workflow effectue également des appels à codeql database trace-command, les options doivent également y être passées si vous le souhaitez.

Consultez https://codeql.github.com/docs/codeql-cli/extractor-options pour plus d’informations sur les options d’extracteur CodeQL, notamment sur la façon de lister les options déclarées par chaque extracteur.

Options pour limiter l’ensemble des fichiers indexés

--include-extension=<.ext>

Inclut tous les fichiers de l’arborescence de répertoires de recherche qui ont l’extension donnée. En règle générale, vous devez inclure le point avant l’extension. Par exemple, le fait de passer --include-extension .xml inclut tous les fichiers avec l’extension « .xml ». Cette option n’est pas compatible avec les options --include annulées.

--include=<glob>

Inclut tous les fichiers et répertoires dans l’arborescence de répertoires de recherche qui correspondent au glob donné, en utilisant le chemin relatif de chaque fichier et répertoire à partir du répertoire de recherche. Si le glob commence par un caractère !, les fichiers et répertoires correspondants sont exclus.

Les options --include sont traitées dans l’ordre, les options suivantes remplaçant les précédentes. Par exemple, --include ** --include !sub/*.ts --include sub/main.* inclut sub/main.ts (car il est inclus par sub/main.*), exclut sub/index.ts (car il est exclu par !sub/*.ts) et inclut sub/test.js (car il est inclus par ** sans être exclu par la suite).

--also-match=<glob>

Exige que tous les résultats correspondent également au glob donné, en utilisant le chemin relatif de chaque fichier et répertoire à partir du répertoire de recherche. Cette option a la même structure et la même interprétation que --include, mais spécifie une séquence distincte de globs qui sont appliqués conjointement avec --include.

--exclude=<glob>

Exclut tous les fichiers et répertoires qui correspondent au glob donné, en utilisant le chemin relatif de chaque fichier et répertoire à partir du répertoire de recherche. Cette option remplace toutes les options include. Cette option n’est pas compatible avec les options --include annulées.

--prune=<glob>

Exclut tous les fichiers et répertoires qui correspondent au glob donné, en utilisant le chemin relatif de chaque fichier et répertoire à partir du répertoire de recherche. Cette option remplace toutes les options include. Cette option n’est pas compatible avec les options --include annulées.

--size-limit=<bytes>

Exclut tous les fichiers dont la taille dépasse la limite donnée. La limite de taille est exprimée en octets, ou en kibioctets (Kio) avec le suffixe « k », en mébioctets (Mio) avec le suffixe « m » et en gibioctet (Gio) avec le suffixe « g ». Cette option remplace toutes les options include.

--total-size-limit=<bytes>

Fait en sorte que la commande se ferme avec une erreur si la taille combinée de tous les fichiers résolus dépasse la limite donnée. La limite de taille est exprimée en octets, ou en kibioctets (Kio) avec le suffixe « k », en mébioctets (Mio) avec le suffixe « m » et en gibioctet (Gio) avec le suffixe « g ».

Suit les liens symboliques vers leurs cibles.

--[no-]find-any

Recherche au maximum une correspondance (par opposition à toutes les correspondances).

Disponible depuis v2.11.3.

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.