如何开始使用 GitLab 的 CLI 从终端管理 DevOps

您所在的位置:网站首页 苏州glab 如何开始使用 GitLab 的 CLI 从终端管理 DevOps

如何开始使用 GitLab 的 CLI 从终端管理 DevOps

2024-07-12 22:25| 来源: 网络整理| 查看: 265

如何开始使用 GitLab 的 CLI 从终端管理 DevOps

GitLab 是许多开发团队的真理来源。然而,访问 GitLab 数据通常需要上下文切换到 Web 浏览器或繁琐的 API 交互。现在有一个官方 CLI,可让您无需离开终端即可管理 DevOps 流程。

GitLab 是面向现代软件交付团队的领先源代码控制和 CI/CD 解决方案之一。它提供了一整套用于规划、构建和交付软件项目的功能。

GitLab 通常使用其 Web UI 或 API 进行交互。这些选项对于以终端为中心的开发人员来说都不是特别有吸引力。幸运的是,GitLab 还有一个 CLI,可以直接访问您的问题、合并请求、管道和其他资源,以及您的代码和其他 shell 命令。本文将向您展示基础知识。

什么是 Glab?

GitLab CLI glab 由 Clement Sam 发起,是一个社区主导的项目。此后,它被 GitLab 采用,并于 2022 年 12 月收到了第一个由 GitLab 主导的官方版本。展望未来,它将继续作为开源工具由 GitLab 和更广泛的社区维护。

Glab 目前支持与以下 GitLab 功能交互:

问题合并请求管道发布存储库标签片段

您可以从 GitLab 帐户检索现有数据、创建新项目以及执行检查管道状态和批准合并请求等操作。可以同时对多个 GitLab 实例进行身份验证,包括 GitLab.com 和您的自托管服务器。

开始使用 Glab

在开始使用 Glab 之前,请为您的 GitLab 帐户创建一个个人访问令牌,其中包括

api

write_repository

范围。 Glab 将使用此令牌代表您执行操作。

单击 GitLab UI 右上角的个人资料图标,然后从左侧菜单中选择“访问令牌”。为您的令牌命名并选择

api

write_repository

列表中的范围。向下滚动页面并单击“创建个人访问令牌”按钮。将显示令牌的值 - 现在记下这一点,因为您将来将无法检索它。

接下来,您需要安装 Glab。您可以从项目的 GitLab 版本页面下载适用于 Windows、macOS 和 Linux 系统的预构建二进制文件。 Glab 还为所有受支持的操作系统上的几种流行的包管理器进行了分发。

安装 Glab 后,您可以通过运行以下命令对 GitLab 实例进行身份验证

auth login

命令。这将启动一系列交互式提示,让您在 GitLab.com 或自托管实例之间进行选择。提供实例详细信息后,您将能够输入之前创建的个人访问令牌。

接下来,系统会要求您确认用于 Git 操作的默认协议。您通常可以接受自动选择的值。 SSH 是首选,但某些环境可能需要通过 HTTPS 使用 Git。以下提示询问您 Glab 是否应使用您之前提供的相同个人访问令牌对 Git 操作进行身份验证。这通常是所需的行为。

最后,如果您使用自托管的 GitLab 实例,系统将提示您在 HTTP 和 HTTPS 协议之间进行选择以访问 GitLab API。除非您知道您的实例仅支持 HTTP,否则请选择 HTTPS。

在序列结束时,您应该会收到一条“已登录”成功消息。

登录另一个 GitLab 实例

您可以通过重复以下操作登录到另一个 GitLab 实例

auth login

命令。跑步

auth status

将发出您已配置的所有端点的列表。

使用 Glab

Glab 旨在从项目的工作目录运行。开始于

cd

-进入包含 Git 存储库的目录。 Glab 命令现在将根据项目的默认 Git 远程自动选择正确的 GitLab 实例和身份验证令牌。

该模型允许无缝使用多个 GitLab 实例中的项目。你可以运行

git

glab

只需输入项目目录即可在工作时执行命令。但是,可以在项目之外使用 Glab,方法是设置

GITLAB_TOKEN

GITLAB_URI

(或者

GITLAB_HOST

) shell 中的环境变量,然后指定

--repo

使用您的命令进行标记以识别目标项目(在

OWNER/REPO

格式)。例如,这可以让您在自动化脚本中方便地使用 Glab。

问题

列出项目中的问题

issues list

命令:

$ glab issues list

Showing 3 open issues in ilmiont/ardeidae that match your search (Page 1)

#376 ilmiont/ardeidae#376 Console Input allow accessing full standard input string about 1 month ago

#374 ilmiont/ardeidae#374 Basis support construction via compound typehints about 11 months ago

#373 ilmiont/ardeidae#373 v3.1.0 unit tests about 11 months ago

使用 --page 标志切换到结果集中的后续页面。每页默认显示20条;这可以使用 --per-page 标志进行更改。

支持多个过滤标志。以下命令获取 v3.1.0 里程碑中并分配给您的所有带有 P1 标签的已解决问题:

$ glab issue list --mine --milestone v3.1.0 --label P1 --closed

运行 glab issues list --help 以了解所有支持的标志。

使用问题视图获取有关特定问题的详细信息:

$ glab issues view 376

open • opened by ilmiont about 1 month ago

Console Input allow accessing full standard input string #376

php://input

0 upvotes • 0 downvotes • 0 comments

Milestone: v3.1.0

要获取问题的评论,请将 --comments 标志添加到命令中。评论将被分页,就像问题列表命令一样。

