# CodeQL クエリ パック

CodeQL code scanning セットアップで使用するさまざまな組み込み CodeQL クエリ スイートから選ぶことができます。

## CodeQL パックについて

CodeQL パックを使用して、CodeQL クエリとライブラリを作成、共有、実行したり、これらに依存したりすることができます。 他のユーザーが作成したパックをダウンロードし、コードベースで実行することで、CodeQL 分析をカスタマイズできます。

各 CodeQL パックは、自らのルート ディレクトリ内に、以下のものを指定する `qlpack.yml` ファイルを配置する必要があります。

* クエリをコンパイルする方法
* 他の CodeQL パッケージとライブラリへの依存関係
* クエリ スイートの定義

  ```
          `qlpack.yml`プロパティの詳細については、「[AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/customizing-analysis-with-codeql-packs#codeqlpack-yml-properties)」を参照してください。
  ```

さらに、CodeQL パックには次を含めることができます。

* カスタム クエリ (`.ql` ファイル)
* ライブラリ ファイル
* クエリ スイート
* メタデータ

CodeQL CLI バンドルには、GitHub の専門家、セキュリティ研究者、コミュニティの共同作成者によって管理されるクエリが含まれます。 他の organization によって開発されたクエリを実行する場合は、CodeQL クエリ パックには、クエリをダウンロードして実行するための効率的かつ信頼性の高い方法が用意されています。一方、モデル パック (パブリック プレビュー) を使うと、code scanning の分析を拡張して、既定でサポートされていないライブラリやフレームワークを認識できます。

## CodeQL パックの種類

CodeQL パックには、クエリ パックとライブラリ パック、モデル パックの 3 種類があります。

* クエリ パックには、CodeQL データベースで評価できる事前コンパイル済みクエリのセットが含まれています。 クエリ パックは、実行するように設計されています。 クエリ パックが発行されると、バンドルには、クエリ ソースに加えて、各クエリのすべての推移的な依存関係とプリコンパイル済みの表現が含まれます。 これにより、パック内のクエリの一貫した効率的な実行が保証されます。

* ライブラリ パックは、クエリ パック (または他のライブラリ パック) で使用するように設計されており、クエリ自体は含まれません。 ライブラリは個別にコンパイルされません。

* モデル パックを使用すると、code scanning 分析を展開して、既定でサポートされていないライブラリとフレームワークを認識できます。 モデル パックは現在 パブリック プレビュー にあり、変更される可能性があります。 パブリック プレビュー 期間中、モデル パックは C/C++、C#、Java/Kotlin、Python、Ruby、Rust 解析に使用できます。 独自のモデル パックの作成の詳細については、「[CodeQL パックの作成と操作](/ja/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs#creating-a-codeql-model-pack)」を参照してください。

## クエリ パックを検索する場所

サポートされているすべての言語の標準 CodeQL パックは、[Container registry](https://github.com/orgs/codeql/packages) で公開されています。 CodeQL CLI バンドルを使用して、標準的な方法で CodeQL CLI をインストールした場合、コア クエリ パックはすでにダウンロードされており、使用できるようになります。 これらは次のとおりです。

* `codeql/cpp-queries`
* `codeql/csharp-queries`
* `codeql/go-queries`
* `codeql/java-queries`
* `codeql/javascript-queries`
* `codeql/python-queries`
* `codeql/ruby-queries`
* `codeql/swift-queries`

発行されたクエリ パックとさまざまな CodeQL リリースの間の互換性に関する詳細については、「[CodeQL クエリパック参照](/ja/code-security/reference/code-scanning/codeql/codeql-cli/codeql-query-packs#codeql-pack-compatibility)」を参照してください。

また、CodeQL CLI の  コマンドを使用して独自の CodeQL パックを作成したり、パックに依存関係を追加したり、依存関係をインストールまたは更新したりできます。

## CodeQL パックの発行と共有

次の方法で、より広範な CodeQL コミュニティとカスタム クエリを共有できます。

* GitHub Packages への公開: 開発中のパックを確実に一般公開してください。そうすれば、他のユーザーがそのパックを検出して使用することができます。
* CodeQL リポジトリへの投稿: 公式リポジトリへの pull request を開くことで、より広いコミュニティに役立つクエリを送信します。

CodeQL パックの発行とダウンロードの詳細については、[CodeQL パックを発行して使用する](/ja/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/publishing-and-using-codeql-packs) を参照してください。

CodeQL への貢献の詳細については、「[CodeQL に貢献する](https://github.com/github/codeql/blob/main/CONTRIBUTING.md)」を参照してください。