gitlab-cli-skills
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.
What this skill does
# GitLab CLI Skills Comprehensive GitLab CLI (glab) command reference and workflows. ## Quick start ```bash # 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 ``` ## Multi-agent identity note 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`: ```bash 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. ### Required pre-flight before any GitLab write Run this immediately before any GitLab write, including `glab mr note`, review replies/approvals, and any `glab api` `POST`/`PATCH`/`PUT`/`DELETE` call: ```bash 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. ### Wrong-identity remediation If a comment or reply was posted under the wrong identity: 1. Stop posting. 2. Delete the mistaken comment or reply if cleanup is needed. 3. `unset GITLAB_TOKEN GITLAB_ACCESS_TOKEN OAUTH_TOKEN GITLAB_HOST` or start a fresh shell. 4. Source the correct env file with `set -a; source ...; set +a`. 5. Rerun `glab auth status --hostname "$GITLAB_HOST"` and `glab api --hostname "$GITLAB_HOST" user`. 6. Repost under the correct actor. 7. Verify the thread no longer shows the wrong visible author for the replacement message. 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. ## Skill organization This skill routes to specialized sub-skills by GitLab domain: **Core Workflows:** - `glab-mr` - Merge requests: create, review, approve, merge - `glab-issue` - Issues: create, list, update, close, comment - `glab-ci` - CI/CD: pipelines, jobs, logs, artifacts - `glab-repo` - Repositories: clone, create, fork, manage **Project Management:** - `glab-milestone` - Release planning and milestone tracking - `glab-iteration` - Sprint/iteration management - `glab-label` - Label management and organization - `glab-release` - Software releases and versioning **Authentication & Config:** - `glab-auth` - Login, logout, Docker registry auth - `glab-config` - CLI configuration and defaults - `glab-ssh-key` - SSH key management - `glab-gpg-key` - GPG keys for commit signing - `glab-token` - Personal and project access tokens - `glab-todo` - Personal GitLab to-do triage and completion **CI/CD Management:** - `glab-job` - Individual job operations - `glab-schedule` - Scheduled pipelines and cron jobs - `glab-variable` - CI/CD variables and secrets - `glab-securefile` - Secure files for pipelines - `glab-runner` - Runner management: list, assign/unassign, inspect jobs/managers, pause/unpause, delete - `glab-runner-controller` - Runner controller, scope, and token management (EXPERIMENTAL, admin-only) **Collaboration:** - `glab-user` - User profiles and information - `glab-snippet` - Code snippets (GitLab gists) - `glab-incident` - Incident management - `glab-workitems` - Work items: tasks, OKRs, key results, next-gen epics **Advanced:** - `glab-api` - Direct REST API calls - `glab-cluster` - Kubernetes cluster integration - `glab-deploy-key` - Deploy keys for automation - `glab-orbit` - GitLab Knowledge Graph / Orbit discovery, schema inspection, and remote query workflows (EXPERIMENTAL) - `glab-quick-actions` - GitLab slash command quick actions for batching state changes - `glab-stack` - Stacked/dependent merge requests - `glab-opentofu` - Terraform/OpenTofu state management **Utilities:** - `glab-alias` - Custom command aliases - `glab-completion` - Shell autocompletion - `glab-help` - Command help and documentation - `glab-version` - Version information - `glab-check-update` - Update checker - `glab-whatsnew` - Release notes since the last viewed or post-upgrade baseline - `glab-changelog` - Changelog generation - `glab-attestation` - Software supply chain security - `glab-duo` - GitLab Duo AI assistant - `glab-mcp` - Model Context Protocol server for AI assistant integration (EXPERIMENTAL) - `glab-skills` - Install and manage bundled agent skills (EXPERIMENTAL) ## When to use glab vs web UI **Use glab when:** - Automating GitLab operations in scripts - Working in terminal-centric workflows - Batch operations (multiple MRs/issues) - Integration with other CLI tools - CI/CD pipeline workflows - Faster navigation without browser context switching **Use web UI when:** - Complex diff review with inline comments - Visual merge conflict resolution - Configuring repo settings and permissions - Advanced search/filtering across projects - Reviewing security scanning results - Managing group/instance-level settings ## Common workflows ### Daily development ```bash # 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 ``` ### Code review ```bash # 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." ``` ### CI/CD debugging ```bash # 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> ``` ## Decision Trees ### "Should I create an MR or work on an issue first?" ``` 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:** - Work needs discussion/approval before coding - Tracking feature requests or bugs - Sprint planning and assignment - Want issue to auto-close when MR merges **Use `glab mr create` directly when:** - Quick fi
Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.