gitlab-ci-validator
Validate, lint, audit, or fix .gitlab-ci.yml pipelines, stages, and jobs.
By akin-ozer · 555 installs
npx skills add akin-ozer/cc-devops-skills --skill gitlab-ci-validator
Source repository · Upstream listing
GitLab CI/CD Validator
Comprehensive toolkit for validating, linting, testing, and securing .gitlab ci.yml configurations.
Trigger Phrases
Use this skill when requests include intent like:
"Validate this .gitlab ci.yml "
"Why is this GitLab pipeline failing?"
"Run a security review for our GitLab CI"
"Check pipeline best practices"
"Lint GitLab CI config before merge"
Setup And Prerequisites (Run First)
All commands below assume repository root as current working directory.
Use one canonical command path for orchestration:
Optional local execution tooling (for test only ):
Quick Start Commands
Deterministic Validation Workflow
Follow these gates in order:
1. Run Quick Start command 2 ( syntax only ).
2. If syntax fails, stop and fix errors before continuing.
3. Run Quick Start command 3 ( best practices ) and apply relevant improvements.
4. Run Quick Start command 4 ( security only ) and fix all critical / high findings before merge.
5. Optionally run Quick Start command 5 ( test only ) for local execution checks.
6. Run Quick Start command 6 ( strict ) for final merge gate.
Required gates: syntax + security.
Recommended gate: best practices.
Optional gate: local execution test.
Rule Severity Rationale And Documentation Links
Severity Model
critical : Direct credential/secret exposure or high confidence compromise path. Block merge.
high : Exploitable unsafe behavior or strong security regression. Fix before merge.
medium : Security hardening gap with realistic risk. Track and fix soon.
low / suggestion : Optimization or maintainability improvement.
Rule Classes And Why They Matter
Syntax rules ( yaml syntax , job stage undefined , dependencies undefined job ): prevent pipeline parse and dependency failures.
Best practice rules ( cache missing , artifact no expiration , dag optimization ): reduce runtime cost and improve pipeline throughput.
Security rules ( hardcoded password , curl pipe bash , include remote unverified ): reduce credential leaks and supply chain risk.
References
Local syntax reference: devops skills plugin/skills/gitlab ci validator/docs/gitlab ci reference.md
Local best practices: devops skills plugin/skills/gitlab ci validator/docs/best practices.md
Local common issues: devops skills plugin/skills/gitlab ci validator/docs/common issues.md
GitLab CI YAML reference: https://docs.gitlab.com/ee/ci/yaml/
GitLab CI/CD components: https://docs.gitlab.com/ee/ci/components/
GitLab pipeline security guidance: https://docs.gitlab.com/ee/ci/pipelines/settings.html
Fallbacks For Tool Or Environment Constraints
Missing python3 :
Behavior: validator cannot run.
Fallback: install Python 3 and rerun.
Missing PyYAML :
Behavior: python wrapper.sh auto creates .venv and installs pyyaml when possible.
Fallback in restricted/offline environments: pre install pyyaml from an internal mirror, then rerun.
Missing gitlab ci local , node , or docker :
Behavior: test only reports warning/failure.
Fallback: skip local execution testing and continue with syntax/best practice/security gates.
No execute permission on scripts:
Behavior: shell permission errors.
Fallback: rerun the setup chmod command from the Setup section.
Examples
Example 1: New Pipeline Validation
Example 2: Pre Merge Hard Gate
Example 3: CI Integration
Individual Validators (Advanced)
Done Criteria
Frontmatter name and description unchanged.
One canonical orchestrator path is used consistently.
Setup and chmod prerequisites appear before workflow/use examples.
Quick start and workflow are non duplicative (workflow references quick start gates).
Severity rationale and rule to doc references are explicit.
Fallback behavior is documented for missing tools and constrained environments.
Examples are executable from repository root.
Notes
This skill validates configuration and static patterns; it does not execute production pipelines.
Use gitlab ci local or GitLab CI Lint for runtime behavior confirmation.