> ## 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.

# Abhängigkeits-Scanning (CLI)

> Mit corgea deps offline Abhängigkeitsinventare, Dependency-Graphen und SBOMs erstellen sowie Richtlinien prüfen

## Übersicht

`corgea deps` erstellt offline ein Abhängigkeitsinventar aus Manifesten und Lockfiles für npm, Python und Java. Das Tool kann Dependency-Graphen untersuchen, das Vorhandensein eines Pakets erklären, Änderungen an Abhängigkeiten vergleichen, eine CycloneDX-SBOM generieren und Abhängigkeitsrichtlinien prüfen.

`corgea deps` benötigt weder ein Corgea-Konto noch ein Token oder Netzwerkzugriff.

## Inventar

Führen Sie im Projektstammverzeichnis einen Offline-Scan der Abhängigkeiten aus:

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

Gängige Befehle:

```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
```

Mit `--format human`, `agent`, `json` oder `quiet` steuern Sie die Terminalausgabe für `scan`, `graph`, `explain`, `diff` und `policy init`. In erkannten Agent-Umgebungen verwendet `corgea deps` standardmäßig das kompakte Format `agent`. Mit `--format human` erzwingen Sie die normale Terminalausgabe.

Beim Export eines Berichts mit `corgea deps scan` können Sie `--out-format table`, `json` oder `sarif` und optional `--out-file` verwenden. Kombinieren Sie `--format` und `--out-format` nicht in demselben `deps scan`-Befehl.

## Richtlinie

Initialisieren Sie `.corgea/deps.yml`:

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

Die generierte Richtlinie legt fest, ob Lockfiles erforderlich sind, ob fehlende oder veraltete Lockfiles zu einem Fehler führen und ob direkte Abhängigkeiten mit Wildcards, `latest` oder SemVer-Bereichen gemeldet werden.

```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-Integration
</h2>

Kopieren Sie diesen Workflow nach `.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
```

So schlägt die Prüfung nur fehl, wenn ein Pull Request neue Findings mit hohem Schweregrad in Abhängigkeiten einführt:

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

## Referenz

### Befehle

| Befehl                                  | Zweck                                                                     | Wichtige Flags                                        |
| --------------------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------- |
| `corgea deps scan [PATH]`               | Manifeste und Lockfiles scannen, Inventar erstellen und Richtlinie prüfen | `--fail-on`, `--format`, `--out-format`, `--out-file` |
| `corgea deps graph [PATH]`              | Dependency-Graph ausgeben                                                 | `--format`                                            |
| `corgea deps explain <PACKAGE> [PATH]`  | Erklären, warum ein Paket vorhanden ist                                   | `--format`                                            |
| `corgea deps diff --base <BASE> [PATH]` | Dependency-Graph mit einer Git-Referenz vergleichen                       | `--base`, `--fail-on-new`, `--format`                 |
| `corgea deps sbom [PATH]`               | CycloneDX-SBOM generieren                                                 | `--format`, `--out`                                   |
| `corgea deps policy init [PATH]`        | Vorlage für eine `.corgea/deps.yml`-Richtliniendatei schreiben            | `--exist-ok`, `--format`                              |

### Formate

| Flag           | Werte                             | Befehle                                           |
| -------------- | --------------------------------- | ------------------------------------------------- |
| `--format`     | `human`, `agent`, `json`, `quiet` | `scan`, `graph`, `explain`, `diff`, `policy init` |
| `--out-format` | `table`, `json`, `sarif`          | Nur `scan`                                        |
| `--format`     | `cyclonedx`                       | Nur `sbom`                                        |

### Exit-Codes

| Exit-Code | Bedingung                                                                                                                      |
| --------- | ------------------------------------------------------------------------------------------------------------------------------ |
| **0**     | Befehl abgeschlossen, ohne dass ein Schwellenwert der Richtlinie überschritten wurde                                           |
| **1**     | `deps scan --fail-on` oder `deps diff --fail-on-new` hat entsprechende Findings erkannt                                        |
| **2**     | Ungültige Argumente, nicht unterstützte Formate, falsche Schweregrade, fehlende Pakete für `explain` oder andere Befehlsfehler |

### Schweregrade

`--fail-on` und `--fail-on-new` akzeptieren `info`, `low`, `medium`, `high` oder `critical`.

## Fehlerbehebung

### Formatkonflikt

`deps scan` lehnt Befehle ab, die `--format` mit `--out-format` kombinieren.

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

Verwenden Sie `--format` für die Terminalanzeige und `--out-format` für exportierte Scanberichte.

### Paket nicht gefunden

`deps explain` wird mit Exit-Code **2** beendet, wenn das Paket nicht im gescannten Dependency-Graph vorhanden ist.

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