用途:校验、lint、审计或修复 .gitlab-ci.yml 中的流水线、stages 与 jobs,覆盖语法、最佳实践和安全三类检查。
主要能力:语法与 schema 校验(如 yaml-syntax、job-stage-undefined、dependencies-undefined-job);最佳实践检查(如 cache-missing、artifact-no-expiration、dag-optimization);安全检查(如 hardcoded-password、curl-pipe-bash、include-remote-unverified)。严重级别分为 critical、high、medium、low/suggestion,critical 与 high 建议阻止合并。
使用方式:先执行 chmod +x devops-skills-plugin/skills/gitlab-ci-validator/scripts/.sh devops-skills-plugin/skills/gitlab-ci-validator/scripts/.py,并确认 python3 --version。设置 VALIDATOR="bash devops-skills-plugin/skills/gitlab-ci-validator/scripts/validate_gitlab_ci.sh",然后按需运行:$VALIDATOR .gitlab-ci.yml(完整校验)、--syntax-only、--best-practices、--security-only、--test-only(需 gitlab-ci-local 与 Docker)、--strict。推荐顺序为语法、最佳实践、安全、可选本地测试、strict 合并门禁;必需门禁为语法与安全。
适用场景:合并前检查、流水线失败排查、安全审查、CI 集成(可在 validate stage 中调用同一脚本)。
限制:该技能只做配置与静态模式校验,不执行生产流水线;运行时行为需用 gitlab-ci-local 或 GitLab CI Lint 确认。缺少 python3 时无法运行;缺少 PyYAML 时 python_wrapper.sh 会尝试创建 .venv 并安装 pyyaml,受限或离线环境需预装;缺少 gitlab-ci-local、node 或 docker 时 --test-only 会报告警告或失败,可跳过本地执行测试。文档参考位于 devops-skills-plugin/skills/gitlab-ci-validator/docs/ 下的 gitlab-ci-reference.md、best-practices.md、common-issues.md。