Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。
現在、GitHub AE は限定的リリースです。

クエリ参照ファイル

クエリ参照ファイルを使って、テストで実行するクエリの場所を定義できます。

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

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

注: この記事は、2023 年 1 月に CodeQL ドキュメント Web サイトから移行されました。

クエリ参照ファイルについて

クエリ参照ファイルは、テストする 1 つのクエリの場所を定義するテキスト ファイルです。

テスト ディレクトリに含まれていないクエリの実行を test run サブコマンドに指示するときは、クエリ参照ファイルを使います。 テストとして実行するクエリを指定するには、2 つの方法があります。

  1. クエリ参照ファイルを使って、テストするクエリの場所を指定します。 これは、実際のコードベースの問題を特定することを目的としたアラート クエリとパス クエリのテストを作成する場合に便利です。 テスト コードの複数のディレクトリを作成し、それぞれでクエリの異なる側面を対象にする場合があります。 その後、テスト コードの各ディレクトリにクエリ参照ファイルを追加して、テストするクエリを指定します。
  2. クエリをテストのディレクトリに直接追加します。 これらは通常、QL ライブラリの動作をテストするためにクエリを明示的に記述する場合に便利です。 多くの場合、これらのクエリにはライブラリ述語の呼び出しが数個だけ含まれ、出力をテストできるようにそれらを select ステートメントでラップします。

クエリ参照ファイルを定義する

各クエリ参照ファイル .qlref には、1 つのクエリを見つける場所を定義する 1 行が含まれています。 場所は、クエリを含む CodeQL パックのルートを基準にして定義されている必要があります。 通常これは、.qlref を含む CodeQL パック、テスト パックのdependencies ブロックで指定されている CodeQL パック、または CodeQL パックの推移的な依存関係のいずれかです。

システム間で互換性があるよう、すべてのオペレーティング システムのパスでスラッシュを使う必要があります。

JavaScript アラート クエリをテストするためのクエリ参照ファイル: DeadAngularJSEventListener.qlref

javascript/ql/test にある CodeQL パック用の qlpack.yml ファイル https://github.com/github/codeql/blob/main/javascript/ql/test/qlpack.yml では、依存関係として codeql/javascript-queries が定義されています。 そのため、クエリ参照ファイルでは、codeql/javascript-queries CodeQL パックを基準にしてクエリの場所を定義します。

AngularJS/DeadAngularJSEventListener.ql