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

# 依存関係スキャン（CLI）

> corgea depsを使用して、オフラインの依存関係インベントリ、依存関係グラフ、SBOM、ポリシーチェックを作成します

## 概要

`corgea deps`は、npm、Python、Javaのマニフェストとロックファイルから、オフラインで依存関係インベントリを作成します。依存関係グラフの調査、パッケージが存在する理由の確認、依存関係の変更の比較、CycloneDX SBOMの生成、依存関係ポリシーの評価が可能です。

`corgea deps`の使用にCorgeaアカウント、トークン、ネットワークアクセスは必要ありません。

## 依存関係インベントリ

プロジェクトルートで、オフラインの依存関係スキャンを実行します。

```bash theme={null}
corgea deps scan
```

よく使用するコマンドは次のとおりです。

```bash theme={null}
corgea deps scan --format human
corgea deps scan --format json
corgea deps scan --format quiet --fail-on high
corgea deps scan --out-format sarif --out-file deps.sarif
corgea deps graph --format json
corgea deps explain lodash --format human
corgea deps diff --base origin/main --format json
corgea deps sbom --format cyclonedx --out bom.json
corgea deps policy init --exist-ok
```

`scan`、`graph`、`explain`、`diff`、`policy init`のターミナル出力は、`--format human`、`agent`、`json`、`quiet`のいずれかで制御できます。エージェント環境が検出された場合、`corgea deps`はデフォルトで簡潔な`agent`形式を使用します。通常のターミナル出力を使用するには、`--format human`を指定します。

`corgea deps scan`でレポートをエクスポートする場合は、`--out-format table`、`json`、`sarif`のいずれかを使用し、必要に応じて`--out-file`を指定します。同じ`deps scan`コマンドで`--format`と`--out-format`を併用することはできません。

## ポリシー

`.corgea/deps.yml`を初期化します。

```bash theme={null}
corgea deps policy init
```

生成されたポリシーでは、ロックファイルを必須にするか、ロックファイルの欠落や更新漏れをエラーにするか、およびワイルドカード、`latest`、SemVer範囲を使用する直接依存関係を報告するかを制御できます。

```yaml theme={null}
dependency_policy:
  require_lockfile: true
  fail_on_missing_lockfile: true
  fail_on_stale_lockfile: true
  direct_dependencies:
    fail_on_wildcard: true
    fail_on_latest: true
    warn_on_semver_range: true
```

<h2 id="ci-integration">
  CI連携
</h2>

次のワークフローを`.github/workflows/dependencies.yml`にコピーします。

```yaml theme={null}
name: Dependency inventory
on:
  pull_request:
  push:
    branches: [main]

jobs:
  corgea-deps:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm install -g @corgea/cli
      - name: Check dependency policy
        run: corgea deps scan --format quiet --fail-on high
```

プルリクエストによって重大度「高」の依存関係の検出結果が新たに追加された場合にのみ失敗させるには、次のコマンドを使用します。

```bash theme={null}
corgea deps diff --base origin/main --fail-on-new high --format quiet
```

## リファレンス

### コマンド

| コマンド                                    | 用途                                      | 主なフラグ                                              |
| --------------------------------------- | --------------------------------------- | -------------------------------------------------- |
| `corgea deps scan [PATH]`               | マニフェストとロックファイルをスキャンし、インベントリを作成してポリシーを評価 | `--fail-on`、`--format`、`--out-format`、`--out-file` |
| `corgea deps graph [PATH]`              | 依存関係グラフを出力                              | `--format`                                         |
| `corgea deps explain <PACKAGE> [PATH]`  | パッケージが存在する理由を説明                         | `--format`                                         |
| `corgea deps diff --base <BASE> [PATH]` | 依存関係グラフをGit参照と比較                        | `--base`、`--fail-on-new`、`--format`                |
| `corgea deps sbom [PATH]`               | CycloneDX SBOMを生成                       | `--format`、`--out`                                 |
| `corgea deps policy init [PATH]`        | `.corgea/deps.yml`ポリシーファイルのひな形を作成       | `--exist-ok`、`--format`                            |

### フォーマット

| フラグ            | 値                              | コマンド                                          |
| -------------- | ------------------------------ | --------------------------------------------- |
| `--format`     | `human`、`agent`、`json`、`quiet` | `scan`、`graph`、`explain`、`diff`、`policy init` |
| `--out-format` | `table`、`json`、`sarif`         | `scan`のみ                                      |
| `--format`     | `cyclonedx`                    | `sbom`のみ                                      |

### 終了コード

| 終了コード | 条件                                                                |
| ----- | ----------------------------------------------------------------- |
| **0** | エラーとするポリシーしきい値に抵触せず、コマンドが完了                                       |
| **1** | `deps scan --fail-on`または`deps diff --fail-on-new`で、条件に一致する検出結果を検出 |
| **2** | 無効な引数、未対応の形式、不正な重大度の値、`explain`で指定したパッケージの欠落、またはその他のコマンドエラー       |

### 重大度値

`--fail-on`と`--fail-on-new`には、`info`、`low`、`medium`、`high`、`critical`のいずれかを指定できます。

## トラブルシューティング

### フォーマットの競合

`deps scan`では、`--format`と`--out-format`を併用したコマンドは拒否されます。

```text theme={null}
deps failed: --format cannot be used with --out-format; choose one output selector
```

ターミナルへの表示には`--format`、スキャンレポートのエクスポートには`--out-format`を使用します。

### パッケージが見つからない

指定したパッケージがスキャン済みの依存関係グラフに存在しない場合、`deps explain`は終了コード**2**で終了します。

```text theme={null}
deps failed: package not found: package-name
```
