This content describes the most recent release of the CodeQL CLI. For more information about this release, see https://github.com/github/codeql-cli-binaries/releases.
To see details of the options available for this command in an earlier release, run the command with the --help
option in your terminal.
構文
codeql resolve library-path (--query=<qlfile> | --dir=<dir> | --root-pack=<pkgname>) <options>...
説明
[ディープ プラミング] クエリの QL ライブラリ パスと dbscheme を決定します。
特定のクエリをコンパイルする必要がある QL ライブラリ パスを決定します。 この計算は、クエリのコンパイルが必要になる場合があるいくつかのサブコマンドで暗黙的に行われます。 (a) トラブルシューティングに役立ち、(b) 正確な制御が必要な特別な場合にパスを変更するための開始点を提供するために、別のプラミング コマンドとして公開されています。
QL クエリの言語の自動検出にも依存する可能性があるため、このコマンドを使って、クエリをコンパイルする言語と dbscheme も検出します。
このコマンドは非常に内部的であり、QL 言語のエコシステムが進化するにつれて、その動作や存在が大きな通知なしに変更される可能性があります。
主なオプション
--[no-]find-extractors
[詳細設定] クエリが依存する QL パックの extractor
フィールドの概要を出力に含めます。 これは少数のまれな内部ケースにのみ使われ、計算にさらに多くの作業が必要になる場合があるため、既定ではオンになっていません。
--format=<fmt>
出力形式を選びます。 以下を選択できます。
lines
"(既定値)": コマンド ライン引数を 1 行ずつ出力します。**
json
: すべてのデータを含む JSON オブジェクトを出力します。
path
: 計算されたライブラリ パスのみを出力します。
dbscheme
: 検出された dbscheme のみを出力します。
cache
: 既定のコンパイル キャッシュの場所を出力します。存在しない場合は何も出力しません。
呼び出しコマンドのコマンド ラインからのオプション
--search-path=<dir>[:<dir>...]
QL パックが見つかる可能性があるディレクトリの一覧。 各ディレクトリは、QL パック (またはルートに .codeqlmanifest.json
ファイルを含むパックのバンドル)、または 1 つ以上のこのようなディレクトリの直接の親ディレクトリのいずれかです。
パスに複数のディレクトリが含まれる場合、それらの順序によってそれらの間の優先順位が定義されます。解決する必要があるパック名が複数のディレクトリ ツリーで一致する場合は、最初に指定されたものが優先されます。
オープンソースの CodeQL リポジトリのチェックアウトでこれを指定すると、そこにある言語の 1 つを照会するときに機能するはずです。
アンパックされた CodeQL ツールチェーンの兄弟として CodeQL リポジトリをチェックアウトした場合は、このオプションを指定する必要はありません。他の方法では見つからない QL パックは、このような兄弟ディレクトリで常に検索されます (この既定値が機能しない場合、ユーザーごとの構成ファイルで --search-path
を一度にすべて設定することを強くお勧めします)。
(注: Windows では、パスの区切り記号は ;
です)。
--additional-packs=<dir>[:<dir>...]
このディレクトリの一覧が指定されている場合、パックは、--search-path
内のディレクトリの前に、これらのディレクトリで検索されます。 これらの間の順序は重要ではありません。この一覧の 2 つの異なる場所でパック名が見つかった場合はエラーです。
これは、既定のパスにも表示されるパックの新しいバージョンを一時的に開発している場合に役立ちます。 一方、構成ファイルでこのオプションを上書きすることは "お勧めしません"。一部の内部アクションでは、このオプションをオンザフライで追加し、構成された値がオーバーライドされます。**
(注: Windows では、パスの区切り記号は ;
です)。
--library-path=<dir>[:<dir>...]
[詳細設定] QL ライブラリの生インポート検索パスに追加されるディレクトリのオプションの一覧。 これは、QL パックとしてパッケージ化されていない QL ライブラリを使用している場合にのみ使用する必要があります。
(注: Windows では、パスの区切り記号は ;
です)。
--dbscheme=<file>
[詳細設定] コンパイルする必要がある dbscheme クエリを明示的に定義します。 これは、自分が何をしているかを確信している呼び出し元によってのみ指定される必要があります。
--compilation-cache=<dir>
[詳細設定] コンパイル キャッシュとして使用する追加のディレクトリを指定します。
--no-default-compilation-cache
[詳細設定] クエリを含む QL パックや CodeQL ツールチェーン ディレクトリなどの標準の場所でコンパイル キャッシュを使用しません。
CodeQL パッケージ マネージャーを構成するためのオプション
--registries-auth-stdin
\<registry_url>=\
たとえば、https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2
を渡して、
2 つの GitHub Enterprise Server インスタンスに対して認証を行うことができます。
これは、CODEQL_REGISTRIES_AUTH and GITHUB_TOKEN 環境変数をオーバーライドします。 github.com コンテナー レジストリに対する認証のみが必要な場合は、代わりに、より単純な --github-auth-stdin
オプションを使って認証できます。
--github-auth-stdin
標準入力を使って github.com GitHub Apps トークンまたは個人用アクセス トークンを渡すことにより、github.com コンテナー レジストリに対して認証を行います。
GitHub Enterprise Server コンテナー レジストリに対して認証を行うには、--registries-auth-stdin
を渡すか、CODEQL_REGISTRIES_AUTH 環境変数を使ってください。
これは、GITHUB_TOKEN 環境変数をオーバーライドします。
コンパイルする内容を指定するためのオプション
これらのオプションの 1 つだけを指定する必要があります。
--query=<qlfile>
コンパイルする QL ファイルへのパス。
そのディレクトリと親ディレクトリは、必要なパックを決定するために qlpack.yml またはレガシの queries.xml ファイルについて検索されます。
--dir=<dir>
コンパイルするクエリを含むパックのルート ディレクトリ。
--root-pack=<pkgname>
[詳細設定] 依存関係解決のルートとして使うパックの宣言名。
これは、検索パス内のどこかでパックの名前を見つけることができる場合に使います。 目的のルート パッケージの "ディスクの場所" がわかっている場合は、そこに .ql ファイルが含まれていることにして、代わりに --query
を使います。**
共通オプション
-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 をリダイレクトします)。