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
codeql database init --source-root=<dir> [--language=<lang>[,<lang>...]] [--github-auth-stdin] [--github-url=<url>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>
codeql database init --source-root=<dir> [--language=<lang>[,<lang>...]] [--github-auth-stdin] [--github-url=<url>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>
Description
[Plomberie] Crée une base de données CodeQL vide.
CrĂ©e une structure squelette pour une base de donnĂ©es CodeQL qui nâa pas encore de jeu de donnĂ©es QL brut, mais qui est prĂȘte pour exĂ©cuter les Ă©tapes de lâextracteur. Une fois cette commande terminĂ©e, exĂ©cute une ou plusieurs commandes codeql database trace-command suivies de codeql database finalize pour prĂ©parer la base de donnĂ©es Ă ĂȘtre interrogĂ©e.
(Une partie de ce quâelle fait consiste Ă rĂ©soudre lâemplacement du pack de langages appropriĂ© et Ă le stocker dans les mĂ©tadonnĂ©es de la base de donnĂ©es, afin de ne pas avoir Ă le refaire Ă chaque commande dâextraction. Il nâest pas valide de toute façon de changer dâextracteurs au milieu dâune opĂ©ration dâextraction.)
Options
Options principales
<database>
[Obligatoire] Chemin vers la base de données CodeQL à créer. Ce répertoire est créé et ne doit pas déjà exister (mais son parent oui).
Si lâoption --db-cluster
est donnĂ©e, il ne sâagit pas de la base de donnĂ©es elle-mĂȘme, mais dâun rĂ©pertoire qui contiendra les bases de donnĂ©es pour plusieurs langages gĂ©nĂ©rĂ©es Ă partir de la mĂȘme racine source.
Il est important que ce répertoire ne se trouve pas à un emplacement avec lequel le processus de génération interférera. Par exemple, le répertoire target
dâun projet Maven ne serait pas un choix appropriĂ©.
-s, --source-root=<dir>
[Obligatoire] RĂ©pertoire du code source racine. Dans de nombreux cas, il sâagit de la racine de lâextraction. Les fichiers quâil contient sont considĂ©rĂ©s comme les fichiers sources principaux de cette base de donnĂ©es. Dans certains formats de sortie, les fichiers sont rĂ©fĂ©rencĂ©s par leur chemin relatif Ă partir de ce rĂ©pertoire.
--[no-]overwrite
[AvancĂ©] Si la base de donnĂ©es existe dĂ©jĂ , elle la supprime et poursuit avec cette commande au lieu dâĂ©chouer. Si le rĂ©pertoire existe, mais quâil ne ressemble pas Ă une base de donnĂ©es, une erreur est levĂ©e.
--[no-]force-overwrite
[AvancĂ©] Si la base de donnĂ©es existe dĂ©jĂ , la supprimer mĂȘme si elle ne ressemble pas Ă une base de donnĂ©es et poursuivre avec cette commande au lieu dâĂ©chouer. Cette option doit ĂȘtre utilisĂ©e avec prudence, car elle peut supprimer de maniĂšre rĂ©cursive lâintĂ©gralitĂ© du rĂ©pertoire de la base de donnĂ©es.
--codescanning-config=<file>
[AvancĂ©] Lit un fichier de configuration dâAnalyse du code spĂ©cifiant les options de crĂ©ation des bases de donnĂ©es CodeQL et les requĂȘtes Ă exĂ©cuter dans les Ă©tapes ultĂ©rieures. Pour plus dâinformations sur le format de ce fichier de configuration, reportez-vous Ă Personnalisation de votre configuration avancĂ©e pour lâanalyse de code. Pour exĂ©cuter des requĂȘtes Ă partir de ce fichier Ă une Ă©tape ultĂ©rieure, appelez codeql database analyze sans aucune autre requĂȘte spĂ©cifiĂ©e.
--[no-]db-cluster
Au lieu de crĂ©er une base de donnĂ©es unique, crĂ©ez un « cluster » de bases de donnĂ©es pour diffĂ©rents langages, chacun dâeux Ă©tant un sous-rĂ©pertoire du rĂ©pertoire donnĂ© sur la ligne de commande.
-l, --language=<lang>[,<lang>...]
Langage utilisé pour analyser la nouvelle base de données.
Utilise codeql resolve languages pour obtenir la liste des extracteurs de langages enfichables trouvés sur le chemin de recherche.
Lorsque lâoption --db-cluster
est donnĂ©e, elle peut apparaĂźtre plusieurs fois, ou la valeur peut ĂȘtre une liste de langages sĂ©parĂ©s par des virgules.
Si cette option est omise et que la racine source en cours dâanalyse est une extraction dâun dĂ©pĂŽt GitHub, lâinterface CLI de CodeQL effectue un appel Ă lâAPI GitHub pour tenter de dĂ©terminer automatiquement les langages Ă analyser. Notez que pour pouvoir effectuer cette opĂ©ration, un jeton PAT GitHub doit ĂȘtre fourni dans la variable dâenvironnement GITHUB_TOKEN ou via une entrĂ©e standard en utilisant lâoption --github-auth-stdin
.
--build-mode=<mode>
Mode de génération qui sera utilisé pour créer la base de données.
Choisissez votre mode de génération en fonction de la langue que vous analysez :
none
: la base de données est créée sans générer la racine source.
Disponible pour C#, Java, JavaScript/TypeScript, Python et Ruby.
autobuild
: la base de données est créée en tentant de générer automatiquement la racine source. Disponible pour C/C++, C#, Go, Java/Kotlin et Swift.
manual
: la base de donnĂ©es est créée en crĂ©ant la racine source Ă lâaide dâune commande de build spĂ©cifiĂ©e manuellement. Disponible pour C/C++, C#, Go, Java/Kotlin et Swift.
Lors de la crĂ©ation dâune base de donnĂ©es avec --command
, il nâest pas nĂ©cessaire de spĂ©cifier « --build-mode manual ».
Disponible depuis v2.16.4
.
--[no-]allow-missing-source-root
[AvancĂ©] Continue mĂȘme si la racine source spĂ©cifiĂ©e nâexiste pas.
--[no-]begin-tracing
[AvancĂ©] CrĂ©e des scripts qui peuvent ĂȘtre utilisĂ©s pour configurer le « traçage de build indirect », qui permet une intĂ©gration aux workflows de build existants lorsquâune commande de build explicite nâest pas disponible. Pour savoir quand et comment utiliser cette fonctionnalitĂ©, reportez-vous Ă notre documentation sur PrĂ©paration de votre code pour lâanalyse CodeQL.
Options de calcul de la ligne de base
--[no-]calculate-baseline
[AvancĂ©] Calcule les informations de ligne de base sur le code en cours dâanalyse et les ajoute Ă la base de donnĂ©es. Par dĂ©faut, cette option est activĂ©e, sauf si la racine source est la racine dâun systĂšme de fichiers. Cet indicateur peut ĂȘtre utilisĂ© pour dĂ©sactiver ou forcer lâactivation du comportement, mĂȘme Ă la racine du systĂšme de fichiers.
--[no-]sublanguage-file-coverage
[GitHub.com et GitHub Enterprise Server v3.12.0+ uniquement] Utilisez les informations de couverture des fichiers de sous-langage. Cela permet de calculer, dâafficher et dâexporter des informations de couverture de fichiers distinctes pour les langages qui partagent un extracteur CodeQL comme C et C++, Java et Kotlin, et JavaScript et TypeScript.
Disponible depuis v2.15.2
.
Options de sĂ©lection de lâextracteur
--search-path=<dir>[:<dir>...]
Liste des rĂ©pertoires sous lesquels les packs dâextracteur peuvent ĂȘtre trouvĂ©s. Les rĂ©pertoires peuvent ĂȘtre les packs dâextracteur eux-mĂȘmes ou les rĂ©pertoires qui contiennent les extracteurs en tant que sous-rĂ©pertoires immĂ©diats.
Si le chemin contient plusieurs arborescences de répertoires, leur ordre définit la priorité entre elles : si le langage cible est mis en correspondance dans plusieurs arborescences de répertoires, celle donnée en premier gagne.
Les extracteurs en bundle avec la chaĂźne dâoutils CodeQL elle-mĂȘme sont toujours trouvĂ©s, mais si vous devez utiliser des extracteurs distribuĂ©s sĂ©parĂ©ment, vous devez donner cette option (ou, mieux encore, configurer --search-path
dans un fichier de configuration par utilisateur).
(Remarque : Sur Windows, le séparateur de chemin est ;
.)
Options pour configurer lâappel de lâAPI GitHub visant Ă dĂ©tecter automatiquement les langages.
-a, --github-auth-stdin
Accepte un jeton GitHub Apps ou un jeton dâaccĂšs personnel via une entrĂ©e standard.
Cela remplace la variable dâenvironnement GITHUB_TOKEN.
-g, --github-url=<url>
URL de lâinstance GitHub Ă utiliser. Si elle est omise, lâinterface CLI tente de la dĂ©tecter automatiquement Ă partir du chemin dâextraction et, si cela nâest pas possible, la valeur par dĂ©faut est https://github.com/
Options pour configurer le gestionnaire de package.
--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
.
Options de configuration du suivi Windows
--trace-process-name=<process-name>
[Windows uniquement] Lors de lâinitialisation du traçage, injectez le traceur dans un processus parent de lâinterface CLI de CodeQL dont le nom correspond Ă cet argument. Si plusieurs processus parents ont ce nom, le processus le plus bas de lâarborescence de processus est sĂ©lectionnĂ©. Cette option remplace --trace-process-level
, donc si les deux sont passées, seule cette option sera utilisée.
--trace-process-level=<process-level>
[Windows uniquement] Lors de lâinitialisation du traçage, injecte le traceur au nombre spĂ©cifiĂ© de parents au-dessus du processus actuel, avec 0 correspondant au processus qui appelle lâinterface CLI de CodeQL. Le comportement par dĂ©faut de lâinterface CLI si aucun argument nâest passĂ© consiste Ă injecter dans le parent du processus appelant, avec certains cas spĂ©ciaux pour GitHub Actions et Azure Pipelines.
Options pour configurer le traçage de build indirect
--no-tracing
[AvancĂ©] Ne trace pas la commande spĂ©cifiĂ©e, mais lâutilise pour produire directement toutes les donnĂ©es nĂ©cessaires.
--extra-tracing-config=<tracing-config.lua>
[AvancĂ©] Chemin du fichier de configuration dâun traceur. Il peut ĂȘtre utilisĂ© pour modifier le comportement du traceur de build. Il peut ĂȘtre utilisĂ© pour sĂ©lectionner les processus du compilateur qui sâexĂ©cutent dans le cadre de la commande de build et dĂ©clencher lâexĂ©cution dâautres outils. Les extracteurs fournissent des fichiers de configuration de traceur par dĂ©faut qui devraient fonctionner dans la plupart des cas.
Options pour contrĂŽler le comportement des extracteurs : Ă appliquer uniquement Ă lâenvironnement de traçage indirect
-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 transmises Ă codeql database init ou codeql database begin-tracing
, les options seront uniquement appliquĂ©es Ă 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 transmises Ă codeql database init ou codeql database begin-tracing
, les options seront uniquement appliquĂ©es Ă 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 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
.