# pack publish

QL ライブラリ パックを、パッケージ レジストリに発行します。

> [!NOTE]
> このコンテンツでは、CodeQL CLI の最新リリースについて説明します。 このリリースについて詳しくは、 https://github.com/github/codeql-cli-binaries/releases をご覧ください。
>
> 以前のリリースの、このコマンドで使えるオプションを詳しく確認するには、ターミナルで <span style="white-space: nowrap;">`--help`</span> オプションを指定してコマンドを実行してください。

## 概要

```shell copy
codeql pack publish [--dry-run] [--threads=<num>] [--ram=<MB>] [--pack=<folder> | <package.tgz>] <options>... -- <dir>
```

## Description

QL ライブラリ パックを、パッケージ レジストリに発行します。

このコマンドは、パックをパッケージ レジストリに発行します。 パックは、発行される前に、まず、コンパイルされ (必要な場合)、バンドルされます。

              `v2.6.0` 以降で使用できます。

## オプション

### 主なオプション

#### `<dir>`

パッケージまたはワークスペースのルート ディレクトリ。既定値は現在の作業ディレクトリです。 このパラメーターが qlpack.yml を含むディレクトリを指している場合、この操作はその CodeQL パッケージでのみ実行されます。 このパラメーターが codeql-workspace.yml を含むディレクトリを指している場合、この操作はワークスペース内のすべての CodeQL パッケージで実行されます。

#### `-n, --[no-]dry-run`

実行された内容を出力しますが、実際にはパッケージを発行しません。

#### `--no-keep`

発行後、パック バンドルを削除します。

#### `-j, --threads=<num>`

この数のスレッドをクエリのコンパイルに使用します。

既定値は 1 です。 0 を渡して、コンピューター上のコアごとに 1 つのスレッドを使用したり、_N_ を渡して、_N_ 個のコアを未使用のままにしたりすることができます (ただし、その場合でも、少なくとも 1 つのスレッドが使用されます)。

#### `-M, --ram=<MB>`

コンパイラで使用できる必要がある RAM の合計量を設定します。

#### `--no-precompile`

              \[詳細設定] パック出力ディレクトリでコンパイル キャッシュがプリコンパイルされないようにします。 これにより、パックのサイズが縮小され、作成にかかる時間が短縮されますが、パックを実行する前にコンパイルが必要になります。
クエリ パックに対してのみ意味があります。

#### `--no-validate-extensions`

              \[詳細設定] コンパイル手順の一環としてデータ拡張機能の検証を行わないようにします。

              `v2.13.3` 以降で使用できます。

#### `--no-overwrite`

              \[詳細設定] このコマンドの以前の呼び出しからの既存のコンパイル済み出力が再コンパイルされ上書きされないようにします。

#### `-p, --pack=<folder> | <package.tgz>`

              \[上級設定] パッケージ化された tarball を配置する場所。 このオプションが .tgz で終わる場合、tarball がその名前で作成されます。
それ以外の場合、指定されたパスに新しいディレクトリが作成され、そこに 1 つ以上の tarball が作成されます。 .tgz をワークスペースに使用することはできません。

#### `--file=<package.tgz>`

              \[詳細設定] 新しいものを作成またはバンドルすることなく、`package.tgz` をパッケージ レジストリに直接アップロードします。

#### `--[no-]allow-prerelease`

プレリリース バージョン修飾子 (例: `X.Y.Z-qualifier`) を含むパックの使用を許可します。 このフラグがないと、プレリリース パックは無視されます。

              `v2.11.3` 以降で使用できます。

### このコマンドを適用する CodeQL パックを構成するためのオプション。

#### `--format=<fmt>`

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

#### `--groups=[-]<group>[,[-]<group>...]`

この操作に含める、またはこの操作から除外する CodeQL パック グループのリスト。 次の場合、ワークスペースにqlpackが含まれています。

* マイナス記号なしで一覧表示されているグループの少なくとも 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 では、パスの区切り記号は `;` です)。

#### `--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>
              =
              \<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` 以降で使用できます。