# データベース インデックスファイル

\[プラミング] 指定した CodeQL エクストラクターを使用してスタンドアロン ファイルのインデックスを作成します。

> \[!NOTE]
> このコンテンツでは、CodeQL CLI の最新リリースについて説明します。 このリリースについて詳しくは、 <https://github.com/github/codeql-cli-binaries/releases> をご覧ください。
>
> 以前のリリースの、このコマンドで使えるオプションを詳しく確認するには、ターミナルで <span style="white-space: nowrap;">`--help`</span> オプションを指定してコマンドを実行してください。

## 概要

```shell copy
codeql database index-files --language=<lang> [--threads=<num>] [--ram=<MB>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>
```

## Description

```
          \[Plumbing] 指定された CodeQL エクストラクターを用いてスタンドアロンファイルをインデックス化します。
```

このコマンドを使用して、指定した作業ディレクトリの下にあるファイルのセットを選び、指定したエクストラクターをそれらに適用します。 既定では、すべてのファイルが選ばれます。 一般的な呼び出しでは、含まれるファイルのセットを制限するオプションを指定します。

```
          `--include`、`--exclude`、`--prune` のオプションはすべて、glob パターンを受け入れ、次のワイルドカード文字を使うことができます。
```

* 1 個の "?" は、スラッシュまたはバックスラッシュ以外の任意の 1 文字に一致します。
* 1 個の "\*" は、スラッシュまたはバックスラッシュ以外の任意の数の文字に一致します。
* パターン "\*\*" は、0 個以上の完全なディレクトリ コンポーネントに一致します。

## オプション

### 主なオプション

#### `<database>`

```
          \[必須] 構築中の CodeQL データベースへのパス。 これは、[codeql database init](/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-init) を使って抽出するために準備されている必要があります。
```

#### `-l, --language=<lang>`

```
          \[必須] 一致するファイルのインデックスを作成するために使用するエクストラクター。
```

#### `-j, --threads=<num>`

この数のスレッドを使用することをエクストラクターに要請します。 このオプションは、候補としてエクストラクターに渡されます。 CODEQL\_THREADS 環境変数を設定している場合、環境変数の値がこのオプションよりも優先されます。

0 を渡して、コンピューター上のコアごとに 1 つのスレッドを使用したり、*N* を渡して、*N* 個のコアを未使用のままにしたりすることができます (ただし、その場合でも、少なくとも 1 つのスレッドが使用されます)。

#### `-M, --ram=<MB>`

この量のメモリを使用することをエクストラクターに要請します。 このオプションは、候補としてエクストラクターに渡されます。 CODEQL\_RAM 環境変数を設定している場合、環境変数の値がこのオプションよりも優先されます。

#### `--working-dir=<dir>`

```
          \[詳細設定] 指定したコマンドを実行するディレクトリ。 この引数を指定しない場合、`--source-root`codeql database create[ に渡される ](/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-create) の値 (存在する場合) でコマンドが実行されます。 
          `--source-root` 引数を指定しない場合、コマンドは現在の作業ディレクトリで実行されます。
```

### エクストラクターの動作を制御するためのオプション

#### `-O, --extractor-option=<extractor-option-name=value>`

CodeQL エクストラクターのオプションを設定します。
`extractor-option-name` は、extractor\_name.group1.group2.option\_name または group1.group2.option\_name という形式にする必要があります。
`extractor_option_name` がエクストラクター名で始まる場合、指定したエクストラクターはオプション group1.group2.option\_name を宣言する必要があります。 それ以外の場合、オプション group1.group2.option\_name を宣言するエクストラクターにはオプションが設定されます。
`value` は、改行を含まない任意の文字列にすることができます。

このコマンド ライン オプションを繰り返し使用して、複数のエクストラクター オプションを設定できます。 同じエクストラクターのオプションに複数の値を指定する場合、動作は、そのエクストラクターのオプションで想定されている型によって異なります。 文字列オプションでは、指定した最後の値が使用されます。 配列オプションでは、指定したすべての値が順番に使用されます。 このコマンド ライン オプションを使用して指定したエクストラクター オプションは、`--extractor-options-file` で指定したエクストラクター オプションの後に処理されます。

```
          [codeql database init](/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-init) または `codeql database begin-tracing` に渡した場合、オプションは間接トレース環境にのみ適用されます。 ワークフローで [codeql database trace-command](/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-trace-command) の呼び出しも行う場合は、必要に応じてオプションも渡す必要があります。
```

各エクストラクターによって宣言されたオプションの一覧を表示する方法など、CodeQL エクストラクター オプションについて詳しくは、<https://codeql.github.com/docs/codeql-cli/extractor-options> を参照してください。

#### `--extractor-options-file=<extractor-options-bundle-file>`

エクストラクター オプションのバンドル ファイルを指定します。 エクストラクター オプション バンドル ファイルは、エクストラクター オプションを設定する JSON ファイル (拡張子 `.json`) または YAML ファイル (拡張子 `.yaml` または `.yml`) です。 ファイルには最上位レベルのマップ キー 'extractor' があり、その下にエクストラクター名が第 2 レベルのマップ キーとして含まれている必要があります。 それ以降のレベルのマップは入れ子になったエクストラクター グループを表し、文字列と配列のオプションは、文字列と配列の値を持つマップ エントリです。

