Installation et utilisation de cargo deny pour la gestion des dépendances Rust

cargo-deny est un utilitaire Rust conçu pour analyser les dépendances d'un projet en termes de licences, de vulnérabilités et d'autres problèmes de conformité. Dans les pipelines d'intégration continue (CI) Rust, cargo-deny joue un rôle crucial :

  • Vérification des licences : S'assurer que toutes les licences des dépendances utilisées respectent la politique de licence du projet.
  • Scan de vulnérabilités : Détecter les vulnérabilités connues dans les dépendences.
  • Conformité des dépendances : Valider que les dépendances respectent d'autres exigences du projet, comme les restrictions de version ou de source.
  • Exclusion de dépendances spécifiques : Permettre d'interdire explicitement l'utilisation de certaines dépendances.

Dans le flux CI, cargo-deny est généralement exécuté comme une étape de vérification pour garantir que le projet respecte toutes les exigences de conformité avant la construction et le déploiement. Cela aide à maintenir la qualité, la sécurité et la conformité légale du projet.

En résumé : cargo-deny vous permet d'utiliser en toute sécurité et conformité les dépendances tierces

Installation

Site officiel : Cargo deny

Commandes d'installation :

cargo install --locked cargo-deny && cargo deny init && cargo deny check

Erreurs courantes

Erreur "failed to open advisory database" lors de l'utilisation de cargo-deny

   Installed package `cargo-deny v0.16.1` (executable `cargo-deny.exe`)
PS E:\Rust\easy-publish> cargo deny check
2024-11-11 02:07:34 [ERROR] failed to fetch advisory database https://github.com/RustSec/advisory-db: An IO error occurred when talking to the server: error sending request for url (https://github.com/RustSec/advisory-db/info/refs?service=git-upload-pack)

Solution 1 : Vous pouvez essayer :

  1. Supprimer le répertoire ~/.cargo/advisory-db/, puis utiliser cargo deny fetch / cargo deny check pour le télécharger à nouveau. Essayez plusieurs fois ?
  2. Modifier l'adresse Git dans la configuration deny.toml pour utiliser le miroir sur Gitee : https://gitee.com/tyr-rust-bootcamp-mirror/advisory-db.git
  3. Supprimer deny.toml, exécuter cargo deny init pour en générer un nouveau, puis le modifier selon vos besoins.
  4. Vérifiez votre connexion réseau et trouvez une solution.

Solution 2 : Vous pouvez également essayer en exécutant : cargo deny check advisories

Après mise à jour vers la dernière version, erreur "this key has been removed"

Solution :

  1. Supprimer d'abord le fichier de configuration deny.toml du projet
  2. Exécuter la commande cargo deny init dans le répertoire racine du projet pour générer un nouveau fichier deny.toml
  3. Dans deny.toml, trouver la section allow puis copier les licences de l'ancien fichier allow dans le nouveau deny.toml, comme ceci :
allow = [
    "MIT",
    "Apache-2.0",
    "Apache-2.0 WITH LLVM-exception",
    "Unicode-DFS-2016",
    "MPL-2.0",
    "BSD-2-Clause",
    "BSD-3-Clause",
    "ISC",
    "CC0-1.0",
    "OpenSSL",
]
  1. Exécuter cargo deny check pour vérifier si tout fonctionne correctement

Étiquettes: cargo-deny Rust dépendances conformité Sécurité

Publié le 30 juin à 02h10