您可以在默认浏览器中打开问题的 Web UI 页面:

$ glab issue view 376 --web

可以使用 note 命令针对问题创建注释(评论)。 -m 标志指定注释的 Markdown 文本:

$ glab issue note 376 -m "This is no longer relevant"

分别使用 close 和 reopen 命令关闭和重新打开问题:

$ glab issue close 376

$ glab issue reopen 376

要创建新问题,请运行 create 命令并传递适当的标志:

$ glab issue create \

--title "New Issue" \

--description "Demo issue" \

--milestone "v3.1.0"

系统将提示您确认问题的创建。您可以通过设置 -y 或 --yes 标志来跳过此操作。支持更多标志来定义问题的所有属性。尝试运行 glab issues create --help 来探索这些选项。

合并请求

基本合并请求交互与问题的交互类似。使用 list 和 view 命令检索现有合并请求的详细信息。 approve、close 和 merge 命令将这些相应的操作应用于 MR:

$ glab mr merge 100

合并请求命令接受 ID 或源分支作为其参数。您可以使用以下命令将 demo-branch 的 MR 合并到主分支中:

$ glab mr merge demo-branch

您可以使用 diff 命令查看 MR 中包含的更改:

$ glab mr diff 100

彩色差异输出将以 Git 格式显示在您的终端中。

还可以在本地签出并切换到合并请求的源分支,而无需手动运行 Git 命令:

$ glab mr checkout 100CI 管道

通过运行 ci list 查看项目的管道结果:

$ glab ci list

Showing 3 pipelines on ilmiont/ardeidae (Page 1)

(success) • #734 3.1.0-rc42 (about 9 days ago)

(success) • #733 master (about 9 days ago)

(success) • #732 Dbal-store-allow-upsert (about 9 days ago)

view 命令提供对默认分支或特定分支上最新管道的作业结果的访问。新的终端屏幕将显示管道中的阶段:

$ glab ci view

$ glab ci view -b demo-branch

要触发新的管道运行,请执行 glab run 命令:

$ glab ci run

您可以指定从中获取管道的分支:

$ glab ci run -b demo-branch

还可以为运行设置 CI 变量:

$ glab ci run --variables demo-var:demo-val,another-var:another-val

您可以通过运行 ci trace 命令并使用交互式提示选择目标作业来访问作业日志。工件也可用:ci artifact 命令从最新管道下载工件,无论是默认分支还是由 -b 标志标识的指定分支。

最后,Glab 为工作目录中的 .gitlab-ci.yml 文件提供了一个内置的 linter。这使您可以方便地检查管道的有效性,而无需将文件复制并粘贴到 GitLab Web UI 中。

$ glab ci lint

Getting contents in .gitlab-ci.yml

Validating...

✓ CI yml is Valid!

任意 API 请求

Glab 的命令是现有 GitLab API 端点的包装器。虽然本机支持多个 API,但还有更多 API 尚未作为命令实现。直接调用 API 可能很乏味,因为您需要通过手动设置请求标头来提供您的个人访问令牌。

Glab 包含一个实用程序命令,用于针对 API 发出任意经过身份验证的请求。 glab api 命令接受相对 URI 以在活动 GitLab 实例的上下文中进行请求。以下示例获取与 ID 为 1 的项目关联的 Git 标签:

$ glab api projects/1/repository/tags

原始 API 响应数据将以 JSON 格式发送到您的终端。

使用 -X 或 --method 标志设置请求的 HTTP 方法。您可以使用 -F 或 --field 标志提供请求正文数据:

$ glab api projects/1/repository/tags -X POST --field tag_name=demo --field ref=main

您可以通过设置 -H 或 --header 标志来包含自定义请求标头。

使用别名

Glab 支持自定义命令别名,因此您可以快速访问常用功能。

通过运行 alias set 命令创建新别名:

$ glab alias set issues "issue list"

- Adding alias for issues: issue list

✓ Added alias.

现在,您可以通过运行 glab issues 列出项目中的问题:

$ glab issues

Showing 3 open issues in ilmiont/ardeidae that match your search (Page 1)

#376 ilmiont/ardeidae#376 Console Input allow accessing full standard input string about 1 month ago

#374 ilmiont/ardeidae#374 Basis support construction via compound typehints about 11 months ago

#373 ilmiont/ardeidae#373 v3.1.0 unit tests about 11 months ago

列出您使用 alias list 创建的所有别名:

$ glab alias list

ci pipeline ci

co mr checkout

issues issue list

通过运行 alias delete 并传递其名称来删除别名:

$ glab alias delete issues使用 Glab 管理 DevOps

Glab 是官方的 GitLab CLI。它允许您从终端管理整个 DevOps 流程。您可以创建问题、分配任务、审查合并请求、触发 CI 管道和标记发布,而无需在工具之间切换或学习 GitLab API。这减少了上下文切换并促进最常见工作流程的自动化。

通过访问 GitLab 数据以及代码和 Git 操作,您可以专注于手头的任务。如果您习惯在终端中工作,那么 CLI 的使用速度也比 Web UI 更快。除了 UI 和 API 之外,它是 GitLab 实例的第三个有价值的界面。

虽然本文介绍了使用 Glab 执行常见任务的基础知识,但您还可以探索更多内容。查看文档或尝试运行 glab help 和 glab 来探索所有可用功能。

现在,Glab 已完全合并为原生 GitLab 项目,承诺进一步开发以支持其他工作流程并实现社区请求。您可以通过在项目存储库中打开问题来向 GitLab 提供反馈。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3