CLI
Anleitungen
Scanverra CLI
Scannen Sie jede Codebasis von Ihrem Terminal oder Ihrer CI-Pipeline aus mit @scanverra/cli. Der Scan läuft auf Ihrem eigenen Rechner, an Scanverra werden nur die Ergebnisse gesendet.
Schnellstart
Nichts global installieren, oder npm i -g @scanverra/cli für einen dauerhaften scanverra-Befehl ausführen.
npx @scanverra/cli login # paste an API key from Dashboard > API keys npx @scanverra/cli scan .
So funktioniert es
Immer aktuell
Sie führen immer die neuesten Prüfungen aus, keine separate CLI-Version, die Sie manuell verfolgen oder aktualisieren müssen.
Dieselbe Engine wie das Dashboard
Die Ergebnisse entsprechen einem Scan, der in Scanverra gestartet wurde, unabhängig davon, wo Sie ihn ausführen.
Scannt lokal
Ihre Quelldateien werden auf Ihrem eigenen Rechner gelesen. Standardmäßig werden nur die Funde an Scanverra gesendet, nicht der Dateiinhalt oder die betroffenen Codezeilen.
Erscheint in Ihrem Dashboard
Jeder Scan erhält eine KI-geschriebene Zusammenfassung und einen Link, dieselbe Ergebnisseite wie ein im Dashboard gestarteter Scan.
Befehle
| Befehl | Beschreibung |
|---|---|
scanverra login | API-Schlüssel prüfen und speichern |
scanverra logout | Gespeicherten Schlüssel entfernen |
scanverra whoami | Konto und Plan hinter dem Schlüssel anzeigen |
scanverra scan [path] | Einen Ordner scannen (Standard: aktueller Ordner), Ergebnisse anzeigen und hochladen |
Wichtige Optionen
| Option | Beschreibung |
|---|---|
--json / --sarif | Maschinenlesbare Ausgabe. SARIF funktioniert mit GitHub Code Scanning und dem Sonar-Import |
--fail-on <severity> | Mit Fehler beenden, wenn ein Fund dieser Schwere oder höher existiert (Standard: high) |
--category <list> | Nur security-, dependency-, iac- oder quality-Funde einschließen |
--exclude <glob> | Passende Pfade überspringen. Eine .scanverraignore-Datei wirkt genauso |
--no-upload | Nur scannen, keine Ergebnisse an Scanverra senden |
--include-code | Auch die betroffene Codezeile jedes Funds hochladen (standardmäßig aus) |
--offline | Zwischengespeicherte Regeln ohne Netzwerkzugriff verwenden |
--api-key, --api-url | Zugangsdaten oder Server überschreiben, nützlich in CI |
Was hochgeladen wird
Dateipfade, Zeilennummern, Regel-IDs, Titel, Beschreibungen, Fix-Vorschläge, Schweregrade, Namen und Versionen von Abhängigkeiten sowie Projektname, Branch, Commit und PR-Nummer.
Dateiinhalte und die betroffene Codezeile jedes Funds. Secret-Funde enthalten nie den Secret-Wert selbst. Mit --include-code können betroffene Zeilen im Dashboard angezeigt werden.
Wie Dateien ausgewählt werden
- Innerhalb eines Git-Repositorys werden verfolgte und nicht verfolgte Dateien verwendet, .gitignore wird respektiert. Außerhalb von Git werden übliche Build- und Abhängigkeitsordner übersprungen.
- Eine .scanverraignore-Datei (ein Glob-Muster pro Zeile) und wiederholbare --exclude-Flags fügen weitere Ausschlüsse hinzu.
- Einen einzelnen Fund mit einem scanverra-ignore- oder nosec-Kommentar in der Zeile darüber unterdrücken.
Exit-Codes
| 0 | Erfolgreich, und kein Fund hat den --fail-on-Schwellenwert erreicht |
| 1 | Ein Fund hat den Schwellenwert erreicht, oder das Quality Gate ist mit --fail-on-gate fehlgeschlagen |
| 2 | Benutzungsfehler, oder der Server hat den Schlüssel oder Plan abgelehnt |
Einsatz in CI
Speichern Sie den API-Schlüssel als Secret, genau wie bei jeder anderen Scanverra-CI-Integration, und cachen Sie den Regelordner, damit ein neuer Runner sie nicht bei jedem Lauf erneut herunterlädt.
- 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 }}Regeln zwischen Läufen cachen
- uses: actions/cache@v4
with:
path: ~/.cache/scanverra
key: scanverra-rules-${{ github.run_id }}
restore-keys: scanverra-rules-Fehlerbehebung
| Meldung | Was zu tun ist |
|---|---|
Not logged in | scanverra login ausführen oder SCANVERRA_API_KEY setzen |
API key was rejected | Der Schlüssel ist falsch oder wurde widerrufen. Einen neuen unter API-Schlüssel erstellen |
Requires a Pro, Team or Enterprise plan | Plan upgraden und erneut versuchen |
Daily limit for downloading the scanner rules reached | Regelordner in CI cachen, siehe oben |
No scannable files found | Pfad sowie .gitignore und .scanverraignore prüfen |
Bereit, vom Terminal aus zu scannen?
Erstellen Sie einen API-Schlüssel und führen Sie Ihren ersten Scan in weniger als einer Minute aus.