Skip to main content

CodeQL CLI のカスタム クエリの記述

独自の CodeQL クエリを記述して、特定の脆弱性とエラーを見つけることができます。

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

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

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

この記事では、解釈された結果を生成するために AUTOTITLE コマンドで使用するクエリを記述する方法について説明します。 カスタム クエリの概念については、 カスタム CodeQL クエリ を参照してください。

有効なクエリの記述

カスタム分析を実行する前に、有効なクエリを記述し、.ql 拡張子付きのファイルに保存する必要があります。 クエリの記述に役立つ広範なドキュメントがあります。 詳細については、「 CodeQL クエリ」を参照してください。

クエリ メタデータを含める

          `database analyze` コマンドを使用してクエリを実行する場合は、結果が確実に正しく解釈されるように、次の 2 つのプロパティを含める必要があります。
  • クエリ識別子 (@id): / または - で区切られた小文字あるいは数字で構成される一連の単語。クエリを識別して分類します。

  • クエリの種類 (@kind): クエリをシンプルなアラート (@kind problem)、一連のコードの場所で文書化されたアラート (@kind path-problem)、抽出のトラブルシューティング (@kind diagnostic)、またはサマリー メトリック (@kind metric@tags summary) として識別します。

これらのメタデータ プロパティの詳細については、「CodeQL クエリのメタデータ」および「クエリ メタデータ スタイル ガイド」を参照してください。

SARIF ファイルにおけるカスタム CodeQL クエリのサポートを含める

クエリのヘルプとドキュメント形式の詳細については、 AUTOTITLE を参照してください。

コード スキャン分析の実行時に SARIF ファイルにクエリ ヘルプを含めるには:

  1. 次のいずれかの形式でクエリ ヘルプを記述します。 * Markdown ファイル: 同じ名前のクエリと共に Markdown ファイルを保存します (たとえば、my-query.mdmy-query.ql)。 * ** .qhelp ファイル**: .qhelp 形式でクエリ ヘルプを記述し、分析を実行する前に Markdown に変換します。 詳しくは、「クエリ ヘルプ ファイル」と「クエリ ヘルプ ファイルのテスト」を参照してください。

  2.        `codeql database analyze` オプションを使用して`--sarif-add-query-help`を実行します。
    
    codeql database analyze <database> --format=sarif-latest --output=results.sarif --sarif-add-query-help
    

    メモ

           `--sarif-add-query-help` オプションは、CodeQL CLI v2.7.1 以降から使用できます。
    
  3. SARIF ファイルを GitHubにアップロードします。

次のステップ

カスタム クエリを共有して使用するには、 CodeQL パックを発行して使用する を参照してください。