Skip to main content

database init

[プラミング] 空の CodeQL デヌタベヌスを䜜成したす。

この機胜を䜿甚できるナヌザヌに぀いお

CodeQL は、次の皮類のリポゞトリで䜿甚できたす:

  • GitHub.com のパブリック リポゞトリに぀いおは、「GitHub CodeQL の䜿甚条件」を参照しおください
  • GitHub Code Security が有効になっおいる GitHub Team たたは GitHub Enterprise Cloud 䞊の organization 所有のリポゞトリ

この蚘事の内容

メモ

このコンテンツでは、CodeQL CLI の最新リリヌスに぀いお説明したす。 このリリヌスに぀いお詳しくは、 https://github.com/github/codeql-cli-binaries/releases をご芧ください。

以前のリリヌスの、このコマンドで䜿えるオプションを詳しく確認するには、タヌミナルで --help オプションを指定しおコマンドを実行しおください。

構文

Shell
codeql database init --source-root=<dir> [--language=<lang>[,<lang>...]] [--github-auth-stdin] [--github-url=<url>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>

説明

[プラミング] 空の CodeQL デヌタベヌスを䜜成したす。

ただ生の QL デヌタセットは存圚しないが、抜出ステップを実行する準備ができおいる CodeQL デヌタベヌスのスケルトン構造を䜜成したす。 このコマンドが完了したら、1 ぀以䞊の codeql database trace-command コマンドを実行し、続いお codeql database finalize を実行しお、ク゚リ甚にデヌタベヌスを準備したす。

(この凊理の䞀郚ずしお行われるのは、適切な蚀語パックの保存先を解決し、それをデヌタベヌス メタデヌタに栌玍するこずです。これにより、各抜出コマンドで再実行する必芁はありたせん。 抜出操䜜の途䞭で゚クストラクタヌを切り替えるこずは、いずれにしおも無効です。)

[オプション]

䞻なオプション

<database>

[必須] 䜜成する CodeQL デヌタベヌスのパス。 このディレクトリは䜜成され、既に存圚しおいおは "なりたせん" (ただし、その芪は必芁です)。__

--db-cluster オプションを指定するず、これはデヌタベヌス自䜓ではなく、同じ゜ヌス ルヌトから構築された耇数の蚀語のデヌタベヌスを "含む" ディレクトリになりたす。__

このディレクトリは、構築プロセスが干枉する堎所に存圚しないこずが重芁です。 たずえば、Maven プロゞェクトの target ディレクトリは適切な遞択肢ではありたせん。

-s, --source-root=<dir>

[必須] ゜ヌス コヌドのルヌト ディレクトリ。 倚くの堎合、これはチェックアりト ルヌトになりたす。 その䞭のファむルは、このデヌタベヌスのプラむマリ ゜ヌス ファむルず芋なされたす。 䞀郚の出力圢匏では、このディレクトリからの盞察パスによっおファむルが参照されたす。

--[no-]overwrite

[詳现蚭定] デヌタベヌスが既に存圚する堎合、倱敗するのではなく、デヌタベヌスを削陀し、このコマンドを続行したす。 ディレクトリが存圚するが、デヌタベヌスのようには芋えない堎合、゚ラヌがスロヌされたす。

--[no-]force-overwrite

[詳现蚭定] デヌタベヌスが既に存圚する堎合、倱敗するのではなく、デヌタベヌスを削陀しお、このコマンドを続行したす。 このオプションは、デヌタベヌス ディレクトリ党䜓を再垰的に削陀する可胜性があるため、泚意しお䜿甚する必芁がありたす。

--codescanning-config=<file>

[詳现蚭定] CodeQL デヌタベヌスの䜜成方法ず埌の手順で実行するク゚リに぀いおのオプションを指定した Code Scanning 構成ファむルを読み取りたす。 この構成ファむルの圢匏に぀いお詳しくは、「コヌド スキャン甚の高床なセットアップのカスタマむズ」を参照しおください。 埌の手順でこのファむルからク゚リを実行するには、他のク゚リを指定せずに codeql database analyze を呌び出したす。

--[no-]db-cluster

1 ぀のデヌタベヌスを䜜成する代わりに、異なる蚀語のデヌタベヌスからなる "クラスタヌ" を䜜成したす。そのそれぞれは、コマンド ラむンで指定したディレクトリのサブディレクトリです。

-l, --language=<lang>[,<lang>...]

新しいデヌタベヌスが分析に䜿甚される蚀語。

怜玢パスで芋぀かったプラグ可胜な蚀語゚クストラクタヌの䞀芧を取埗するには、codeql resolve languages を䜿甚したす。

--db-cluster オプションを指定しおいる堎合は、これを耇数回䜿甚できたす。たたは、倀をコンマ区切りの蚀語のリストにするこずができたす。

このオプションを省略するず、分析察象の゜ヌス ルヌトが GitHub リポゞトリのチェックアりトである堎合は、CodeQL CLI で GitHub API が呌び出され、分析する蚀語を自動的に決定するこずが詊みられたす。 これを行うには、環境倉数 GITHUB_TOKEN で、たたは --github-auth-stdin オプションを䜿甚しお暙準入力経由で GitHub PAT トヌクンを指定する必芁があるこずに泚意しおください。

--build-mode=<mode>

デヌタベヌスの䜜成に䜿甚されるビルド モヌド。

分析する蚀語に基づいおビルド モヌドを遞択したす。

none: ゜ヌス ルヌトを構築せずにデヌタベヌスが䜜成されたす。 C#、Java、JavaScript/TypeScript、Python、Ruby で䜿甚できたす。

autobuild: ゜ヌス ルヌトを自動的にビルドしようずするず、デヌタベヌスが䜜成されたす。 C/C++、C#、Go、Java/Kotlin、Swift で䜿甚できたす。

manual: デヌタベヌスは、手動で指定したビルド コマンドを䜿甚しお゜ヌス ルヌトをビルドするこずによっお䜜成されたす。 C/C++、C#、Go、Java/Kotlin、Swift で䜿甚できたす。

--command を䜿甚しおデヌタベヌスを䜜成する堎合、'--build-mode manual' を远加で指定する必芁はありたせん。

v2.16.4 以降で䜿甚できたす。

--[no-]allow-missing-source-root

[詳现蚭定] 指定した゜ヌス ルヌトが存圚しない堎合でも先に進みたす。

--[no-]begin-tracing

[詳现蚭定] "間接ビルド トレヌス" を蚭定するために䜿甚できるスクリプトをいく぀か䜜成したす。これにより、明瀺的なビルド コマンドが䜿甚できない堎合に既存のビルド ワヌクフロヌぞの統合が可胜になりたす。 どのような堎合に、どのような方法でこの機胜を䜿甚するかに぀いおは、「CodeQL 分析のためのコヌドの準備」のドキュメントを参照しおください。

ベヌスラむン蚈算のオプション

--[no-]calculate-baseline

[詳现蚭定] 分析察象のコヌドに関するベヌスラむン情報を蚈算し、デヌタベヌスに远加したす。 既定では、これは゜ヌス ルヌトがファむルシステムのルヌトである堎合を陀き、有効になりたす。 このフラグを䜿甚しお、この動䜜を無効にするか、ファむルシステムのルヌトでも匷制的に有効にするこずができたす。

--[no-]sublanguage-file-coverage

[GitHub.com および GitHub Enterprise Server v3.12.0 以降のみ] サブ蚀語のファむル カバレッゞ情報を䜿甚したす。 これにより、C ず C++、Java ず Kotlin、JavaScript、TypeScript などの CodeQL ゚クストラクタヌを共有する蚀語の個別のファむル カバレッゞ情報を蚈算、衚瀺、゚クスポヌトしたす。

v2.15.2 以降で䜿甚できたす。

゚クストラクタヌの遞択オプション

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

゚クストラクタヌ パックが芋぀かる可胜性があるディレクトリのリスト。 ディレクトリは、゚クストラクタヌ パック自䜓、たたぱクストラクタヌを盎接サブディレクトリずしお含むディレクトリのいずれかです。

パスに耇数のディレクトリ ツリヌが含たれおいる堎合、それらの順序によっおそれらの間の優先順䜍が定矩されたす。タヌゲット蚀語が耇数のディレクトリ ツリヌで䞀臎する堎合、最初に指定されたものが優先されたす。

CodeQL ツヌルチェヌン自䜓にバンドルされおいる゚クストラクタヌは垞に怜出されたすが、個々に配垃された゚クストラクタヌを䜿甚する必芁がある堎合は、このオプションを指定する必芁がありたす (たたは、より良い方法ずしお、ナヌザヌごずの構成ファむルで --search-path を蚭定したす)。

(泚: Windows では、パスの区切り蚘号は ; です)。

GitHub API を呌び出しお蚀語を自動怜出する方法を構成するためのオプション。

-a, --github-auth-stdin

暙準入力を䜿甚しお、GitHub Apps トヌクンたたは個人甚アクセス トヌクンを受け入れたす。

これにより、GITHUB_TOKEN 環境倉数がオヌバヌラむドされたす。

-g, --github-url=<url>

䜿甚する GitHub むンスタンスの URL。 省略した堎合、CLI でチェックアりト パスからこれを自動怜出するこずが詊みられたす。これができない堎合は、既定で https://github.com/ になりたす

パッケヌゞ マネヌゞャヌを構成するためのオプション。

--registries-auth-stdin

<registry_url>=<token> ペアのコンマ区切りリストを枡すこずで、GitHub Enterprise Server コンテナヌ レゞストリに察しお認蚌を行いたす。

たずえば、https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2 を枡しお、 2 ぀の GitHub Enterprise Server むンスタンスに察しお認蚌を行うこずができたす。

これを䜿っお、CODEQL_REGISTRIES_AUTH および GITHUB_TOKEN 環境倉数をオヌバヌラむドしたす。 github.com コンテナヌ レゞストリに察する認蚌のみが必芁な堎合は、代わりに、より単玔な --github-auth-stdin オプションを䜿甚しお認蚌できたす。

Windows トレヌスを構成するためのオプション

--trace-process-name=<process-name>

[Windows のみ] トレヌスを初期化するずきに、名前がこの匕数ず䞀臎する CodeQL CLI の芪プロセスにトレヌサヌを挿入したす。 この名前の芪プロセスが耇数ある堎合は、プロセス ツリヌ内で最も䞋䜍のプロセスが遞択されたす。 このオプションは --trace-process-level をオヌバヌラむドするため、䞡方を枡した堎合は、このオプションのみが䜿甚されたす。

--trace-process-level=<process-level>

[Windows のみ] トレヌス初期化時、珟圚のプロセスからこれだけ䞊䜍にトレヌサヌを挿入したす。0 は、CodeQL CLI を呌び出すプロセスに察応したす。 匕数が枡されない堎合の CLI のデフォルトの動䜜は、GitHub Actions ず Azure Pipelines のいく぀かの特殊なケヌスを䜿甚しお、呌び出しプロセスの芪に挿入したす。

間接ビルド トレヌスを構成するためのオプション

--no-tracing

[詳现蚭定] 指定したコマンドをトレヌスしたせん。代わりに、必芁なすべおのデヌタを盎接生成するために䜿甚したす。

--extra-tracing-config=<tracing-config.lua>

[詳现蚭定] トレヌサヌ構成ファむルのパス。 ビルド トレヌサヌの動䜜を倉曎するために䜿うこずができたす。 ビルド コマンドの䞀郚ずしお実行されるコンパむラ プロセスを遞び、他のツヌルの実行をトリガヌするために䜿甚できたす。 ゚クストラクタヌにより、ほずんどの状況で機胜する既定のトレヌサヌ構成ファむルが提䟛されたす。

抜出の動䜜を制埡するオプション: 間接トレヌス環境にのみ適甚

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

CodeQL ゚クストラクタヌのオプションを蚭定したす。 extractor-option-name は、extractor_name.group1.group2.option_name たたは group1.group2.option_name ずいう圢匏にする必芁がありたす。 extractor_option_name が゚クストラクタヌ名で始たる堎合、指定した゚クストラクタヌはオプション group1.group2.option_name を宣蚀する必芁がありたす。 それ以倖の堎合、オプション group1.group2.option_name を宣蚀する゚クストラクタヌにはオプションが蚭定されたす。 value は、改行を含たない任意の文字列にするこずができたす。

このコマンド ラむン オプションを繰り返し䜿甚しお、耇数の゚クストラクタヌ オプションを蚭定できたす。 同じ゚クストラクタヌのオプションに耇数の倀を指定する堎合、動䜜は、その゚クストラクタヌのオプションで想定されおいる型によっお異なりたす。 文字列オプションでは、指定した最埌の倀が䜿甚されたす。 配列オプションでは、指定したすべおの倀が順番に䜿甚されたす。 このコマンド ラむン オプションを䜿甚しお指定した゚クストラクタヌ オプションは、--extractor-options-file で指定した゚クストラクタヌ オプションの埌に凊理されたす。

codeql database init たたは codeql database begin-tracing に枡したオプションは、間接トレヌス環境にのみ適甚されたす。 ワヌクフロヌで codeql database trace-command の呌び出しも行う堎合は、必芁に応じおオプションも枡す必芁がありたす。

各゚クストラクタヌによっお宣蚀されたオプションの䞀芧を衚瀺する方法など、CodeQL ゚クストラクタヌ オプションに぀いお詳しくは、https://codeql.github.com/docs/codeql-cli/extractor-options を参照しおください。

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

゚クストラクタヌ オプションのバンドル ファむルを指定したす。 ゚クストラクタヌ オプション バンドル ファむルは、゚クストラクタヌ オプションを蚭定する JSON ファむル (拡匵子 .json) たたは YAML ファむル (拡匵子 .yaml たたは .yml) です。 ファむルには最䞊䜍レベルのマップ キヌ 'extractor' があり、その䞋に゚クストラクタヌ名が第 2 レベルのマップ キヌずしお含たれおいる必芁がありたす。 それ以降のレベルのマップは入れ子になった゚クストラクタヌ グルヌプを衚し、文字列ず配列のオプションは、文字列ず配列の倀を持぀マップ ゚ントリです。

゚クストラクタヌ オプション バンドル ファむルは、指定した順序で読み取られたす。 異なる゚クストラクタヌのオプションのバンドル ファむルで同じ゚クストラクタヌのオプションを指定する堎合、動䜜は、その゚クストラクタヌ オプションで想定されおいる型によっお異なりたす。 文字列オプションでは、指定した最埌の倀が䜿甚されたす。 配列オプションでは、指定したすべおの倀が順番に䜿甚されたす。 このコマンド ラむン オプションを䜿甚しお指定した゚クストラクタヌ オプションは、--extractor-option で指定した゚クストラクタヌ オプションよりも前に凊理されたす。

codeql database init たたは codeql database begin-tracing に枡したオプションは、間接トレヌス環境にのみ適甚されたす。 ワヌクフロヌで codeql database trace-command の呌び出しも行う堎合は、必芁に応じおオプションも枡す必芁がありたす。

各゚クストラクタヌによっお宣蚀されたオプションの䞀芧を衚瀺する方法など、CodeQL ゚クストラクタヌ オプションに぀いお詳しくは、https://codeql.github.com/docs/codeql-cli/extractor-options を参照しおください。

共通オプション

-h, --help

このヘルプ テキストを衚瀺したす。

-J=<opt>

[詳现蚭定] コマンドを実行しおいる JVM にオプションを指定したす

(スペヌスを含むオプションは正しく凊理されないこずに泚意しおください)。

-v, --verbose

出力される進行状況メッセヌゞの数を段階的に増やしたす。

-q, --quiet

出力される進行状況メッセヌゞの数を段階的に枛らしたす。

--verbosity=<level>

[詳现蚭定] 詳现レベルを、errors、warnings、progress、progress+、progress++、progress+++ のいずれかに明瀺的に蚭定したす。 -v ず -q がオヌバヌラむドされたす。

--logdir=<dir>

[詳现蚭定] タむムスタンプず実行䞭のサブコマンドの名前を含む生成された名前を䜿甚しお、指定されたディレクトリ内の 1 ぀たたは耇数のファむルに詳现なログを曞き蟌みたす

(完党に制埡できる名前でログ ファむルを曞き蟌むには、代わりに --log-to-stderr を指定し、必芁に応じお stderr をリダむレクトしたす)。

--common-caches=<dir>

[[詳现蚭定] ダりンロヌドした QL パックやコンパむル枈みク゚リ プランなど、CLI の耇数の実行間に保持される、ディスク䞊でキャッシュされたデヌタの堎所を制埡したす。 明瀺的に蚭定されない堎合、デフォルトではナヌザヌのホヌム ディレクトリに名前が付けられた .codeql ディレクトリになりたす。ただ存圚しない堎合は䜜成されたす。

v2.15.2 以降で䜿甚できたす。