CLI
Guías
CLI de Scanverra
Analiza cualquier código desde tu terminal o pipeline de CI con @scanverra/cli. El análisis se ejecuta en tu propia máquina y solo los resultados se envían a Scanverra.
Inicio rápido
No instales nada globalmente, o ejecuta npm i -g @scanverra/cli para tener el comando scanverra de forma permanente.
npx @scanverra/cli login # paste an API key from Dashboard > API keys npx @scanverra/cli scan .
Cómo funciona
Siempre actualizado
Siempre ejecutas las comprobaciones más recientes, sin una versión de CLI aparte que rastrear o actualizar a mano.
El mismo motor que el panel
Los resultados coinciden con los de un análisis iniciado en Scanverra, sin importar dónde lo ejecutes.
Analiza en local
Tus archivos fuente se leen en tu propia máquina. Por defecto, solo se envían a Scanverra los hallazgos, no el contenido de los archivos ni las líneas de código detectadas.
Aparece en tu panel
Cada análisis recibe un resumen escrito por IA y un enlace, la misma página de resultados que un análisis iniciado desde el panel.
Comandos
| Comando | Descripción |
|---|---|
scanverra login | Verifica y guarda tu clave de API |
scanverra logout | Elimina la clave guardada |
scanverra whoami | Muestra la cuenta y el plan asociados a la clave |
scanverra scan [path] | Analiza una carpeta (por defecto, la actual), muestra los resultados y los sube |
Opciones habituales
| Opción | Descripción |
|---|---|
--json / --sarif | Salida legible por máquina. SARIF funciona con GitHub code scanning y la importación en Sonar |
--fail-on <severity> | Termina con error si existe un hallazgo de esta severidad o superior (por defecto: high) |
--category <list> | Incluye solo hallazgos de security, dependency, iac o quality |
--exclude <glob> | Omite las rutas que coincidan. Un archivo .scanverraignore funciona igual |
--no-upload | Solo analiza, no envía resultados a Scanverra |
--include-code | Sube también la línea de código detectada de cada hallazgo (desactivado por defecto) |
--offline | Usa las reglas en caché sin llamadas de red |
--api-key, --api-url | Sustituye las credenciales o el servidor, útil en CI |
Qué se sube
Rutas de archivo, números de línea, IDs de regla, títulos, descripciones, sugerencias de corrección, severidades, nombres y versiones de dependencias, y el nombre del proyecto, la rama, el commit y el número de PR.
El contenido de los archivos y la línea de código detectada de cada hallazgo. Los hallazgos de secretos nunca incluyen el valor del secreto en sí. Usa --include-code si quieres ver las líneas detectadas en el panel.
Cómo se eligen los archivos
- Dentro de un repositorio git se usan los archivos rastreados y no rastreados, y se respeta .gitignore. Fuera de git se omiten las carpetas habituales de build y dependencias.
- Un archivo .scanverraignore (un patrón glob por línea) y las flags --exclude repetibles añaden más exclusiones.
- Suprime un hallazgo concreto con un comentario scanverra-ignore o nosec en la línea anterior.
Códigos de salida
| 0 | Éxito, y ningún hallazgo alcanzó el umbral de --fail-on |
| 1 | Un hallazgo alcanzó el umbral, o el quality gate falló con --fail-on-gate |
| 2 | Error de uso, o el servidor rechazó la clave o el plan |
Uso en CI
Guarda la clave de API como secreto, igual que en cualquier otra integración de CI de Scanverra, y guarda en caché la carpeta de reglas para que un runner nuevo no las vuelva a descargar en cada ejecución.
- 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 }}Cachear las reglas entre ejecuciones
- uses: actions/cache@v4
with:
path: ~/.cache/scanverra
key: scanverra-rules-${{ github.run_id }}
restore-keys: scanverra-rules-Solución de problemas
| Mensaje | Qué hacer |
|---|---|
Not logged in | Ejecuta scanverra login, o define SCANVERRA_API_KEY |
API key was rejected | La clave es incorrecta o fue revocada. Crea una nueva en API Keys |
Requires a Pro, Team or Enterprise plan | Actualiza tu plan y vuelve a intentarlo |
Daily limit for downloading the scanner rules reached | Cachea la carpeta de reglas en CI, ver arriba |
No scannable files found | Revisa la ruta y tu .gitignore o .scanverraignore |
¿Listo para analizar desde la terminal?
Genera una clave de API y ejecuta tu primer análisis en menos de un minuto.