エクストラクター オプション バンドル ファイルは、指定した順序で読み取られます。
異なるエクストラクターのオプションのバンドル ファイルで同じエクストラクターのオプションを指定する場合、動作は、そのエクストラクター オプションで想定されている型によって異なります。 文字列オプションでは、指定した最後の値が使用されます。 配列オプションでは、指定したすべての値が順番に使用されます。 このコマンド ライン オプションを使用して指定したエクストラクター オプションは、`--extractor-option` で指定したエクストラクター オプションよりも前に処理されます。

```
          [codeql database init](/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-init) または `codeql database begin-tracing` に渡した場合、オプションは間接トレース環境にのみ適用されます。 ワークフローで [codeql database trace-command](/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-trace-command) の呼び出しも行う場合は、必要に応じてオプションも渡す必要があります。
```

各エクストラクターによって宣言されたオプションの一覧を表示する方法など、CodeQL エクストラクター オプションについて詳しくは、<https://codeql.github.com/docs/codeql-cli/extractor-options> を参照してください。

### インデックス付きファイルのセットを制限するためのオプション

#### `--include-extension=<.ext>`

検索ディレクトリ ツリー内の指定した拡張子を持つすべてのファイルを含めます。 通常は、拡張子の前にドットを含める必要があります。
たとえば、`--include-extension .xml` を渡して、拡張子が ".xml" のすべてのファイルを含めます。 このオプションは、否定の `--include` オプションとは互換性がありません。

#### `--include=<glob>`

指定した glob に一致するすべてのファイルとディレクトリを、その検索ディレクトリ内での各ファイルとディレクトリの相対パスを使って、検索ディレクトリツリーに含めます。 glob を `!` 文字で始めると、逆に、一致するファイルとディレクトリを除外します。

```
          `--include` オプションは順番に処理され、後にあるオプションが前にあるオプションをオーバーライドします。 たとえば、`--include ** --include !sub/*.ts --include sub/main.*` と指定すると、`sub/main.ts` は含まれ (`sub/main.*` によって含まれるため)、`sub/index.ts` は除外され (`!sub/*.ts` によって除外されるため)、`sub/test.js` は含まれます (`**` によって含まれ、その後除外されないため)。
```

#### `--also-match=<glob>`

各ファイルとディレクトリの検索ディレクトリからの相対パスを使って、すべての結果が指定した glob にも一致するように要求します。 このオプションは、`--include` と構造が同じで、解釈も同じですが、`--include` と組み合わせて適用される glob の別のシーケンスを指定します。

#### `--exclude=<glob>`

各ファイルとディレクトリの検索ディレクトリからの相対パスを使って、指定した glob に一致するファイルとディレクトリをすべて除外します。 このオプションを使って、すべての include オプションをオーバーライドします。 このオプションは、否定の `--include` オプションとは互換性がありません。

#### `--prune=<glob>`

各ファイルとディレクトリの検索ディレクトリからの相対パスを使って、指定した glob に一致するファイルとディレクトリをすべて除外します。 このオプションを使って、すべての include オプションをオーバーライドします。 このオプションは、否定の `--include` オプションとは互換性がありません。

#### `--size-limit=<bytes>`

指定したサイズ制限を超えるファイルをすべて除外します。 サイズ制限はバイト単位、またはサフィックス "k" のキビバイト (KiB) 単位、サフィックス "m" のメビバイト (MiB)、サフィックス "g" のギビバイト (GiB) 単位です。 このオプションを使って、すべての include オプションをオーバーライドします。

#### `--total-size-limit=<bytes>`

解決されるすべてのファイルの合計サイズが指定した制限を超える場合、コマンドをエラーで終了させます。 サイズ制限はバイト単位、またはサフィックス "k" のキビバイト (KiB) 単位、サフィックス "m" のメビバイト (MiB)、サフィックス "g" のギビバイト (GiB) 単位です。

#### `--[no-]follow-symlinks`

シンボリック リンクがあればそのターゲットまでたどります。

#### `--[no-]find-any`

(すべての一致ではなく) 最大 1 個の一致を検索します。

```
          `v2.11.3` 以降で使用できます。
```

### 共通オプション

#### `-h, --help`

このヘルプ テキストを表示します。

#### `-J=<opt>`

```
          \[詳細設定] コマンドを実行している JVM にオプションを指定します
```

(スペースを含むオプションは正しく処理されないことに注意してください)。

#### `-v, --verbose`

出力される進行状況メッセージの数を段階的に増やします。

#### `-q, --quiet`

出力される進行状況メッセージの数を段階的に減らします。

#### `--verbosity=<level>`

```
          \[詳細設定] 詳細レベルを、errors、warnings、progress、progress+、progress++、progress+++ のいずれかに明示的に設定します。 
          `-v` と `-q` がオーバーライドされます。
```

#### `--logdir=<dir>`

```
          \[詳細設定] タイムスタンプと実行中のサブコマンドの名前を含む生成された名前を使用して、指定されたディレクトリ内の 1 つまたは複数のファイルに詳細なログを書き込みます
```

(完全に制御できる名前でログ ファイルを書き込むには、代わりに `--log-to-stderr` を指定し、必要に応じて stderr をリダイレクトします)。

#### `--common-caches=<dir>`

```
          \[[詳細設定] ダウンロードした QL パックやコンパイル済みクエリ プランなど、CLI の複数の実行間に保持される、ディスク上でキャッシュされたデータの場所を制御します。 明示的に設定されない場合、デフォルトではユーザーのホーム ディレクトリに名前が付けられた `.codeql` ディレクトリになります。まだ存在しない場合は作成されます。

          `v2.15.2` 以降で使用できます。
```