Skip to main content

このバージョンの GitHub Enterprise サーバーはこの日付をもって終了となります: 2024-03-07. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise サーバーにアップグレードしてください。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせください

拡張機能を解決する

[試験段階] [ディープ プラミング] アクセス可能な拡張機能を決定します。 これには、機械学習モデルとデータ拡張機能が含まれます。

この機能を使用できるユーザーについて

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 extensions <options>... -- <query|dir|suite|pack>...

説明

[ディープ プラミング] アクセス可能な拡張機能を決定します。 これには、機械学習モデルとデータ拡張機能が含まれます。

このプラミング コマンドを使って、コマンド ライン引数として渡すクエリ指定子で使用できる、データ拡張機能と GitHub によって作成された機械学習モデルのセットを解決します。

[オプション]

主なオプション

<querysuite|pack>...

[必須] 実行するクエリ。 各引数は、scope/name@range:path の形式になります。ここで、

  • scope/name は、CodeQL パックの修飾名です。
  • range は、semver の範囲です。
  • path は、ファイル システムのパスです。

scope/name を指定する場合、rangepath は省略可能です。 range がない場合は、指定したパックの最新バージョンを意味します。 path がない場合は、指定したパックのデフォルトのクエリ スイートを意味します。

path は、*.ql クエリ ファイル、1 つまたは複数のクエリを含むディレクトリ、または .qls クエリ スイート ファイルのいずれかにすることができます。 パック名を指定しない場合は、path を指定する必要があり、現在のプロセスの現在の作業ディレクトリからの相対パスとして解釈されます。

リテラル @ または : を含む path を指定するには、引数のプレフィックスとして path: を使います (例: path:directory/with:and@/chars)。

scope/namepath を指定する場合、path を絶対パスにすることはできません。 CodeQL パックのルートからの相対パスと見なされます。

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

--threat-model=<name>...

有効または無効にする脅威モデルの一覧。

引数は脅威モデルの名前であり、必要に応じて '!' が付けられます。 '!' が付いていない場合、その名前付き脅威モデルとそのすべての子孫が有効になります。 '!' が付いている場合、その名前付き脅威モデルとそのすべての子孫が無効になります。

"default" 脅威モデルは既定で有効になっていますが、'--threat-model !default' を指定することで無効にすることができます。

"all" 脅威モデルを使用して、すべての脅威モデルを有効または無効にすることができます。

--threat-model オプションは順番に処理されます。 たとえば、'--threat-model local --threat-model !environment' を指定すると、'environment' 脅威モデルを除き、'local' グループ内のすべての脅威モデルが有効になります。

このオプションは、脅威モデルをサポートする言語にのみ有効です。

v2.15.3 以降で使用できます。

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

--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 オプションを使って認証できます。

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

--common-caches=<dir>

[[詳細設定] ダウンロードした QL パックやコンパイル済みクエリ プランなど、CLI の複数の実行間に保持される、ディスク上でキャッシュされたデータの場所を制御します。 明示的に設定されない場合、既定ではユーザーのホーム ディレクトリに名前が付けられた .codeql ディレクトリになります。まだ存在しない場合は作成されます。

v2.15.2 以降で使用できます。