介绍
# GitLab CLI Skills
全面的 GitLab CLI (glab) 命令参考和工作流程。
## 快速开始
```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 ```
## 技能组织
该技能根据 GitLab 领域路由到专门的子技能:
**核心工作流程:** - `glab-mr` - 合并请求:创建、审核、批准、合并 - `glab-issue` - 议题:创建、列出、更新、关闭、评论 - `glab-ci` - CI/CD:流水线、作业、日志、产物 - `glab-repo` - 仓库:克隆、创建、派生、管理
**项目管理:** - `glab-milestone` - 发布计划和里程碑跟踪 - `glab-iteration` - Sprint/迭代管理 - `glab-label` - 标签管理和组织 - `glab-release` - 软件发布和版本控制
**身份验证与配置:** - `glab-auth` - 登录、登出、Docker 仓库身份验证 - `glab-config` - CLI 配置和默认值 - `glab-ssh-key` - SSH 密钥管理 - `glab-gpg-key` - 用于提交签名的 GPG 密钥 - `glab-token` - 个人和项目访问令牌
**CI/CD 管理:** - `glab-job` - 单个作业操作 - `glab-schedule` - 计划流水线和定时任务 - `glab-variable` - CI/CD 变量和密钥 - `glab-securefile` - 流水线的安全文件 - `glab-runner-controller` - Runner 控制器和令牌管理(实验性,仅限管理员)
**协作:** - `glab-user` - 用户个人资料和信息 - `glab-snippet` - 代码片段 (GitLab gists) - `glab-incident` - 事件管理
**高级:** - `glab-api` - 直接 REST API 调用 - `glab-cluster` - Kubernetes 集群集成 - `glab-deploy-key` - 用于自动化的部署密钥 - `glab-stack` - 堆叠/依赖合并请求 - `glab-opentofu` - Terraform/OpenTofu 状态管理
**实用工具:** - `glab-alias` - 自定义命令别名 - `glab-completion` - Shell 自动补全 - `glab-help` - 命令帮助和文档 - `glab-version` - 版本信息 - `glab-check-update` - 更新检查器 - `glab-changelog` - 变更日志生成 - `glab-attestation` - 软件供应链安全 - `glab-duo` - GitLab Duo AI 助手 - `glab-mcp` - 用于 AI 助手集成的模型上下文协议 (MCP) 服务器(实验性)
## 何时使用 glab 与 Web UI
**使用 glab 时:** - 在脚本中自动化 GitLab 操作 - 在以终端为中心的工作流程中工作 - 批量操作(多个 MR/议题) - 与其他 CLI 工具集成 - CI/CD 流水线工作流程 - 快速导航,无需切换浏览器上下文
**使用 Web UI 时:** - 带有行内评论的复杂差异审核 - 可视化合并冲突解决 - 配置仓库设置和权限 - 跨项目的高级搜索/筛选 - 审查安全扫描结果 - 管理组/实例级设置
## 常见工作流程
### 日常开发
```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 ```
### 代码审核
```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 调试
```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> ```
## 决策树
### "我应该先创建 MR 还是先处理议题?"
``` Need to track work? ├─ Yes → Create issue first (glab issue create) │ Then: glab mr for <issue-id> └─ No → Direct MR (glab mr create --fill) ```
**使用 `glab issue create` + `glab mr for` 当:** - 工作需要在编码前进行讨论/批准 - 跟踪功能请求或错误 - Sprint 规划和分配 - 希望 MR 合并时自动关闭议题
**直接使用 `glab mr create` 当:** - 快速修复或拼写错误 - 基于现有议题工作 - 热修复或紧急更改
### "我应该使用哪个 CI 命令?"
``` 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 ```
**快速参考:** - 流水线级:`glab ci status`、`glab ci view`、`glab ci run` - 作业级:`glab ci trace`、`glab job retry`、`glab job view` - 产物:`glab ci artifact`(按流水线)或通过 `glab job` 获取作业产物
### "克隆还是派生?"
``` What'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) ```
**派生 当:** - 您没有原始仓库的写入权限 - 为开源项目做贡献 - 进行实验而不影响原始项目 - 需要自己的副本用于长期工作
**克隆 当:** - 您是具有写入权限的项目成员 - 在组织/团队仓库上工作 - 不需要个人副本
### "项目标签还是组标签?"
``` Where should the label live? ├─ Used across multiple projects → glab label create --group <group> └─ Specific to one project → glab label create (in project directory) ```
**组级标签:** - 整个组织的一致性标签 - 示例:priority::high、type::bug、status::blocked - 集中管理,由项目继承
**项目级标签:** - 项目特定的工作流程 - 示例:needs-ux-review、deploy-to-staging - 由项目维护者管理
## 相关技能
**MR 和 议题工作流程:** - 从 `glab-issue` 开始以创建/跟踪工作 - 使用 `glab-mr` 创建关闭议题的 MR - 脚本:`scripts/create-mr-from-issue.sh` 可自动执行此操作
**CI/CD 调试:** - 使用 `glab-ci` 进行流水线级操作 - 使用 `glab-job` 进行单个作业操作 - 脚本:`scripts/ci-debug.sh` 用于快速故障诊断
**仓库操作:** - 使用 `glab-repo` 进行仓库管理 - 使用 `glab-auth` 进行身份验证设置 - 脚本:`scripts/sync-fork.sh` 用于派生同步
**配置:** - 使用 `glab-auth` 进行初始身份验证 - 使用 `glab-config` 设置默认值和首选项 - 使用 `glab-alias` 创建自定义快捷方式