DevOps, Engenharia e AppSec Revisado em 24/07/2026

GitLab CI/CD

Use GitLab CI/CD para executar scans SAST, SCA ou Flex (SAST + SCA) diretamente no repositório GitLab. O executor é a imagem pública e versionada ghcr.io/xmartsolutions/xguardian-ci:v1.0.0; nenhuma credencial de Registry é necessária para o cliente.

Os arquivos oficiais estão disponíveis no repositório público xguardian-gitlab-pipeline-example.

1. Criar a variável secreta

  1. no projeto GitLab, acesse Settings > CI/CD > Variables;
  2. clique em Add variable;
  3. informe XGUARDIAN_API_TOKEN em Key;
  4. cole o PAT do XGuardian em Value;
  5. selecione Masked;
  6. selecione Protected somente se a pipeline rodará exclusivamente em branches ou tags protegidas;
  7. salve a variável.

2. Escolher a modalidade

Objetivo Job Arquivo oficial
Analisar código-fonte xguardian_sast SAST
Analisar dependências xguardian_sca SCA
Analisar código e dependências xguardian_flex Flex

Copie apenas um dos arquivos para .gitlab-ci.yml na raiz do projeto na primeira homologação.

3. Configurar a aplicação

Em qualquer exemplo, substitua os valores abaixo antes de fazer commit:

Variável Como preencher
XGUARDIAN_APP_ID ID numérico da aplicação no XGuardian.
XGUARDIAN_APP_NAME Nome da aplicação no XGuardian.
XGUARDIAN_SCAN_DIRECTORY Diretório a analisar; . representa a raiz do repositório.
XGUARDIAN_EXCLUDE Opcional. Arquivos ou diretórios a ignorar, por exemplo node_modules/**,dist/**.
XGUARDIAN_TRANSLATE true para relatório em português.

XGUARDIAN_EXCLUDE não limita o scan ao que o cliente deseja analisar. Ele remove caminhos específicos do pacote enviado, sendo útil para dependências instaladas, artefatos gerados, caches e conteúdo fora do escopo.

Exemplo SAST

workflow:
  rules:
    - when: always

stages:
  - security

variables:
  XGUARDIAN_APP_ID: "1234"
  XGUARDIAN_APP_NAME: minha-aplicacao
  XGUARDIAN_SCAN_DIRECTORY: "."
  XGUARDIAN_TRANSLATE: "true"
  # XGUARDIAN_EXCLUDE: "node_modules/**,dist/**"

xguardian_sast:
  stage: security
  timeout: 75m
  image:
    name: ghcr.io/xmartsolutions/xguardian-ci:v1.0.0
    entrypoint: [""]
  variables:
    XGUARDIAN_ENV: production
    XGUARDIAN_SCAN_LOOKUP_ATTEMPTS: "30"
    XGUARDIAN_SCAN_INITIAL_DELAY_SECONDS: "30"
    XGUARDIAN_SCAN_LOOKUP_INTERVAL_SECONDS: "10"
    XGUARDIAN_SCAN_POLL_ATTEMPTS: "30"
    XGUARDIAN_SCAN_POLL_INTERVAL_SECONDS: "120"
  script:
    - xguardian-scan sast
  rules:
    - when: manual

Para SCA, mantenha a estrutura e altere o nome do job para xguardian_sca e o comando para xguardian-scan sca. Para Flex, use xguardian_flex e xguardian-scan flex. Os YAMLs completos e prontos para cópia estão no repositório público indicado acima.

4. Executar o scan

  1. faça commit do arquivo .gitlab-ci.yml;
  2. no GitLab, acesse Build > Pipelines;
  3. clique em New pipeline, escolha a branch e execute;
  4. quando a pipeline aparecer, clique no botão de execução manual do job escolhido;
  5. aguarde o job finalizar. O executor aguarda o processamento do scan antes de concluir a pipeline;
  6. consulte o resultado no XGuardian.

Checklist

  • XGUARDIAN_API_TOKEN está mascarado e não aparece no YAML;
  • o Application ID e o nome identificam a aplicação correta;
  • a imagem usa a tag fixa v1.0.0, nunca latest;
  • a modalidade escolhida corresponde ao objetivo do scan;
  • o primeiro teste foi realizado em branch controlada;
  • os achados, commit e responsável pela execução foram conferidos na Central de Riscos.
Feedback

Este artigo foi útil?