stage: Create group: Code Review info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments description: Use the GitLab CLI (glab) to perform common GitLab actions in your terminal. title: 极狐GitLab CLI - glab#

  • Tier: 免费版,专业版,旗舰版
  • Offering: JihuLab.com,私有化部署

glab 是一个开源的 极狐GitLab CLI 工具。它把 极狐GitLab 带到你的终端:在你已经使用 Git 和代码进行工作的同一位置,无需在窗口和浏览器标签页之间来回切换。

  • 处理议题
  • 处理合并请求
  • 直接在 CLI 中查看运行中的流水线

命令示例

极狐GitLab CLI 使用类似于 glab <command> <subcommand> [flags] 的命令结构,在终端中执行你通常在 极狐GitLab 用户界面中进行的许多操作:

shell
1# 登录 2glab auth login --stdin < token.txt 3 4# 查看议题列表 5glab issue list 6 7# 为议题 123 创建合并请求 8glab mr create 123 9 10# 检出合并请求 243 的分支 11glab mr checkout 243 12 13# 观察正在运行的流水线 14glab pipeline ci view 15 16# 查看、批准并合并合并请求 17glab mr view 18glab mr approve 19glab mr merge

核心命令#

CLI 的 GitLab Duo#

  • Tier: 专业版,旗舰版
  • Add-on: GitLab Duo Enterprise
  • Offering: JihuLab.com,私有化部署
Model information
History
    • 在 极狐GitLab 17.6 及更高版本中更改为需要 GitLab Duo 附加组件
    • 在 极狐GitLab 18.0 中更改为包含 专业版

极狐GitLab CLI 包含由 GitLab Duo 提供支持的功能,这些功能包括:

在你工作时询问关于 git 命令的问题,请输入:

glab duo ask 命令可以帮助你回忆你忘记的某个 git 命令,或提供运行 git 命令以执行其他任务的建议。

安装 CLI#

安装说明可在 glabREADME 中找到。

使用 极狐GitLab 进行身份验证#

要使用你的 极狐GitLab 账户进行身份验证,运行 glab auth loginglab 会识别通过 GITLAB_TOKEN 设置的令牌。

glab 还与 1Password shell 插件 集成,以进行安全的身份验证。

示例#

使用来自文件的变量运行 CI/CD 流水线#

当使用 -f--variables-from-string)标志运行 glab ci run 命令时,会使用存储在外部文件中的值。例如,将以下代码添加到你的 .gitlab-ci.yml 文件以引用两个变量:

yaml
1stages: 2 - build 3 4# $EXAMPLE_VARIABLE_1 和 $EXAMPLE_VARIABLE_2 存储在另一个文件中 5build-job: 6 stage: build 7 script: 8 - echo $EXAMPLE_VARIABLE_1 9 - echo $EXAMPLE_VARIABLE_2 10 - echo $CI_JOB_ID

然后,创建一个名为 variables.json 的文件以包含这些变量:

json
1[ 2 { 3 "key": "EXAMPLE_VARIABLE_1", 4 "value": "example value 1" 5 }, 6 { 7 "key": "EXAMPLE_VARIABLE_2", 8 "value": "example value 2" 9 } 10]

要启动一个包含 variables.json 内容的 CI/CD 流水线,运行此命令,并根据需要编辑文件路径:

shell
1$ glab ci run --variables-file /tmp/variables.json 2 3$ echo $EXAMPLE_VARIABLE_1 4example value 1 5$ echo $EXAMPLE_VARIABLE_2 6example value 2 7$ echo $CI_JOB_ID 89811701914

将 CLI 用作 Docker 凭据助手#

当从 极狐GitLab 容器镜像仓库容器镜像依赖代理 拉取镜像时,你可以将 CLI 用作 Docker 凭据助手。要配置凭据助手,请执行以下操作:

  1. 运行 glab auth login
  2. 选择要登录的 极狐GitLab 实例类型。如果出现提示,请输入你的 极狐GitLab 主机名。
  3. 在登录方式中选择 Web
  4. 输入用于容器镜像仓库和容器镜像代理的域名的逗号分隔列表。登录 JihuLab.com 时会提供默认值。
  5. 完成身份验证后,运行 glab auth configure-docker 在你的 Docker 配置中初始化凭据助手。

故障排除#

glab 2.0.0 的环境变量更改 {#environment-variable-changes-in-glab-2.0.0}#

glab 2.0.0 及更高版本中,所有 glab 环境变量都以 GLAB_ 为前缀。

使用 1Password shell 插件时 glab completion 命令失败 {#glab-completion-commands-fail-when-using-the-1password-shell-plugin}#

1Password shell 插件 添加了别名 glab='op plugin run -- glab',这可能干扰 glab completion 命令。如果你的 glab completion 命令失败,请配置你的 shell 以在执行补全前避免展开别名:

  • 对于 Zsh,编辑你的 ~/.zshrc 文件并添加这一行:

    plaintext
    setopt completealiases
  • 对于 Bash,编辑你的 ~/.bashrc 文件并添加这一行:

    plaintext
    complete -F _functionname glab

命令使用了错误的 Git 远程#

如果一个 Git 仓库有多个远程且你选择了错误的远程,命令在查询错误远程时可能返回空结果。要修复此问题,请更改 glab 在该仓库中使用的远程:

  1. 在终端中运行 git config edit

  2. 找到包含 glab-resolved = base 的行,如果不正确,请将其删除。

  3. 将更改保存到你的 Git 配置文件。

  4. 要设置你希望使用的默认值,运行此命令。编辑示例并将 origin 替换为你偏好的远程名称:

    shell
    git config set --append remote.origin.glab-resolved base