#gitlab #git #cli-command #cli

app git_lab_cli

用于与 GitLab 服务器交互的自定义 git 命令

38 个版本 (16 个破坏性更新)

0.17.0 2020 年 7 月 27 日
0.15.7 2020 年 7 月 23 日

#868开发工具

Download history 397/week @ 2024-03-31 30/week @ 2024-04-07

每月下载 96

MIT 许可证

280KB
6K SLoC

git_lab_cli

pipeline status Crates.io Crates.io musl binaries

这是一个 CLI 工具,它将 lab 命令添加到 git 中,以实现与 GitLab 服务器的交互。

变更日志

有关每个版本中添加的修复和功能的总结,请参阅 CHANGELOG.md

功能

此工具旨在作为纯 git CLI 命令的自定义命令。安装后,您可以使用以下命令调用它:git lab <子命令> <选项>...

当前功能

  • init -- 初始化与远程 GitLab 服务器的凭据
  • project -- 与 GitLab 项目交互
    • project create -- 创建项目
    • project attach -- 将本地仓库与项目关联
    • project (open|view|browse) -- 在浏览器中打开项目的 URL
    • project (show|info|get) -- 显示有关项目的详细信息
  • issue -- 与问题交互
    • issue create -- 创建问题(可以通过 CLI 传递的参数完全创建,也可以通过提示用户输入所需输入进行交互式创建)
    • issue assign -- 分配问题
    • issue (open|view|browse) -- 在浏览器中打开问题的 URL
    • issue (show|info|get) -- 显示有关问题的详细信息
    • issue list -- 获取问题列表
    • issue close -- 关闭问题
    • issue reopen -- 重新打开问题
    • issue lock -- 锁定问题上的讨论
    • issue unlock -- 解锁问题上的讨论
  • mr -- 与合并请求交互
    • mr create -- 创建合并请求(可以通过 CLI 传递的参数完全创建,也可以通过提示用户输入所需输入进行交互式创建)
    • mr assign -- 分配合并请求
    • mr close -- 关闭合并请求
    • mr reopen -- 重新打开合并请求
    • mr lock -- 锁定合并请求上的讨论
    • mr unlock -- 解锁合并请求上的讨论
    • mr list -- 获取合并请求列表
    • mr (open|view|browse) -- 在浏览器中打开合并请求的URL
    • mr (show|info|get) -- 显示有关合并请求的详细信息
    • mr (checkout|co) --检出合并请求
    • mr wip -- 切换 WIP:(或 Draft:)合并请求的状态
    • mr approve -- 批准合并请求
    • mr merge -- 合并合并请求

计划中的功能

  • labels -- 与 Gitlab 标签交互
  • project list -- 获取项目列表
  • pipeline -- 与 Gitlab CI 任务交互
  • group -- 与 Gitlab 组交互
  • user -- 与 Gitlab 用户交互
  • 可能还有其他...

特性

当前特性

  • 使用标准 git config 机制存储配置
  • 本地缓存的 Gitlab 元数据,以改进创建 gitlab 对象时的交互式可用性
  • 除了纯文本外,还有 JSON 输出,以便使用 jq 等工具进行解析
  • 基于终端的 markdown 渲染
  • $EDITORcreate 命令上的集成
  • musl 二进制文件可在此处获得 这里

计划中的特性

  • 支持各种 Linux 打包工具,如 AUR、Deb、RPM 等
  • 非 Linux 支持(请求 PR!)

安装

Cargo

如果您已安装 Rust 工具链,您可以通过 cargo 进行安装

cargo install git_lab_cli

静态链接的 Linux 二进制文件

您可以从 这里 下载这些 tarball。解压缩文件,然后按照以下示例将包含的文件复制到正确位置

cd git_lab_cli-x.y.z-x86_64-unknown-linux-musl
sudo cp git-lab /usr/local/bin/
sudo cp man/git-lab.1 /usr/local/share/man/man1/

入门

要将 git-lab 命令行二进制文件连接到 GitLab 实例,您需要创建一个个人访问令牌。在 Gitlab.com 上,您可以在 这里 完成。将令牌复制到剪贴板,然后从您的家目录中运行以下命令

git lab init

这会提示您输入所需的设置参数,其中一个将要求您将上一步复制的 GitLab 令牌粘贴到配置中。然后,您的默认 .gitconfig 将更新为连接 git-lab 到您的服务器所需的信息。您也可以使用 vanilla git config 命令设置此配置。有关如何操作的详细信息,请参阅 git lab init --help

要从现有的 git 仓库开始,最简单的方法是在仓库内部运行以下命令

git lab project attach

该工具将根据您的origin git远程仓库将您正在工作的git仓库与服务器端的GitLab项目相关联。完成此操作后,您将能够在repo的子树内查询、创建和修改项目特定的对象,如GitLab问题、合并请求等。

兼容性

该工具试图紧密跟踪GitLab.com的最新版本。目前,GitLab 13.0及以上版本兼容,但早期版本不兼容。

贡献

欢迎合并请求。请将合并请求提交到GitLab,而不是GitHub。

许可:MIT

依赖项

~26–40MB
~758K SLoC