GitLab CI¶
GitLab CI pipeline files named .gitlab-ci.yml or .gitlab-ci.yaml are auto-detected as gitlab-ci and analyzed with workflow-specific zen principles.
Source Provenance¶
These pipeline principles are drawn from the GitLab CI/CD documentation and operational hardening guidance in GitLab CI/CD pipeline configuration reference.
Principles Overview¶
| Rule ID | Principle | Category | Severity |
|---|---|---|---|
gitlab-ci-001 |
Pin container image tags | Security | 8 |
gitlab-ci-002 |
Avoid exposed variables in repository YAML | Security | 8 |
gitlab-ci-003 |
Use allow_failure only with rules-based context |
Security | 6 |
gitlab-ci-004 |
Avoid god pipelines | Structure | 6 |
gitlab-ci-005 |
Reduce duplicated before_script blocks |
Consistency | 5 |
gitlab-ci-006 |
Use interruptible pipelines | Performance | 5 |
gitlab-ci-007 |
Model job DAG dependencies with needs |
Performance | 5 |
gitlab-ci-008 |
Prefer rules over only/except |
Idioms | 6 |
gitlab-ci-009 |
Cache dependency installs | Performance | 5 |
gitlab-ci-010 |
Expire artifacts | Configuration | 5 |
CLI Usage¶
You can also force language explicitly:
MCP Usage¶
Use language: "gitlab-ci" with the analyze_zen_violations MCP tool for pipeline snippets.
Notes¶
- Pipeline parsing helpers are shared in
utils/ci_yaml.pyfor CI analyzers. - Auto-detection recognises
.gitlab-ci.ymland.gitlab-ci.yamlat the repository root, as well as YAML files inside agitlab-ci/directory.