Scanverra
Repo Scanner

Referencia de la API

Escáner de repositorios

Análisis estático para repositorios de GitHub, Bitbucket y Azure DevOps - SAST, detección de secretos, análisis de CVEs de dependencias, comprobaciones de IaC y señales de calidad de código.

POST/api/repo/scanasync

Iniciar un análisis - calidad de código, problemas de seguridad, correcciones de IA

Los análisis de repositorios se ejecutan de forma asíncrona y devuelven de inmediato solo un scanId. Consulta GET /api/repo/result más abajo, o visualiza los resultados en https://www.scanverra.com/repo?scan={scanId}. Tu cuenta de GitHub, Bitbucket o Azure DevOps debe estar conectada antes en la configuración de Scanverra — el análisis se ejecuta con el token guardado ahí, no con uno enviado por solicitud.

Cuerpo de la solicitud

{
  "owner": "your-org",
  "repo": "your-repo",
  "branch": "main"
}

Respuesta (inmediata)

{
  "scanId": "clxyz..."
}

Ejemplo

curl -X POST https://www.scanverra.com/api/repo/scan \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"owner":"acme","repo":"website","branch":"main"}'
GET/api/repo/resultsynchronous

Consultar un análisis por id hasta que termine

Parámetros de consulta

?id={scanId}

Respuesta

{
  "id": "clxyz...",
  "status": "completed",
  "score": 82,
  "qualityGate": "passed",
  "issues": [...],
  "fixes": [...],
  "riskFindings": [...],
  "dependencyVulns": [...],
  "aiSummary": "..."
}

status puede ser running, completed o failed. Sigue consultando hasta que deje de ser running.

Ejemplo

curl "https://www.scanverra.com/api/repo/result?id=clxyz..." \
  -H "X-API-Key: sk_live_..."

El único endpoint con un gate integrado

qualityGate se calcula automáticamente: "failed" si algún hallazgo tiene severity: "critical", o si score < 60. score empieza en 100 y se reduce mediante descuentos ponderados por gravedad, con un tope por categoría (Security ≤50, Dependency ≤30, Quality ≤15, IaC ≤15). Es la única herramienta en la que un solo campo es una señal lista para usar como aprobado/rechazado en CI — consulta Integración CI/CD.