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

# Analyse des dépendances (CLI)

> Générez hors ligne des inventaires et graphes de dépendances, des SBOM et des contrôles de politiques avec corgea deps

## Aperçu

`corgea deps` construit hors ligne un inventaire des dépendances à partir des manifestes et lockfiles npm, Python et Java. Il permet d’examiner les graphes de dépendances, d’expliquer la présence d’un paquet, de comparer les changements de dépendances, de générer une SBOM CycloneDX et d’évaluer la politique relative aux dépendances.

`corgea deps` ne nécessite ni compte Corgea, ni token, ni accès réseau.

## Inventaire

Effectuez un scan des dépendances hors ligne depuis la racine du projet :

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

Commandes courantes :

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

Utilisez `--format human`, `agent`, `json` ou `quiet` pour contrôler la sortie dans le terminal des commandes `scan`, `graph`, `explain`, `diff` et `policy init`. Dans les environnements d’agents détectés, `corgea deps` utilise par défaut le format compact `agent` ; indiquez `--format human` pour forcer la sortie normale du terminal.

Pour exporter un rapport avec `corgea deps scan`, utilisez `--out-format table`, `json` ou `sarif`, avec éventuellement `--out-file`. Ne combinez pas `--format` et `--out-format` dans une même commande `deps scan`.

## Politique

Initialisez `.corgea/deps.yml` :

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

La politique générée détermine si les lockfiles sont obligatoires, si leur absence ou leur obsolescence entraîne un échec, et si les dépendances directes utilisant des wildcards, `latest` ou des plages semver sont signalées.

```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">
  Intégration CI
</h2>

Copiez ce workflow dans `.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
```

Pour faire échouer la commande uniquement lorsqu’une pull request introduit de nouveaux problèmes de dépendances de sévérité élevée :

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

## Référence

### Commandes

| Commande                                | Fonction                                                                                 | Options principales                                   |
| --------------------------------------- | ---------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| `corgea deps scan [PATH]`               | Scanner les manifestes et les lockfiles, constituer l’inventaire et évaluer la politique | `--fail-on`, `--format`, `--out-format`, `--out-file` |
| `corgea deps graph [PATH]`              | Afficher le graphe de dépendances                                                        | `--format`                                            |
| `corgea deps explain <PACKAGE> [PATH]`  | Expliquer pourquoi un paquet est présent                                                 | `--format`                                            |
| `corgea deps diff --base <BASE> [PATH]` | Comparer le graphe de dépendances à une référence Git                                    | `--base`, `--fail-on-new`, `--format`                 |
| `corgea deps sbom [PATH]`               | Générer un CycloneDX SBOM                                                                | `--format`, `--out`                                   |
| `corgea deps policy init [PATH]`        | Écrire un fichier de politique `.corgea/deps.yml` initial                                | `--exist-ok`, `--format`                              |

### Formats

| Option         | Valeurs                           | Commandes                                         |
| -------------- | --------------------------------- | ------------------------------------------------- |
| `--format`     | `human`, `agent`, `json`, `quiet` | `scan`, `graph`, `explain`, `diff`, `policy init` |
| `--out-format` | `table`, `json`, `sarif`          | `scan` seulement                                  |
| `--format`     | `cyclonedx`                       | `sbom` seulement                                  |

### Codes de sortie

| Sortie | État                                                                                                                                          |
| ------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **0**  | Commande terminée sans atteindre un seuil d’échec de la politique                                                                             |
| **1**  | `deps scan --fail-on` ou `deps diff --fail-on-new` a trouvé des résultats correspondants                                                      |
| **2**  | Arguments non valides, formats non pris en charge, niveaux de sévérité incorrects, paquet manquant pour `explain` ou autre erreur de commande |

### Valeurs de sévérité

`--fail-on` et `--fail-on-new` acceptent `info`, `low`, `medium`, `high` ou `critical`.

## Dépannage

### Conflit de format

`deps scan` rejette les commandes qui combinent `--format` avec `--out-format`.

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

Utilisez `--format` pour l’affichage dans le terminal et `--out-format` pour les rapports de scan exportés.

### Paquet introuvable

`deps explain` renvoie le code **2** lorsque le paquet n’est pas présent dans le graphe de dépendances analysé.

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