← Mode CLI/CI

Documentation CLI/CI

Ce guide décrit comment utiliser le mode CLI/CI pour lancer des scans à distance via notre API. Apprenez à préparer vos projets, envoyer une requête et récupérer un rapport signé.

Modes d’entrée

SCM (référentiel Git)

Fournissez l’URL de votre dépôt Git ainsi que la branche et le commit. Le serveur récupère le code en lecture seule et effectue l’analyse.

ZIP

Fournissez le chemin d’un projet local que le CLI compressera en archive ZIP et téléversera au serveur. Aucun traitement n’est effectué en local.

SBOM

Fournissez un fichier SBOM (CycloneDX/SPDX) décrivant vos dépendances. Seules les bibliothèques déclarées sont analysées, pas votre code.

Utilisation

Exécutez la commande CLI avec les paramètres adaptés : chemin ou URL du projet, mode (scm, zip ou sbom), licence et formats de sortie. Le CLI s’occupe de l’authentification, de l’envoi et du téléchargement du rapport. Vous pouvez définir des quality gates, anonymiser les chemins et personnaliser les exclusions.

Options principales

Contrat API

Le CLI communique avec notre API d’ingestion pour créer un scan et suivre son état. Les endpoints utilisés sont :

Chaque requête doit être authentifiée par un jeton éphémère obtenu lors de la vérification de la licence.

Licence et jeton

Avant chaque scan, la CLI valide votre clé de licence et obtient un jeton d’authentification valide pendant une heure. Après trois échecs consécutifs de validation, la licence est temporairement bloquée (15 minutes). Un message clair est fourni en cas d’expiration du jeton.

Gestion des archives ZIP

Par défaut, le CLI exclut automatiquement les répertoires courants (node_modules, .git, dist, build, etc.) pour réduire la taille de l’archive, mais il inclut toujours les fichiers manifestes (package.json, requirements.txt…). La taille de l’archive est limitée à 50 Mo et un message d’erreur est affiché si ce seuil est dépassé.

Sécurité, signature et rétention

Les rapports générés sont signés (HMAC‑SHA256) et horodatés. Les métadonnées incluent la version du moteur, la version du scanner et la date d’analyse. Les rapports sont stockés en Europe et conservés par défaut 7 jours, sauf configuration contraire.

Quality gates

Par défaut, le pipeline échoue si le rapport contient des vulnérabilités critiques > 0 ou importantes > 5. Vous pouvez personnaliser ces règles via l’option --gate (ex. score<80,critical>0). Le verdict du gate est également renvoyé par l’API via le champ gate dans le statut.

Anonymisation des chemins

L’option --anonymize-paths remplace les chemins de fichiers dans le rapport par des empreintes SHA‑1, afin de ne pas divulguer votre arborescence. Les analyses se font néanmoins de la même manière.

Recette et scénarios

Sécurité et confidentialité

Le CLI ne contient aucun moteur d’analyse. Vos sources restent privées : seuls un ZIP ou une SBOM et des métadonnées sont transmis via HTTPS. Les rapports sont signés et horodatés, puis stockés en Europe selon votre politique de rétention.

Intégration CI

Dans vos pipelines (GitHub Actions, GitLab CI, Jenkins…), ajoutez une étape qui exécute la commande CLI avec la licence et vos paramètres. Utilisez le code de sortie 0 pour un build vert et 2 pour bloquer la merge request en cas de quality gate non satisfaite.

Contact

Pour toute question ou demande d’assistance, contactez notre équipe via le formulaire de contact.