CLI
Guides
CLI Scanverra
Analysez n'importe quel code depuis votre terminal ou votre pipeline CI avec @scanverra/cli. L'analyse s'exécute sur votre propre machine, seuls les résultats sont envoyés à Scanverra.
Démarrage rapide
N'installez rien globalement, ou exécutez npm i -g @scanverra/cli pour obtenir une commande scanverra permanente.
npx @scanverra/cli login # paste an API key from Dashboard > API keys npx @scanverra/cli scan .
Fonctionnement
Toujours à jour
Vous exécutez toujours les vérifications les plus récentes, sans version de CLI séparée à suivre ou à mettre à jour manuellement.
Le même moteur que le tableau de bord
Les résultats correspondent à ceux d'une analyse lancée depuis Scanverra, quel que soit l'endroit où vous l'exécutez.
Analyse en local
Vos fichiers source sont lus sur votre propre machine. Par défaut, seuls les résultats sont envoyés à Scanverra, jamais le contenu des fichiers ni les lignes de code concernées.
Apparaît dans votre tableau de bord
Chaque analyse reçoit un résumé rédigé par IA et un lien, la même page de résultats qu'une analyse lancée depuis le tableau de bord.
Commandes
| Commande | Description |
|---|---|
scanverra login | Vérifie et enregistre votre clé API |
scanverra logout | Supprime la clé enregistrée |
scanverra whoami | Affiche le compte et le forfait associés à la clé |
scanverra scan [path] | Analyse un dossier (par défaut, le dossier courant), affiche les résultats et les envoie |
Options courantes
| Option | Description |
|---|---|
--json / --sarif | Sortie lisible par une machine. SARIF fonctionne avec GitHub code scanning et l'import Sonar |
--fail-on <severity> | Se termine en échec si un résultat de cette sévérité ou plus existe (par défaut : high) |
--category <list> | N'inclure que les résultats security, dependency, iac ou quality |
--exclude <glob> | Ignore les chemins correspondants. Un fichier .scanverraignore fonctionne de la même façon |
--no-upload | Analyse uniquement, n'envoie pas les résultats à Scanverra |
--include-code | Envoie aussi la ligne de code concernée pour chaque résultat (désactivé par défaut) |
--offline | Utilise les règles en cache sans aucun appel réseau |
--api-key, --api-url | Remplace les identifiants ou le serveur, utile en CI |
Ce qui est envoyé
Chemins de fichiers, numéros de ligne, identifiants de règle, titres, descriptions, suggestions de correction, sévérités, noms et versions des dépendances, ainsi que le nom du projet, la branche, le commit et le numéro de PR.
Le contenu des fichiers, et la ligne de code concernée pour chaque résultat. Les résultats de type secret ne contiennent jamais la valeur du secret elle-même. Passez --include-code si vous souhaitez voir les lignes concernées dans le tableau de bord.
Comment les fichiers sont choisis
- Dans un dépôt git, les fichiers suivis et non suivis sont utilisés, et .gitignore est respecté. En dehors de git, les dossiers habituels de build et de dépendances sont ignorés.
- Un fichier .scanverraignore (un motif glob par ligne) et des options --exclude répétables ajoutent d'autres exclusions.
- Supprimez un résultat précis avec un commentaire scanverra-ignore ou nosec sur la ligne précédente.
Codes de sortie
| 0 | Succès, et aucun résultat n'a atteint le seuil --fail-on |
| 1 | Un résultat a atteint le seuil, ou le quality gate a échoué avec --fail-on-gate |
| 2 | Erreur d'utilisation, ou le serveur a rejeté la clé ou le forfait |
Utilisation en CI
Stockez la clé API en tant que secret, comme pour toute autre intégration CI Scanverra, et mettez en cache le dossier des règles pour qu'un nouveau runner ne les retélécharge pas à chaque exécution.
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 20 }
- run: npx @scanverra/cli scan . --fail-on high
env:
SCANVERRA_API_KEY: ${{ secrets.SCANVERRA_API_KEY }}Mettre les règles en cache entre les exécutions
- uses: actions/cache@v4
with:
path: ~/.cache/scanverra
key: scanverra-rules-${{ github.run_id }}
restore-keys: scanverra-rules-Dépannage
| Message | Que faire |
|---|---|
Not logged in | Exécutez scanverra login, ou définissez SCANVERRA_API_KEY |
API key was rejected | La clé est incorrecte ou a été révoquée. Créez-en une nouvelle dans API Keys |
Requires a Pro, Team or Enterprise plan | Passez à un forfait supérieur, puis réessayez |
Daily limit for downloading the scanner rules reached | Mettez le dossier des règles en cache en CI, voir ci-dessus |
No scannable files found | Vérifiez le chemin ainsi que votre .gitignore ou .scanverraignore |
Prêt à analyser depuis le terminal ?
Générez une clé API, puis lancez votre première analyse en moins d'une minute.