
Este pipe utiliza Snyk para encontrar, corregir y monitorear vulnerabilidades conocidas en las dependencias de tu aplicación y en la imagen de Docker.
Agrega el siguiente fragmento a la sección de script de tu archivo bitbucket-pipelines.yml:
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: "<string>"
# LANGUAGE: "<string>" # Required unless SNYK_TEST_JSON_INPUT is set
# IMAGE_NAME: "<string>" # Only required if LANGUAGE set to "docker"
# SNYK_BASE_IMAGE: "<string>" # Custom base image
# CODE_INSIGHTS_RESULTS: "<boolean>" # Optional.
# SNYK_TEST_JSON_INPUT: "<string>" # Optional. The filename or path of a JSON file containg the output from running a test with the Snyk CLI (with json output option).
# PROTECT: "<boolean>" # Optional.
# DONT_BREAK_BUILD: "<boolean>" # Optional.
# MONITOR: "<boolean>" # Optional.
# SEVERITY_THRESHOLD: "<low|medium|high|critical>" # Optional.
# ORGANIZATION: "<string>" # Optional.
# PROJECT_FOLDER: "<string>" # Optional.
# TARGET_FILE: "<string>" # Optional.
# EXTRA_ARGS: "<string>" # Optional.
# DEBUG: "<boolean>" # Optional.
# SNYK_API: "<string"> # Optional.
(*) = variable requerida.
Al integrar Snyk en Bitbucket Pipelines, puedes probar, corregir y monitorear continuamente tu código en busca de vulnerabilidades conocidas en tus dependencias y en la imagen de Docker.
Para obtener más información sobre Snyk, visita nuestro sitio web.
Para lenguajes / gestores de paquetes con entornos más avanzados, como Java con Maven o Gradle, debes usar directamente la CLI de Snyk en tu pipeline. Consulta el ejemplo "Uso directo de la CLI de Snyk". Si también deseas generar un informe de Code Insights, puedes pasar la salida de las pruebas de la CLI de Snyk a este Pipe; consulta el ejemplo "Generación del informe de Code Insights a partir de una salida JSON de Snyk existente".
El token de API de Snyk es necesario para usar este pipe.
Usa Snyk para escanear una aplicación Node.js y detener la compilación si se encuentran vulnerabilidades.
script:
- npm install
- npm test
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
LANGUAGE: "node"
- npm publish
Usa una imagen de Docker personalizada proporcionada para ejecutar tus escaneos de Snyk. Útil si no deseas usar las imágenes de Snyk predeterminadas. La imagen tendrá el formato <MY_CUSTOM_IMAGE>:<TAG>, donde MY_CUSTOM_IMAGE y TAG corresponden a las variables SNYK_BASE_IMAGE y LANGUAGE, respectivamente.
script:
- docker build -t $IMAGE_NAME .
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
LANGUAGE: "latest"
SNYK_BASE_IMAGE: $BASE_IMAGE_NAME
TARGET_FILE: "Dockerfile"
- docker push $IMAGE_NAME
### Ejemplo básico de escaneo de imagen Docker
Usa Snyk para escanear una imagen de Docker y detener la compilación si se encuentran vulnerabilidades.
```yaml
script:
- docker build -t $IMAGE_NAME .
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
LANGUAGE: "docker"
IMAGE_NAME: $IMAGE_NAME
TARGET_FILE: "Dockerfile"
- docker push $IMAGE_NAME
Esto es especialmente relevante para aquellos lenguajes que tienen entornos de compilación más complejos, por ejemplo Java con Maven o Gradle. En estos escenarios, puedes probar tu aplicación con la CLI de Snyk usando alguna variante de snyk test. La forma más sencilla de instalar la CLI de Snyk es con npm (npm install -g snyk), pero si npm no está disponible en tu entorno de compilación, puedes descargar un binario con curl desde https://github.com/snyk/snyk/releases.
script:
- mvn install
- npm install -g snyk # binary download also available
- snyk test --all-projects
# rest of your pipeline...
Esto es especialmente relevante para aquellos lenguajes que tienen entornos de compilación más complejos, por ejemplo Java con Maven o Gradle. En estos escenarios, puedes probar tu aplicación con la CLI de Snyk usando alguna variante de snyk test --json > snyk-test-output.json y luego pasar el archivo de salida al Pipe para generar un informe de Code Insights. La forma más sencilla de instalar la CLI de Snyk es con npm (npm install -g snyk), pero si npm no está disponible en tu entorno de compilación, puedes descargar un binario con curl desde https://github.com/snyk/snyk/releases.
script:
- mvn install
- npm install -g snyk # binary download also available
- snyk test --all-projects --json > snyk-test-output.json
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
SNYK_TEST_JSON_INPUT: "snyk-test-output.json"
# rest of your pipeline...
Aplica los parches de Snyk a una aplicación Node.js y continúa escaneando las dependencias solo en busca de vulnerabilidades de gravedad crítica, sin detener la compilación si se encuentra alguna. También opta por monitorear los estados de las dependencias en Snyk.io para recibir alertas si se encuentran nuevas vulnerabilidades. Luego continúa con la compilación de la imagen de Docker y escanéala en busca de vulnerabilidades de gravedad crítica.
script:
- npm install
- npm test
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
LANGUAGE: "node"
PROTECT: "true"
SEVERITY_THRESHOLD: "critical"
DONT_BREAK_BUILD: "true"
MONITOR: "true"
- docker build -t $IMAGE_NAME .
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
LANGUAGE: "docker"
IMAGE_NAME: $IMAGE_NAME
TARGET_FILE: "Dockerfile"
SEVERITY_THRESHOLD: "high"
DONT_BREAK_BUILD: "true"
MONITOR: "true"
- docker push $IMAGE_NAME
Para los clientes que utilizan instancias no predeterminadas de Snyk, se requiere el uso de SNYK_API para especificar la URL. Esto aplica a los clientes de MT-EU, MT-AU y de un solo inquilino.
script:
- npm install
- npm test
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
SNYK_API: https://api.eu.snyk.io
LANGUAGE: "node"
- npm publish
Para garantizar la estabilidad y la calidad a largo plazo de este proyecto, estamos migrando a un modelo de contribuciones cerradas a partir de agosto de 2025. Este cambio permite que nuestro equipo principal se centre en una hoja de ruta de desarrollo centralizada y en un aseguramiento riguroso de la calidad, algo esencial para un componente con un uso tan extenso.
Todo nuestro desarrollo permanecerá público por transparencia. Agradecemos a la comunidad su apoyo y sus valiosas contribuciones.
Los issues de GitHub se han desactivado en este repositorio como parte de nuestra transición a un modelo de contribuciones cerradas. El equipo de soporte de Snyk no monitorea activamente los issues de GitHub en ningún proyecto de desarrollo de Snyk.
Para obtener ayuda con los productos de Snyk, utiliza la página de soporte de Snyk, que es la forma más rápida de recibir asistencia.
Copyright (c) 2019 Snyk Ltd. y otros. Licenciado bajo Apache 2.0, consulta el archivo LICENSE.txt.
| Variable | Uso |
|---|
| SNYK_TOKEN (*) | El token de API de Snyk. |
| LANGUAGE (*) | El lenguaje de desarrollo (p. ej. node, ruby, composer, dotnet o docker). Consulta Dockerhub para obtener una lista completa de las etiquetas posibles. NOTA: Cuando se usa con SNYK_BASE_IMAGE, este campo se refiere a la etiqueta de tu imagen base |
| IMAGE_NAME (*) | Para el lenguaje docker, la imagen sobre la que se realizará un escaneo de Docker. |
| SNYK_BASE_IMAGE | Proporciona tu propia imagen base si no deseas usar Snyk Images. Predeterminado: snyk/snyk. NOTA: LANGUAGE hará referencia a la etiqueta de tu imagen base; asegúrate de que la etiqueta sea válida |
| CODE_INSIGHTS_RESULTS | Crea un informe de Code Insights con los resultados de las pruebas de Snyk. Predeterminado: false. |
| SNYK_TEST_JSON_INPUT | Úsalo si solo deseas crear un informe de Code Insights a partir de una salida snyk test --json generada previamente. Consulta el ejemplo a continuación en la sección "Generación del informe de Code Insights a partir de una salida JSON de Snyk existente". |
| PROTECT | Esto aplicará los parches especificados en tu archivo .snyk al sistema de archivos local. (Después de ejecutar Snyk Wizard) Predeterminado: false. |
| DONT_BREAK_BUILD | Continúa la compilación a pesar de los problemas encontrados. Predeterminado: false. |
| MONITOR | Registra una instantánea del proyecto en la interfaz de Snyk y sigue monitoreándolo después de la prueba inicial. Predeterminado: false. |
| SEVERITY_THRESHOLD | Informa sobre problemas de nivel igual o superior al nivel proporcionado. Valores permitidos: low, med, high, critical. Predeterminado: low. |
| ORGANIZATION | Organización con la que se ejecutará la CLI. Predeterminado: ninguna. |
| PROJECT_FOLDER | La carpeta en la que se encuentra el proyecto. Predeterminado: .. |
| TARGET_FILE | El archivo de paquete (p. ej. package.json); equivalente a --file= en la CLI. Para Docker debe apuntar al Dockerfile. Predeterminado: ninguno. |
| EXTRA_ARGS | Argumentos adicionales que se pasarán a la CLI de Snyk. Predeterminado: ninguno. |
| DEBUG | Activa información de depuración adicional. Predeterminado: false. |
| SNYK_API | Especifica el endpoint de la API de Snyk. Predeterminado: https://api.snyk.io (entorno estándar MT-US de Snyk) |