
Renforcez vos configurations de gestionnaire de paquets contre les attaques de la chaîne d'approvisionnement.
```text
_ _
| | ___ _ __ ___ __ _ _ _ __ _ _ __ | |
/
|/ _ \ '_ \/ __|/ _ | | | |/ | '__/ _ |
| (| | __/ |) _ \ (| | || | (| | | | (| |
_,_|_| ./|/_, |_,|_,|| _,|
|| |___/
Protégez vos dépendances contre les attaques de la chaîne d'approvisionnement. **Binaire statique unique, zéro dépendance de crate Rust.**
Par **[[arnica](https://arnica.io?utm_source=depsguard&utm_medium=referral&utm_campaign=community)]**
## Table des matières
- [Aperçu](#overview)
- [Installation](#install)
- [Utilisation](#usage)
- [Ce qui est vérifié](#what-gets-checked)
- [Emplacements des fichiers de configuration](#config-file-locations)
- [Correctif de sécurité urgent](#urgent-security-fix)
- [Sauvegardes et restauration](#backups-and-restore)
- [Fonctionnement](#how-it-works)
- [Dépannage](#troubleshooting)
- [Aide et retours](#help--feedback)
- [Guides](#guides)
- [Voir aussi](#see-also)
- [Licence](#license)
## Aperçu
DepsGuard recherche **npm**, **pnpm**, **yarn**, **bun**, **uv**, **pip**, **poetry** et **aube** sur votre machine, lit leurs fichiers de configuration, les compare aux paramètres recommandés pour la chaîne d'approvisionnement, et peut **appliquer des correctifs de manière interactive**. Il analyse également les configurations **Renovate** et **Dependabot** dans vos dépôts. Il n'exécute jamais d'installations de paquets ; il modifie uniquement les fichiers de configuration que vous approuvez, et il écrit des **sauvegardes** avant toute modification.
### Fonctionnalités clés
- TUI interactif : analyser, examiner, activer/désactiver les correctifs, appliquer
- Sous-commande `scan` pour un rapport en lecture seule
- Sous-commande `restore` pour choisir une sauvegarde et restaurer un fichier
- Multi-plateforme : Linux, macOS, Windows
- Aucune crate Rust tierce incluse (stdlib + une petite quantité d'FFI de plateforme pour le terminal)
### Stack technique
| Domaine | Détails |
|------|---------|
| Langage | Rust (MSRV **1.74**, voir `Cargo.toml`) |
| CLI / TUI | `src/main.rs`, `src/ui.rs`, `src/term.rs` |
| Logique de configuration | `src/manager.rs`, `src/fix.rs` |
| Site web | Site statique dans `docs/` (séparé du binaire) |
## Installation
### Binaires préconstruits
Chaque [version GitHub](https://github.com/arnica/depsguard/releases) inclut des archives pour :
- Linux : `x86_64` (glibc), `x86_64` (musl), `aarch64` (glibc)
- macOS : Intel et Apple Silicon
- Windows : ZIP `x86_64` contenant `depsguard.exe`
Téléchargez l'archive pour votre plateforme, décompressez-la, et placez le binaire dans votre `PATH`.
Vérifiez l'intégrité à l'aide du fichier `.sha256` correspondant à côté de chaque artefact sur la page de version.
### Installation par plateforme
#### Linux (Debian/Ubuntu via APT)```bash
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://depsguard.com/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/depsguard.gpg
echo "deb [arch=amd64,arm64 signed-by=/etc/apt/keyrings/depsguard.gpg] https://depsguard.com/apt stable main" | sudo tee /etc/apt/sources.list.d/depsguard.list >/dev/null
sudo apt update
sudo apt install depsguard
brew install depsguard
DepsGuard est dans [homebrew-core](https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/d/depsguard.rb), donc aucun dépôt personnalisé n'est requis.
> **Migration depuis l'ancien dépôt `arnica/depsguard` ?** Passez à la formule officielle une fois :
>
> ```bash
> brew uninstall depsguard
> brew untap arnica/depsguard
> brew update
> brew install depsguard
> ```
#### Windows```powershell
# WinGet
winget install Arnica.DepsGuard
# Scoop
scoop bucket add depsguard https://github.com/arnica/depsguard
scoop install depsguard
Ou téléchargez manuellement via PowerShell:```powershell $zip = "$env:TEMP\depsguard.zip" Invoke-WebRequest -Uri "https://github.com/arnica/depsguard/releases/latest/download/depsguard-x86_64-pc-windows-msvc.zip" -OutFile $zip Expand-Archive -LiteralPath $zip -DestinationPath "$env:TEMP\depsguard" -Force Copy-Item "$env:TEMP\depsguard\depsguard.exe" "$HOME\AppData\Local\Microsoft\WindowsApps\depsguard.exe" -Force depsguard.exe --help
### crates.io```bash
cargo install depsguard
Nécessite une chaîne d'outils Rust avec cargo.
Si votre organisation distribue DepsGuard via Homebrew, Scoop ou WinGet, suivez leurs instructions. La configuration ou l'automatisation de ces canaux (PRs core Homebrew, buckets, PRs WinGet, secrets CI) relève de la documentation du mainteneur ; voir AGENTS.md sous Publication et distribution.
| Canal | Linux | macOS | Windows | Commande d'installation |
|---|---|---|---|---|
| APT (dépôt personnalisé) | oui | non | non | sudo apt install depsguard (après la configuration du dépôt ci-dessus) |
| crates.io | oui | oui | oui | cargo install depsguard |
| Homebrew (homebrew-core) | oui | oui | non | brew install depsguard |
| Scoop (bucket personnalisé) | non | non | oui | scoop bucket add depsguard https://github.com/arnica/depsguard ; scoop install depsguard |
| WinGet | non | non | oui | winget install Arnica.DepsGuard |
Utilisez le canal avec lequel vous avez installé :
| Canal | Commande de mise à jour |
|---|---|
| Homebrew | brew update && brew upgrade depsguard |
| APT (dépôt personnalisé) | sudo apt update && sudo apt install --only-upgrade depsguard |
| crates.io | cargo install --force depsguard (réinstalle la dernière version) |
| Scoop | scoop update && scoop update depsguard |
| WinGet | winget upgrade Arnica.DepsGuard |
Vérifiez votre version installée à tout moment avec depsguard --version, et consultez la page des versions pour la version la plus récente.
git clone https://github.com/arnica/depsguard.git cd depsguard cargo build --release
Le binaire est `target/release/depsguard` (`.exe` sur Windows). Rust **1.74+** est requis.
## Utilisation```bash
depsguard # interactive: scan, choose fixes, apply
depsguard scan # report only; no writes (exits 1 if action is needed)
depsguard --no-search # skip recursive file search, check local configs only
depsguard restore # restore from a previous backup
depsguard --help # CLI help