GitLab CI
Configuración previa
Añade las siguientes variables en Settings → CI/CD → Variables de tu proyecto:
| Variable | Protegida | Descripción |
|---|---|---|
GERION_API_URL | Sí | URL del Gerion API Gateway |
GERION_API_KEY | Sí (enmascarada) | API key M2M de tu organización |
Pipelines
El resultado se envía al dashboard de Gerion. Copia este contenido en tu .gitlab-ci.yml:
stages: - security
gerion-scan: stage: security image: ghcr.io/gerion-appsec/gerion-cli:latest needs: [] rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_PIPELINE_SOURCE == "schedule" script: - gerion scan-all .Sube los resultados al Security Dashboard de GitLab (requiere GitLab Ultimate). Los hallazgos aparecen directamente en el widget de seguridad del Merge Request.
stages: - security
gerion-scan-sarif: stage: security image: ghcr.io/gerion-appsec/gerion-cli:latest needs: [] rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH script: - gerion scan-all . --format sarif --output-file gerion-results.sarif artifacts: when: always expire_in: 30 days paths: - gerion-results.sarif reports: sast: gerion-results.sarifConfigura un pipeline programado en Settings → CI/CD → Schedules apuntando a custom:nightly.
stages: - security
gerion-nightly: stage: security image: ghcr.io/gerion-appsec/gerion-cli:latest needs: [] rules: - if: $CI_PIPELINE_SOURCE == "schedule" script: - gerion scan-all . --format json --output-file gerion-results.json artifacts: when: always expire_in: 90 days paths: - gerion-results.jsonTemplate reutilizable (include)
En lugar de copiar el YAML en cada repositorio, puedes incluir el template oficial de Gerion y extenderlo con tus propias variables:
include: - project: 'gerion-appsec/gerion-cicd-configs' file: '/gitlab-ci/gerion-include.yml' ref: main
gerion-scan: extends: .gerion-scan # hereda toda la config base variables: GERION_SCAN_TYPE: "secrets" # sobreescribe solo el tipo de scanVariables disponibles en el template
| Variable | Defecto | Descripción |
|---|---|---|
GERION_SCAN_TYPE | all | all | secrets | sca | iac | sast |
GERION_OUTPUT_FORMAT | "" | json | markdown | sarif | vacío |
GERION_OUTPUT_FILE | "" | Ruta del fichero de salida |
GERION_LOG_LEVEL | info | debug | info | warning | error |
GERION_TIMEOUT | 180 | Timeout por escáner en segundos |
Para SARIF con artifacts configurados automáticamente, extiende .gerion-scan-sarif:
gerion-scan: extends: .gerion-scan-sarifNotas
- Gerion CLI detecta automáticamente las variables de GitLab CI (
GITLAB_CI,CI_PROJECT_NAME,CI_COMMIT_REF_NAME,CI_COMMIT_SHA). No es necesario configurar metadatos manualmente. - Al usar
image:en el job, el CLI se ejecuta directamente como el contenedor del job sin necesidad dedocker run.