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.
documentation
Create senior-level deep research dossiers and roadmap companions. Use when the user asks for a dossier, senior research, deep research, in-depth research, mental models for a topic, senior perspective on a topic, how something actually works, ramp up on a topic, architectural deep dive, tradeoffs, failure modes, or what a senior would notice. Produces current-directory research-* and roadmap-* markdown artifacts, not a tutorial or short summary.
development
Senior-level Knative and OpenShift Serverless guidance for Serving, Eventing, Functions, autoscaling, scale-to-zero, CloudEvents, RabbitMQ/Kafka sources, Lambda migration, Harbor/OCI images, debugging, operations, and production rollout. Use when working with Knative Service, Revision, Route, KPA, activator, queue-proxy, Broker, Trigger, Source, Sink, kn func, OpenShift Serverless, Kourier, eventing-rabbitmq, Knative Kafka, or serverless workloads on Kubernetes/OpenShift.
development
Senior-level RHEL-family Linux operations. Use when running, debugging, hardening, patching, installing, upgrading, or operating Red Hat Enterprise Linux, Rocky Linux, AlmaLinux, CentOS Stream, Fedora-as-upstream, or related enterprise Linux hosts: systemd, RPM/DNF, SELinux, NetworkManager, firewalld, storage, kernel/kdump, FIPS/STIG, Satellite, IdM, Podman, bootc, air-gapped fleets.
development
Senior-level Proxmox VE guidance for VM creation, templates, storage, ZFS, Ceph, networking, clusters, HA, PBS backups, debugging, upgrades, security, and production/homelab operations. Use when working with Proxmox, PVE, Proxmox VE, qm, pct, pvesm, pvecm, pmxcfs, HA manager, Proxmox Backup Server, VM migration, Proxmox incidents, or Ceph/ZFS/Corosync/VLAN bridges in a Proxmox VE context.