From ui-color-palette
Comprehensive GitLab CLI (glab) command reference and workflows for all GitLab operations via terminal. Use when user mentions GitLab CLI, glab commands, GitLab automation, MR/issue management via CLI, CI/CD pipeline commands, repo operations, authentication setup, or any GitLab terminal operations. Routes to specialized sub-skills for auth, CI, MRs, issues, releases, repos, and 30+ other glab commands. Triggers on glab, GitLab CLI, GitLab commands, GitLab terminal, GitLab automation.
npx claudepluginhub a-ng-d/claude-ui-color-paletteThis skill uses the workspace's default tool permissions.
Comprehensive GitLab CLI (glab) command reference and workflows.
LICENSEREADME.mdSECURITY.mdVERSIONglab-alias/references/commands.mdglab-attestation/references/commands.mdglab-auth/references/commands.mdglab-changelog/references/commands.mdglab-ci/references/commands.mdglab-ci/references/pipeline-best-practices.mdglab-ci/templates/README.mdglab-ci/templates/docker-build.ymlglab-ci/templates/nodejs-basic.ymlglab-ci/templates/nodejs-multistage.ymlglab-cluster/references/commands.mdglab-config/references/commands.mdglab-deploy-key/references/commands.mdglab-duo/references/commands.mdglab-gpg-key/references/commands.mdglab-incident/references/commands.mdGuides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Comprehensive GitLab CLI (glab) command reference and workflows.
# First time setup
glab auth login
# Common operations
glab mr create --fill # Create MR from current branch
glab issue create # Create issue
glab ci view # View pipeline status
glab repo view --web # Open repo in browser
When you want different agents to appear as different GitLab users, give each agent its own GitLab bot/service account. Multiple personal access tokens on the same GitLab user still act as that same visible identity.
Use the Actor identity for actor-authored GitLab comments, replies, approvals, and other writes. Use an agent identity only when the GitLab action is explicitly that agent's own work product. Choose the intended visible actor before the first GitLab write.
Treat shell identity as sticky and unsafe by default. If another env file was sourced earlier in the same shell/session, glab may still write as that previously loaded identity unless you deliberately switch and verify first.
A practical pattern is one env file per actor, for example ~/.config/openclaw/env/gitlab-actor.env, ~/.config/openclaw/env/gitlab-reviewer.env, and ~/.config/openclaw/env/gitlab-release.env. Keep these env files outside version control, restrict their permissions (for example chmod 600), be mindful of backup exposure, and use least-privilege bot/service-account tokens. In a reused shell, clear stale GitLab auth vars first or start a fresh shell. If those files use plain KEY=value lines, load them with exported vars before running glab:
unset GITLAB_TOKEN GITLAB_ACCESS_TOKEN OAUTH_TOKEN GITLAB_HOST
set -a
source ~/.config/openclaw/env/gitlab-<actor>.env
set +a
Plain source updates the current shell but may not export variables to child processes such as glab. If the token/host vars are not exported, glab may silently fall back to shared stored auth from ~/.config/glab-cli/config.yml, which can make the wrong account appear to perform the action.
Run this immediately before any GitLab write, including glab mr note, review replies/approvals, and any glab api POST/PATCH/PUT/DELETE call:
glab auth status --hostname "$GITLAB_HOST"
glab api --hostname "$GITLAB_HOST" user
This assumes the target actor env file set GITLAB_HOST for the exact GitLab instance you intend to modify. Do not write until both commands clearly show the intended visible actor on that host.
If a comment or reply was posted under the wrong identity:
unset GITLAB_TOKEN GITLAB_ACCESS_TOKEN OAUTH_TOKEN GITLAB_HOST or start a fresh shell.set -a; source ...; set +a.glab auth status --hostname "$GITLAB_HOST" and glab api --hostname "$GITLAB_HOST" user.If the wrong-identity write changed state beyond a comment or reply, do not treat the comment cleanup steps as sufficient. Re-auth as above, then use the matching GitLab reversal for that write under the correct actor and host, such as unapproving an MR or sending the compensating glab api --hostname "$GITLAB_HOST" mutation for the exact resource that was changed.
This skill routes to specialized sub-skills by GitLab domain:
Core Workflows:
glab-mr - Merge requests: create, review, approve, mergeglab-issue - Issues: create, list, update, close, commentglab-ci - CI/CD: pipelines, jobs, logs, artifactsglab-repo - Repositories: clone, create, fork, manageProject Management:
glab-milestone - Release planning and milestone trackingglab-iteration - Sprint/iteration managementglab-label - Label management and organizationglab-release - Software releases and versioningAuthentication & Config:
glab-auth - Login, logout, Docker registry authglab-config - CLI configuration and defaultsglab-ssh-key - SSH key managementglab-gpg-key - GPG keys for commit signingglab-token - Personal and project access tokensglab-todo - Personal GitLab to-do triage and completion (added v1.92.0)CI/CD Management:
glab-job - Individual job operationsglab-schedule - Scheduled pipelines and cron jobsglab-variable - CI/CD variables and secretsglab-securefile - Secure files for pipelinesglab-runner - Runner management: list, assign/unassign, inspect jobs/managers, pause/unpause, delete (added v1.87.0; expanded in v1.90.0)glab-runner-controller - Runner controller, scope, and token management (EXPERIMENTAL, admin-only)Collaboration:
glab-user - User profiles and informationglab-snippet - Code snippets (GitLab gists)glab-incident - Incident managementglab-workitems - Work items: tasks, OKRs, key results, next-gen epics (added v1.87.0)Advanced:
glab-api - Direct REST API callsglab-cluster - Kubernetes cluster integrationglab-deploy-key - Deploy keys for automationglab-quick-actions - GitLab slash command quick actions for batching state changesglab-stack - Stacked/dependent merge requestsglab-opentofu - Terraform/OpenTofu state managementUtilities:
glab-alias - Custom command aliasesglab-completion - Shell autocompletionglab-help - Command help and documentationglab-version - Version informationglab-check-update - Update checkerglab-changelog - Changelog generationglab-attestation - Software supply chain securityglab-duo - GitLab Duo AI assistantglab-mcp - Model Context Protocol server for AI assistant integration (EXPERIMENTAL)Key user-facing changes in glab v1.92.0 that affect this skill set:
glab-todo: adds glab todo list and glab todo done for personal to-do triage from the CLI.glab-auth: re-login now clears stale credentials when switching from OAuth to token auth; troubleshooting should prefer a fresh glab auth login when stored credentials appear stuck after auth-method changes.Key user-facing changes in glab v1.91.0 that affect this skill set:
glab-api: adds multipart/form-data request support via --form for endpoints that expect file uploads or multipart fields.glab-auth: improves diagnostics when an exported env token fails authentication; troubleshooting should explicitly check env-token precedence before assuming stored login is broken.glab-duo: current user-facing surface is glab duo ask and glab duo cli; older glab duo update guidance is stale and should not be recommended.Key user-facing changes in glab v1.90.0 that affect this skill set:
glab-auth: glab auth login adds --web, --container-registry-domains, and --ssh-hostname; CI auto-login is now GA.glab-mr: glab mr create adds --auto-merge; glab mr note now has list, resolve, and reopen subcommands in addition to note-posting flags.glab-runner: adds jobs, managers, and update --pause|--unpause.glab-runner-controller: adds get and shifts runner scope management under scope list|create|delete.v1.89.0+: 18 commands across 12 sub-skills now support
--output json/-F jsonfor structured output — raw GitLab API responses ideal for agent/automation parsing. Affected sub-skills:glab-release,glab-ci,glab-milestone,glab-schedule,glab-mr,glab-repo,glab-label,glab-deploy-key,glab-ssh-key,glab-gpg-key,glab-cluster,glab-opentofu.
Other v1.89.0 changes:
glab-auth: glab auth login now prompts for SSH hostname separately from API hostname on self-hosted instancesglab-stack: glab stack sync --update-base flag added to rebase stack onto updated base branchglab-release: --notes / --notes-file are now optional for glab release create and glab release updateUse glab when:
Use web UI when:
# Start work on issue
glab issue view 123
git checkout -b 123-feature-name
# Create MR when ready
glab mr create --fill --draft
# Mark ready for review
glab mr update --ready
# Merge after approval
glab mr merge --when-pipeline-succeeds --remove-source-branch
# List your review queue
glab mr list --reviewer=@me --state=opened
# Review an MR
glab mr checkout 456
glab mr diff
npm test
# Approve
glab mr approve 456
glab mr note 456 -m "LGTM! Nice work on the error handling."
# Check pipeline status
glab ci status
# View failed jobs
glab ci view
# Get job logs
glab ci trace <job-id>
# Retry failed job
glab ci retry <job-id>
Need to track work?
├─ Yes → Create issue first (glab issue create)
│ Then: glab mr for <issue-id>
└─ No → Direct MR (glab mr create --fill)
Use glab issue create + glab mr for when:
Use glab mr create directly when:
What do you need?
├─ Overall pipeline status → glab ci status
├─ Visual pipeline view → glab ci view
├─ Specific job logs → glab ci trace <job-id>
├─ Download build artifacts → glab ci artifact <ref> <job-name>
├─ Validate config file → glab ci lint
├─ Trigger new run → glab ci run
└─ List all pipelines → glab ci list
Quick reference:
glab ci status, glab ci view, glab ci runglab ci trace, glab job retry, glab job viewglab ci artifact (by pipeline) or job artifacts via glab jobWhat's your relationship to the repo?
├─ You have write access → glab repo clone group/project
├─ Contributing to someone else's project:
│ ├─ One-time contribution → glab repo fork + work + MR
│ └─ Ongoing contributions → glab repo fork, then sync regularly
└─ Just reading/exploring → glab repo clone (or view --web)
Fork when:
Clone when:
Where should the label live?
├─ Used across multiple projects → glab label create --group <group>
└─ Specific to one project → glab label create (in project directory)
Group-level labels:
Project-level labels:
MR and Issue workflows:
glab-issue to create/track workglab-mr to create MR that closes issuescripts/create-mr-from-issue.sh automates thisCI/CD debugging:
glab-ci for pipeline-level operationsglab-job for individual job operationsscripts/ci-debug.sh for quick failure diagnosisRepository operations:
glab-repo for repository managementglab-auth for authentication setupscripts/sync-fork.sh for fork synchronizationConfiguration:
glab-auth for initial authenticationglab-config to set defaults and preferencesglab-alias for custom shortcuts