Skip to main content

QL パックを解決する

インストールされている QL パックとその場所のリストを作成します。

GitHub CodeQL は、インストール時にユーザーごとにライセンスされます。 CodeQL は、ライセンスの制限の下で特定のタスクでのみ使用できます。 詳しくは、「CodeQL CLI について」を参照してください。

GitHub Advanced Security ライセンスがある場合は、CodeQL を使用して、自動分析、継続的インテグレーション、継続的デリバリーを行うことができます。 詳しくは、「GitHub Advanced Security について」を参照してください。

このコンテンツでは、CodeQL CLI の最新リリースについて説明します。 このリリースについて詳しくは、 https://github.com/github/codeql-cli-binaries/releases をご覧ください。

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

構文

Shell
codeql resolve qlpacks <options>...

説明

インストールされている QL パックとその場所のリストを作成します。

このプラミング コマンドを使って、構成された (または指定された) 検索パスを指定して解決できる QL パックのリストを作成します。

JSON 出力を選んで実行すると、パック名ごとに複数の場所を報告できます。 その場合は、そのパックでは 1 つの検索要素内に競合する場所があることになるため、実際には解決できません。 呼び出し元は、実際の場所を使ってエラー メッセージを書式設定できます。

主なオプション

--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 では、パスの区切り記号は ; です)。

--kind=<kind>

返すパッケージの種類を指定します。 オプションは、querylibraryextensionall (既定値) です。

拡張機能パックはライブラリ パックの一種であり、種類が library の場合に含まれることに注意してください。

--format=<fmt>

出力形式 (text "(既定値)" または json) を選びます。__

--no-recursive

依存関係は再帰しないでください。 --additional-packs--search-path、およびディストリビューションから直接アクセスできるパックのみを返します。

CodeQL パッケージ マネージャーを構成するためのオプション

--registries-auth-stdin

\<registry_url>=\ ペアのコンマ区切りリストを渡すことで、GitHub Enterprise Server コンテナー レジストリに対して認証を行います。

たとえば、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 環境変数がオーバーライドされます。

共通オプション

-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 をリダイレクトします)。