Skip to main content

CodeQL クエリ パック

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

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

CodeQL は、次の種類のリポジトリで使用できます:

  • GitHub.com のパブリック リポジトリについては、「GitHub CodeQL の使用条件」を参照してください
  • GitHub Code Security が有効になっている GitHub Team または GitHub Enterprise Cloud 上の organization 所有のリポジトリ

この記事の内容

CodeQL パックについて

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

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

CodeQL パックの種類

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

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

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

  • モデル パックを使用すると、code scanning 分析を展開して、既定でサポートされていないライブラリとフレームワークを認識できます。 モデル パックは現在 パブリック プレビュー にあり、変更される可能性があります。 パブリック プレビュー 期間中、モデル パックは C/C++、C#、Java/Kotlin、Python、Ruby、Rust 解析に使用できます。 独自のモデル パックの作成の詳細については、「CodeQL パックの作成と操作」を参照してください。

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

サポートされているすべての言語の標準 CodeQL パックは、Container registry で公開されています。 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 CLI の コマンドを使用して独自の CodeQL パックを作成したり、パックに依存関係を追加したり、依存関係をインストールまたは更新したりできます。

CodeQL CLI を使用して作成した CodeQL パックを発行できます。 CodeQL パックの公開とダウンロードの詳細については、「CodeQL パックを発行して使用する」を参照してください。