Skip to content
Back to skills

Gitlab Ci

ASecurity

> Skill, CI/CD, GitLab, Pipelines

  • 5 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
ai-agentspythongoshellfastapidockerkubernetesawsdebugginggitapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add DongDuong2001/pudo-code-system --skill gitlab-ci --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gitlab Ci?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Gitlab Ci
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dongduong2001-gitlab-ci/badge)](https://www.skillsdirectory.com/skills/dongduong2001-gitlab-ci)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# GitLab CI/CD Skill
> Skill, CI/CD, GitLab, Pipelines

## Context
Use this skill when designing or debugging GitLab CI/CD pipelines. This covers `.gitlab-ci.yml` configuration, GitLab Runners, pipeline stages, DAG (Directed Acyclic Graph) pipelines, merge request pipelines, include/extends patterns, and environment-based deployments. The AI will act as a specialist in GitLab CI idioms and best practices.

## Variables
- `{{pipeline_trigger}}`: What triggers the pipeline (e.g., `merge_request_event`, `push to main`, `schedule`, `manual`).
- `{{pipeline_goal}}`: What the pipeline accomplishes (e.g., lint, test, build Docker image, deploy to Kubernetes).
- `{{tech_stack}}`: Language/framework/tooling (e.g., Python 3.11, Docker, Helm, AWS).
- `{{runner_type}}`: Runner executor type (e.g., `docker`, `shell`, `kubernetes`, GitLab-hosted SaaS runner).
- `{{environment}}`: Target deployment environment (e.g., `production` on GKE, `staging` on a VPS).

## Prompt
```text
Adopt the persona of a Senior GitLab CI/CD Engineer. I need to design the following pipeline:

Goal: {{pipeline_goal}}

Trigger: {{pipeline_trigger}}

Tech Stack: {{tech_stack}}

Runner Type: {{runner_type}}

Target Environment: {{environment}}

Design the `.gitlab-ci.yml` configuration adhering to these standards:

1. **Pipeline Structure:** Define clear `stages`. Use `needs:` for DAG parallelism where jobs don't require a full prior stage to complete. Prefer `extends:` and `!reference` over copy-pasting job templates.
2. **Security:** Use CI/CD Variables (masked and protected) for all secrets. Use `environment:` with protected branches for production. Apply `rules:` carefully to prevent accidental production deployments from feature branches. Never echo secrets in logs.
3. **Efficiency:** Use `cache:` with a keyed strategy (e.g., `$CI_COMMIT_REF_SLUG`) to share dependencies across stages. Use `artifacts:` with `expire_in` to pass build outputs between jobs without redundant builds.
4. **Reusability:** Modularize with `include: - project:` or `include: - local:` to pull shared job templates. Use `trigger:` for multi-project pipelines if applicable.
5. **Merge Request Workflows:** Include a `rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event"` block for MR-only jobs like linting and short tests.
6. **Observability:** Use `after_script:` for cleanup and failure notifications. Tag jobs with appropriate `tags:` to route them to the correct runner.

Provide the full `.gitlab-ci.yml` with comments on every structural and security decision.
```

## Example Usage

**Input:**
```text
Adopt the persona of a Senior GitLab CI/CD Engineer. I need to design the following pipeline:

Goal: Run lint and tests on MRs, build a Docker image and push to GitLab Container Registry on main, deploy to staging automatically and production manually.

Trigger: merge_request_event and push to main

Tech Stack: Python 3.11 (FastAPI), Docker, GitLab Container Registry, Kubernetes

Runner Type: GitLab-hosted SaaS runner (docker executor)

Target Environment: Staging (auto) and Production (manual) on GKE

Design the `.gitlab-ci.yml` configuration adhering to these standards:
[...rest of prompt...]
```

**Expected Output:**
A complete `.gitlab-ci.yml` with:
- `stages: [lint, test, build, deploy-staging, deploy-production]`
- DAG `needs:` so `build` starts as soon as `test` finishes, not waiting for all of `test` stage
- Docker image tagged with `$CI_COMMIT_SHORT_SHA` for immutability
- `environment: production` with `when: manual` and protected branch rules
- `cache:` keyed on `$CI_COMMIT_REF_SLUG` for pip dependencies

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…