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 パックを発行して使用する を参照してください。