Overview
Static Application Security Testing (SAST) integrates directly into your GitLab CI/CD pipelines to catch code and manifest vulnerabilities early. It supports scanning source code, Kubernetes YAML, and Helm charts before deployment. While all GitLab plans can run SAST analyzers, Ultimate subscribers enjoy rich dashboards; free tiers can parse JSON reports.
Supported Languages and Manifests
GitLab’s SAST documentation lists supported languages, frameworks, and manifest types. In JavaScript/Node.js projects, analyzers include Semgrep and NodeJsScan. Kubernetes YAML can be scanned with KubeSec.
Available Analyzers
The following table summarizes core SAST analyzers:
Enabling SAST via CI/CD Template
GitLab’s built-in templateJobs/SAST.gitlab-ci.yml auto-detects languages and injects relevant jobs. To activate it:
include keyword, streamlining long configurations and avoiding duplication.


Default SAST Jobs
TheJobs/SAST.gitlab-ci.yml template defines jobs like:
test stage and publish a JSON report at gl-sast-report.json:
All SAST jobs default to
allow_failure: true, so pipelines won’t be blocked by detected issues.Customizing SAST Configuration
You can tweak the SAST template by setting CI variables:kubesec-sast job. Additional options:
Adjusting the SAST Stage
To run SAST in a custom stage (for example,.pre):
Example .gitlab-ci.yml
A minimal pipeline running SAST and Node.js unit tests:
.pre followed by unit_testing in test.

Viewing SAST Reports
Each SAST job outputs agl-sast-report.json. Download and inspect it with any JSON viewer.
Example KubeSec Report
Example NodeJsScan Report
