> ## Documentation Index
> Fetch the complete documentation index at: https://docs.diversion.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# obliterate

> 一致するファイルバージョンのブロブストレージを完全に削除する（組織管理者のみ）。

`obliterate` コマンドは、パスパターンに一致するファイルのあらゆるバージョンについて、その基盤となるブロブストレージを、すべてのブランチとコミットを跨いで完全に削除します。この操作は **破壊的かつ元に戻すことができません**。

背景、glob 構文、および基盤モデルについては、[Obliterate ガイド](/ja/advanced/obliterate) を参照してください。

<Warning>
  Obliterate は元に戻すことができません。`execute` を実行する前に、必ず先に `preview` を実行してプランを確認してください。
</Warning>

要件:

* [**組織管理者**](/ja/basic/access-levels#組織レベルのアクセス) である必要があります。
* Obliterate は Git 同期リポジトリではサポートされていません。

## preview

何が obliterate されるかを表示します。状態は変更されません。

```bash theme={null}
dv obliterate preview [--json] <glob> [<glob> ...]
```

`<glob>` はリポジトリのルートに固定されたパスパターンです（例: `'/assets/*.psd'`）。シェルによって展開されないよう、パターンはクォートで囲んでください。この引数は繰り返し可能です -- 複数の glob を渡すことで、それらを組み合わせた obliteration を 1 回の呼び出しで計画できます。

`--json` は、プレビューレスポンス全体を含む単一の JSON ドキュメントを stdout に出力します。このモードではバナーや警告は抑制され、警告はドキュメントの `warning` 文字列フィールドに移動します。

人間向けのビューでは、見出しの件数、リクレイム見積もり、およびバイト数の降順でソートされた削除可能／削除されないパスの上位 20 件が表示されます。完全なリストがそれより長い場合、末尾に `... and N more (use --json for the full list)` の行が表示されます。複数の glob が渡された場合、glob ごとのブロックがそれぞれの glob が一致したファイル数／バージョン数／合計バイト数を個別に表示します。

例:

```bash theme={null}
dv obliterate preview '/assets/old_textures/*.psd' '/builds/.../*.pak'
```

```bash theme={null}
dv obliterate preview --json '/assets/old_textures/*.psd' | jq '.deletable_paths | length, .per_glob_summary'
```

## execute

一致するブロブを完全に obliterate します。

```bash theme={null}
dv obliterate execute [--yes] [--json] [--nowait] <glob> [<glob> ...]
```

`<glob>` は `preview` と同じパスパターンで、繰り返し可能です。

`--yes` は破壊的操作の確認プロンプトをスキップします（スクリプト用）。これを指定しない場合、プロンプトでリポジトリ名または ID を入力して確認する必要があります。

`--json` は人間向けのバナーの代わりに単一の JSON ドキュメントを出力します。**`--yes` が必須です** -- インタラクティブなプロンプトは JSON ストリームを破壊してしまうためです。

`--nowait` はジョブをキューに入れ、ポーリングせずに即座に終了します。その後、`dv obliterate status <job_id>` を使用してください。

デフォルトでは、`execute` は `job_id` を返し、ステータスエンドポイントを 3 秒ごとに最大 **18 秒間** ポーリングします。この上限は固定です -- ポーリングをスキップしたい場合は `--nowait` を使用するか、長時間のジョブでは後から `status` で追跡してください。

終了コード:

| コード   | 意味                                                                                                    |
| ----- | ----------------------------------------------------------------------------------------------------- |
| `0`   | ポーリングが終了状態に達し、ジョブが失敗なく完了しました。                                                                         |
| `2`   | ポーリングが終了状態に達しましたが、ジョブに 1 つ以上の失敗した削除がありました。                                                            |
| `101` | 18 秒のポーリング上限に達しましたが、ジョブがまだ進行中です。スクリプトが「待機を諦めた」と「完了」を区別できるようにします。その後 `dv obliterate status` で追跡してください。 |

例:

```bash theme={null}
dv obliterate execute --yes '/assets/old_textures/*.psd'
```

## status

以前にキューに入れた obliterate ジョブの状態を表示します。

```bash theme={null}
dv obliterate status <job_id>
```

`<job_id>` は `dv obliterate execute` によって返される id です（例: `dv.obliterate.593d2b8a8dbf47559bcc73c8bcf54f41`）。

出力には全体のステータス（`queued`、`in_progress`、`succeeded`、`failed`、または `archived`）、ファイルごとの件数（`pending` / `done` / `failed`）、開始時刻、および -- 終了状態の場合 -- 終了時刻が含まれます。`failed` の場合は、失敗ごとに簡潔なエラーメッセージが付いた最初の 20 件のエラーが含まれます。`archived` は、ジョブがキューから期限切れになったが、その件数は依然として確認可能であることを意味します。

404 は、このリポジトリにその id の obliterate ジョブがないことを意味します。

例:

```bash theme={null}
dv obliterate status dv.obliterate.593d2b8a8dbf47559bcc73c8bcf54f41
```

## 注意事項

* サーバーは glob 解決に 60 秒のタイムバジェットを適用します。glob が一致するファイルが多すぎる場合、呼び出しはエラーで拒否されます -- パターンを絞り込み、複数の実行に分割してください。
* 実際の削除は呼び出しが戻った後にバックグラウンドで実行されます。これが `execute` がすぐに戻る理由であり、進捗が status エンドポイント経由で追跡される理由です。
* 共有（グループ化された）ストレージ内のファイルは個別に obliterate することはできず、レスポンスではスキップされたと報告されます。

完全な概念ガイド、glob 構文表、および具体例については、[Obliterate](/ja/advanced/obliterate) を参照してください。
