GitLab CLI - glab
GLab 是一个开源的 GitLab CLI 工具。它将 GitLab 带到您的终端:在您已经使用 Git 和您的代码的地方旁边,无需在窗口和浏览器选项卡之间切换,即可完成操作请求。例如:创建issue,查看 issue board,创建 mr 等众多操作。
工具安装:GitLab CLI - `glab` | GitLab
本次主要介绍几个常用的功能:
- glab api
使用 api 进行测试或者写程序是经常需要的,经常被困扰的是之前申请的 token 很快可能就忘记记录在哪里了,或者根本没有记录,每次使用 api 都要重新申请一个 token。配置了 glab 后就不会有这个问题的困扰,直接调用命令即可调试 API,并且可以直接省略 API 的前缀以及避免分页。
例如:查看所有项目:
```shell
glab api --paginate “/projects” # --paginate 不进行分页 - glab alias
此命令类似 linux alias,可以定义操作的别名,更加方便命令的调用和展示。
例如:as auth status ci pipeline ci co mr checkout ils issue list --all
- glab ci
glab ci
是glab pipeline ci
的别名,可以对流水线或者作业做如下操作,通过命令操作要比页面渲染切换快捷很多。artifact -- 下载作业的 artifacts 文件到指定目录 delete -- 删除指定 id 的流水线记录 get -- 获取流水线的详细信息,有 text(粗略)和 JSON(最详细)两种显示方式 lint -- 检查本地的 .gitlab-ci.yml 文件语法是否正确 list -- 获取当前项目的所有流水线记录(包含流水线状态, id, 分支,执行时间) retry -- 重试流水线作业(view命令可以查看到作业 id) run -- 新运行一个流水线,可以指定分支和变量 status -- 查看指定分支最新的流水线状态(可以查看日志和重试) trace -- 实时查看 job 日志 view -- 查看指定分支最新流水线的所有作业、状态和日志(可以中止、重试作业)
- glab issue
用来操作 issue,主要可以实现如下功能,但是遗憾的是,目前不能查看 issue comments/notes,只能添加。board -- 查看创建 board,group board 需要指定项目的同时指定 --group close -- 关闭 issue create -- 创建 issue delete -- 删除 issue list -- 列出所有 issue note -- 添加评论 reopen -- 重新打开 issue subscribe -- 订阅 issue unsubscribe -- 取消订阅 issue update -- 更新 issue 属性 view -- 查看 issue (不包含评论),可以直达 web 页面
- glab release
大多情况下我们都是通过 gitlab 的 release 镜像的 release cli 去发布 release,但是通过 glab release 可以更加方便的发布 release,并且可以添加 assets,例如:
使用此种方式要比使用流水线方便很多,同时还支持如下操作:## 以 main 分支为基准创建 tag,然后添加外部 assets $ glab release create v1.0.1 -r main --assets-links=' [ { "name": "Asset1", "url":"https://<domain>/some/location/1", "link_type": "other", "filepath": "path/to/file" } ]' # 或者 $ glab release create v1.0.1 ./runner.json # 将本地文件附件到 release assets
$ glab release delete <release> --with-tag --yes # 非交互式删除,同时删除 tag $ glab release download v1.10.1 --asset-name="*.tar.gz" # 下载指定的 asset $ glab release list # 查看所有 release $ glab release upload v1.0.0 verify.tar.gz # 追加 asset 到 release assets $ glab release view v1.0.0 <-w> # 可以查看到所有链接的下载地址,-w 跳转到页面查看
- glab ssh-key
很多时候添加 ssh keys 进行仓库克隆测试的时候,操作起来很繁琐,此时可以通过命令行更加快捷的添加。$ glab ssh-key add ~/.ssh/id_ed25519.pub -t "my title" # 添加 ssh keys $ glab ssh-key get # 查看某个 ssh-key 的完整公钥 $ glab ssh-key list --show-id # 查看所有 ssh keys,压缩显示,显示的 id 可以在 get 命令中使用
- 其他命令
- glab snippet # 支持创建代码片段
- glab label # 支持查看和创建标签
- glab mr # 几乎支持所有页面的 mr 操作
- glab repo # 支持归档、克隆、查看成员、创建、删除、fork、mirror、传输、查看等操作
- glab variable # 支持创建、更新、删除、查看群组和项目级别的变量
- glab user # 支持查看用户的事件