| name | glab-setup |
| description | 安装 + 认证 GitLab 官方 CLI(`glab`)。触发场景:用户要自动创 MR / 查 pipeline / 操作 GitLab 但 glab 未装或未授权(env-check 报 WARN);imagi-studio 启动报"glab 缺失";AI 看到 `glab: command not found` 错误。本 skill 引导装 + OAuth 登录,不自动 sudo。 |
glab 安装与认证引导
触发词
- 「装 glab」「glab 没装」「glab 命令找不到」
- 「自动创 MR 失败」「glab auth required」
- env-check 报
glab WARN(未安装 / 未授权)
- imagi-studio 启动检测
glab 未就绪
为什么用 glab(不造轮子)
| 任务 | 自己写 REST | 用 glab |
|---|
| 创 MR | 自己实现 PAT / OAuth / endpoint / 错误处理 | glab mr create 一行 |
| 查 pipeline / 改 issue / release / Duo Chat | 全部自己写 | 全覆盖 |
| 认证 | 自己实现 OAuth flow | 自带 OAuth PKCE 浏览器登录 |
| 维护 | GitLab API 改字段要跟进 | 官方维护(2022 起官方产品) |
结论:imagi-studio / imagi-cli / 个人开发,涉及 GitLab 自动化 → 都用 glab。
步骤 1:检测当前状态
which glab && glab --version 2>&1 || echo "未安装"
glab auth status 2>&1 || echo "未授权"
| 状态 | 现象 | 跳到哪步 |
|---|
| 未装 | glab: command not found | 步骤 2 安装 |
| 已装未授权 | glab auth status 退出非 0 | 步骤 3 登录 |
| 就绪 | 上述两条都通过 | 结束 |
步骤 2:安装(macOS 默认推荐 Homebrew)
brew install glab
告知用户后等待——不要自动跑 brew install(有网络副作用 + 改全局环境),让用户自己决定。
其他平台(罕见,MVP 不用,V2 加):
- Linux:
apt install glab / dnf install glab / 从 GitLab releases 下载 binary
- Windows:
winget install --id GitLab.cli / scoop install glab
步骤 3:OAuth 登录(推荐,无需 PAT)
glab auth login
交互流程(glab 内部自动跑):
- 选 hostname(回车走默认
gitlab.com,公司内部用户选 Other 填 g.echo.tech)
- 选认证方式 →
Web (OAuth PKCE)
- glab 起本地服务器(port 7171)+ 打开浏览器
- 浏览器登录 GitLab → 授权 → 跳回 → glab 拿到 token
- 凭证保存到
~/.config/glab-cli/config.yml
告知用户的话术:
我要跑 glab auth login,它会:
- 问你 GitLab 地址(咱们用
g.echo.tech,选 "Other" 填进去)
- 开浏览器让你登录
我现在跑吗?
等用户同意后才跑。
步骤 4(可选):PAT 兜底(CI / 无浏览器场景)
如果 OAuth 不可用(headless 服务器 / CI):
export GITLAB_HOST=g.echo.tech
export GITLAB_TOKEN=<your-PAT>
glab auth status
PAT 创建路径(告诉用户):
https://g.echo.tech/-/user_settings/personal_access_tokens
- 勾
api scope(最小够用)
- 复制 → 设环境变量
步骤 5:验证
glab auth status
glab repo view
常用命令清单(给用户作为延伸)
| 命令 | 用途 |
|---|
glab mr create --fill --yes | 用 commit history 自动填 + 跳过确认创 MR |
glab mr list --assignee @me | 看分给我的 MR |
glab mr checkout <id> | checkout 别人的 MR 到本地 |
glab mr approve <id> | approve MR |
glab mr merge <id> --when-pipeline-succeeds --remove-source-branch | 等 CI 通过自动合 + 删 feature 分支 |
glab pipeline list | 看当前仓库的 CI 流水线 |
glab ci view | 实时看 CI 进度 |
边界
- ❌ 不要自动跑
brew install glab(网络副作用)
- ❌ 不要自动跑
glab auth login(开浏览器 + 环境改动)
- ✅ 检测状态 + 给具体命令 + 等用户决策
- ✅ 装完后 SessionStart hook 后台重新刷新 env-check 缓存,下次会话才会看到"glab ✅"