Saltar al contenidoLockpick
Documentación

Ejecutar Lockpick en CI

Revisa tu sitio con un Pulse cuando publiques una versión, y haz fallar la compilación cuando haya hallazgos graves abiertos.

La CLI funciona en cualquier CI que tenga Node.js 20.9 o posterior. Un Pulse en CI usa un escaneo Pulse de tu cupo mensual cada vez, igual que iniciarlo en Lockpick, así que ejecútalo cuando publiques una versión y no en cada envío.

Escribe el flujo de trabajo

Desde tu repositorio, con la CLI con sesión iniciada:

Terminal
lockpick ci init <site>

Escribe .github/workflows/lockpick.yml. El flujo de trabajo se ejecuta cuando publicas una versión y cuando lo inicias desde la pestaña Actions. Ejecuta un Pulse en el sitio, espera el resultado y falla cuando los hallazgos abiertos son high o más graves. Fija la versión de la CLI con la que se escribió.

  • --fail-on critical, high, medium o low define el límite.
  • --dry-run muestra el flujo de trabajo sin escribirlo.
  • --file <path> lo escribe en otro lugar, y --force reemplaza un archivo existente.

Si la CLI tiene sesión iniciada en una dirección local, ci init te avisa: los runners de GitHub solo pueden llegar a una dirección pública de Lockpick. Pasa --host con esa dirección.

Añade la clave

El flujo de trabajo lee su clave del secreto del repositorio LOCKPICK_KEY. Usa una clave que tenga permiso para iniciar escaneos Pulse.

Terminal
gh secret set LOCKPICK_KEY

Falla con los hallazgos en cualquier lugar

--fail-on funciona en cualquier comando que termine con un escaneo completado: lockpick pulse, lockpick recheck, lockpick watch, lockpick deep start y lockpick findings. lockpick ci check <run-id> lo aplica a un escaneo que ya terminó, sin iniciar uno ni usar tu cupo, y también puede fallar por su antigüedad (--max-age-hours) o su cobertura (--min-coverage). Cuando los hallazgos abiertos alcanzan el límite, el comando termina con el código 8, así que cualquier CI puede detener la compilación:

Terminal
lockpick pulse <site> --fail-on high --timeout 900

En CI, la CLI imprime una línea cada vez que cambia el estado de un escaneo en lugar de una línea de progreso en vivo, y --json imprime solo el resultado. Define FORCE_COLOR=1 para tener color en un registro que lo muestre.

Códigos de salida de la CLI y del script release-scan

La CLI y el script release-scan independiente usan contratos de salida distintos. Comprueba cuál ejecuta tu trabajo.

ResultadoCLI lockpickScript release-scan independiente
Terminó dentro del umbral de hallazgos00
Los hallazgos abiertos alcanzaron el umbral81
El escaneo falló o ocurrió otro errorMira códigos de salida de la CLI1

El script release-scan usa una clave de CI limitada a un sitio (LOCKPICK_CI_KEY); la CLI usa LOCKPICK_KEY y los permisos que aprobaste.

¿Te ha sido útil?

En esta página