Skip to main content

CodeQL の構成ファイルでコマンド オプションを指定する

既定のコマンド オプションを、CodeQL の構成ファイルに保存できます。

Who can use this feature?

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

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

CodeQL の構成ファイルでのコマンド オプションの指定について

コマンドの既定のオプションまたは頻繁に使われるオプションを、ユーザーごとの構成ファイルに保存できます。

CodeQL CLI のコマンド オプションは、次の 2 つの方法で指定できます。

  • 適切なフラグを使って、コマンド ラインで直接。
  • コマンドを実行するたびに CodeQL によって関連するオプションがスキャンされる構成 (config) ファイルで。

コマンドを実行するたびに変わる可能性が高いオプションの場合は、コマンド ラインで値を指定するのが、情報を CodeQL に渡す最も便利な方法です。 config ファイルにオプションを保存するのは、頻繁に使うオプションを指定するのによい方法です。 また、検索パスに対して通常使用するカスタム CodeQL パックを追加するのにも適した方法です。

CodeQL の構成ファイルを使用する

config ファイルは、ホーム (Linux と macOS) またはユーザー プロファイル (Windows) ディレクトリの下の .config/codeql/ サブディレクトリに保存する必要があります。 たとえば、「 $HOME/.config/codeql/config 」のように入力します。

オプションを指定する構文は次のとおりです。

<command> <subcommand> <option> <value>

同じオプションを複数のコマンドに適用するには、次のようにできます。

  • <subcommand> を省略すると、関連するすべての <subcommand> にオプションが指定されます。
  • <command><subcommand> の両方を省略すると、関連するすべての <command><subcommand> にオプションがグローバルに指定されます。

注:

  • config ファイルでスペースを使用できるのは、オプション フラグと値の間だけです。= を使ってオプション値を指定すると、CodeQL でエラーがスローされます。
  • コマンド ラインでオプションを指定すると、config でそのオプションに定義されている値がオーバーライドされます。
  • <command><subcommand>、またはグローバルに複数のオプションを指定したい場合は、オプションごとに 1 行を使います。

  • codeql database analyze によって生成されたすべての分析結果を CSV 形式で出力するには、次のように指定します。

    database analyze --format csv
    

    ここでは、database analyze の間に実行される低レベルのコマンドに同じ --format オプションが渡されるのを防ぐため、コマンドとサブコマンドを指定する必要があります。

  • CodeQL コマンドの実行時に使う RAM (4,096 MB) とスレッド数 (4) を定義するには、個別の行で以下を指定します。

    --ram 4096
    --threads 4
    
  • CodeQL が CodeQL パックをスキャンするディレクトリをグローバルに指定するには (インストール ディレクトリの兄弟ではない場合)、以下を使います。

    --search-path <path-to-directory>