skills/gitlab/SKILL.md
Unified GitLab skill for issues, merge requests, reviews, CI/CD, releases, and repository operations. Use whenever the user mentions GitLab, GitLab issues, merge requests/MRs, pipelines, releases, repo administration, or glab. Prefer the bundled Python CLI first for issue and MR workflows; if that path is unavailable, unsupported, or fails, fall back to glab CLI and load only the matching reference module.
npx skillsauth add mgajewskik/opencode-config gitlabInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
One GitLab skill. Use it for all GitLab work.
scripts/gl.py first for issue and merge request workflows.
glab when:
gl.py does not implement the requested actiongl.py fails because auth/env/runtime is brokenGitLab request?
├─ Issue or MR workflow?
│ ├─ Supported by scripts/gl.py? → Use gl.py first
│ └─ Not supported / failing? → Use glab fallback
├─ CI/CD, releases, repo admin, variables, tokens, or raw API?
│ └─ Load matching reference and usually use glab
└─ Auth / TLS / self-hosted trouble?
└─ Load references/configuration.md
Script location: scripts/gl.py
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" detect
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" whoami
If these fail because the environment is not ready, switch to glab and load references/configuration.md.
Prefer gl.py for the common issue lifecycle:
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" issue list
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" issue info 45
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" issue create "Bug title" --description "Details"
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" issue update 45 --title "New title"
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" issue comment 45 "Working on this"
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" issue close 45
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" issue reopen 45
Load references/issues.md when:
glab issue ...Prefer gl.py for read/review/create/update flows:
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" mr list --reviewer me
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" mr info 123
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" mr diff 123
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" mr discussions 123 --unresolved-only
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" mr create "Feature title"
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" mr update 123 --description-file /tmp/mr.md
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" mr assign 123 -r reviewer1
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" mr draft add 123 "Needs tests"
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" mr draft publish 123
Load references/mr-review.md when:
Use gl.py first for structured status, jobs, and retries:
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" pipeline list
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" pipeline status 12345
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" job log 67890 --tail 100
Load references/ci-cd.md when:
glab ci view / trace / run / lintStart with:
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" actionable
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" mr list --reviewer me
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" mr list --author me
uv run "$HOME/.config/opencode/skills/gitlab/scripts/gl.py" pipeline list --mine --status failed
Load references/work-status.md when:
gl.py does not expose directlyLine comments and suggestions must target changed lines in the MR diff. If a line comment fails or lands in the wrong place:
Switch from Python to glab when any of these is true:
gl.py returns an auth/env/runtime errorgl.py lacks the command you needglab ci viewglab ci run / run-trigglab release ...glab repo ...glab variable ...glab token ...glab api / GraphQLWhen fallback happens, state it briefly so the user knows why.
Load only what matches the task:
glab api, GraphQL, pagination, advanced endpointsglab auth status
glab mr list --reviewer=@me
glab mr view 123 --comments
glab mr diff 123
glab issue view 45 --comments
glab ci status
| Scenario | Detection | Fallback |
|----------|-----------|----------|
| Python CLI cannot auth | gl.py whoami or any command fails with auth error | Load references/configuration.md, then use glab auth status |
| Python CLI lacks needed action | No matching gl.py command | Load the matching reference and use glab |
| MR line comment fails | position / line error | Load references/position-calculation.md and references/mr-review.md |
| User asks for rare admin/integration action | request mentions releases, variables, repo admin, tokens, K8s, OpenTofu, MCP | Load references/admin-and-integrations.md |
Do not load every GitLab reference file up front. Start with the core skill, use gl.py first, and pull in only the module that matches the current action.
development
Guide technical communication for software developers. Covers email structure, team messaging etiquette, meeting agendas, and adapting messages for technical vs non-technical audiences. Use when drafting professional messages, preparing meeting communications, or improving written communication.
development
Senior-level Helm and Helm chart guidance for Kubernetes. Use when creating, reviewing, debugging, or operating Helm charts/releases: Chart.yaml, values.yaml, templates, dependencies, CRDs, hooks, RBAC, helm install/upgrade/rollback, OCI/provenance, Argo CD/Flux Helm workflows.
testing
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
testing
Create, update, review, triage, and adopt Architecture Decision Records (ADRs) using MADR-style Markdown templates and senior ADR practice. Use when the user mentions ADR, Architecture Decision Record, decision record, MADR, architectural decision, docs/decisions, supersede ADR, stale ADRs, ADR review, or wants to record a technical decision in a repository.