GitLab CLI - glab
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
glab 是一个开源的 GitLab CLI 工具。它将 GitLab 带到你的终端:
在你已经使用 Git 和代码工作的地方,无需在窗口和浏览器标签之间切换。
- 处理 issues。
- 处理 merge requests。
- 直接从 CLI 观看正在运行的 pipelines。
GitLab CLI 使用类似 glab <command> <subcommand> [flags] 的命令结构
来执行你通常从 GitLab 用户界面执行的各种操作:
# 登录
glab auth login --stdin < token.txt
# 查看 issues 列表
glab issue list
# 为 issue 123 创建 merge request
glab mr create 123
# 检出 merge request 243 的分支
glab mr checkout 243
# 观看正在进行的 pipeline
glab pipeline ci view
# 查看、批准和合并 merge request
glab mr view
glab mr approve
glab mr merge核心命令
glab alias: 创建、列出和删除别名。glab api: 向 GitLab API 发送认证请求。glab auth: 管理 CLI 的认证状态。glab changelog: 与 changelog API 交互。glab check-update: 检查 CLI 的更新。glab ci: 处理 GitLab CI/CD pipelines 和 jobs。glab cluster: 管理 Kubernetes 的 GitLab agents 及其集群。glab completion: 生成 shell 完成脚本。glab config: 设置和获取 CLI 设置。glab deploy-key: 管理 deploy keys。glab duo: 从自然语言生成终端命令。glab incident: 处理 GitLab incidents。glab issue: 处理 GitLab issues。glab iteration: 获取迭代信息。glab job: 处理 GitLab CI/CD jobs。glab label: 管理项目的 labels。glab mr: 创建、查看和管理 merge requests。glab release: 管理 GitLab releases。glab repo: 处理 GitLab repositories 和 projects。glab schedule: 处理 GitLab CI/CD schedules。glab securefile: 管理项目的 secure files。glab snippet: 创建、查看和管理 snippets。glab ssh-key: 管理注册到 GitLab 账户的 SSH keys。glab stack: 创建、管理和处理 stacked diffs。glab token: 管理 personal、project 或 group tokens。glab user: 与 GitLab 用户账户交互。glab variable: 管理 GitLab project 或 group 的 variables。glab version: 显示 CLI 的版本信息。
GitLab Duo for the CLI
- Tier: Premium, Ultimate
- Add-on: GitLab Duo Enterprise
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
- LLM: Anthropic Claude 3 Haiku
- Available on GitLab Duo with self-hosted models: Yes
GitLab CLI 包含由 GitLab Duo 提供的功能。这些包括:
在工作时询问关于 git 命令的问题,请输入:
glab duo ask 命令可以帮助你记住忘记的 git 命令,
或者提供如何运行 git 命令来执行其他任务的建议。
安装 CLI
安装说明可在 glab 的 README 中找到。
与 GitLab 认证
要认证你的 GitLab 账户,请运行 glab auth login。
glab 遵循使用 GITLAB_TOKEN 设置的 tokens。
glab 还与 1Password shell plugin
集成以进行安全认证。
示例
使用文件中的变量运行 CI/CD pipeline
glab ci run 命令在运行时使用 -f (--variables-from-string) 标志,会使用存储在外部文件中的值。
例如,将此代码添加到你的 .gitlab-ci.yml 文件中以引用两个变量:
stages:
- build
# $EXAMPLE_VARIABLE_1 和 $EXAMPLE_VARIABLE_2 存储在另一个文件中
build-job:
stage: build
script:
- echo $EXAMPLE_VARIABLE_1
- echo $EXAMPLE_VARIABLE_2
- echo $CI_JOB_ID然后,创建一个名为 variables.json 的文件来包含这些变量:
[
{
"key": "EXAMPLE_VARIABLE_1",
"value": "example value 1"
},
{
"key": "EXAMPLE_VARIABLE_2",
"value": "example value 2"
}
]要启动包含 variables.json 内容的 CI/CD pipeline,请运行此命令,并根据需要编辑文件路径:
$ glab ci run --variables-file /tmp/variables.json`
$ echo $EXAMPLE_VARIABLE_1
example value 1
$ echo $EXAMPLE_VARIABLE_2
example value 2
$ echo $CI_JOB_ID
9811701914将 CLI 用作 Docker 凭据助手
从 GitLab container registry 或 container image dependency proxy 拉取镜像时, 你可以将 CLI 用作 Docker credential helper。 要配置凭据助手,请执行以下操作:
- 运行
glab auth login。 - 选择要登录的 GitLab 实例类型。如果提示,请输入你的 GitLab 主机名。
- 对于登录方法,选择
Web。 - 输入用于容器注册表和容器镜像代理的域名列表,用逗号分隔。 登录 GitLab.com 时,会提供默认值。
- 认证后,运行
glab auth configure-docker来初始化 Docker 配置中的凭据助手。
报告问题
在 gitlab-org/cli 仓库 中打开一个 issue 来向我们发送反馈。
相关主题
- Install the CLI
- Documentation
- Extension source code in the
cliproject
故障排除
使用 1Password shell plugin 时 glab completion 命令失败
1Password shell plugin
添加了别名 glab='op plugin run -- glab',这可能会干扰 glab completion 命令。
如果你的 glab completion 命令失败,请配置你的 shell 以在执行完成时阻止别名扩展:
-
对于 Zsh,编辑你的
~/.zshrc文件并添加这行:setopt completealiases -
对于 Bash,编辑你的
~/.bashrc文件并添加这行:complete -F _functionname glab
有关更多信息,请参阅 1Password shell plugin 的 issue 122。