#gitlab #starship #cli

应用 starship-gitlab

starship.rs 的 GitLab 自定义命令

3 个版本

0.1.4 2021年11月10日
0.1.2 2021年9月23日
0.1.1 2021年9月21日

#1953 in 命令行工具

MIT 许可证

54KB
1K SLoC

🏭 starship-gitlab

这不是 starship.rs 的官方项目。

一个 WIP 项目,用于在终端上使用 starship.rs 显示 GitLab Pipeline 状态。

安装

目前,starship-gitlab 只能通过运行 cargo 来安装。

cargo install starship-gitlab

从源代码安装

cargo install --git https://gitlab.com/Kores/starship-gitlab

可能需要额外的依赖,例如 git

配置

更新您的 ~/.config/starship.toml 并添加以下行

[custom.starship_gitlab]
command = "starship-gitlab"
directories = [".git"]
format = "[$output]($style)"

示例

Example

配置 Gitlab 主机的 PAT 令牌

要检索私有仓库的 Pipeline 信息,您需要注册一个访问令牌。

个人令牌

starship-gitlab token-set --host gitlab.com --personal-token TOKEN

项目令牌

starship-gitlab token-set --host gitlab.com --project-token TOKEN

OAuth2 令牌

starship-gitlab token-set --host gitlab.com --oauth2-token TOKEN

缓存

starship-gitlab 使用 sled 数据库进行缓存,这减少了向 Gitlab 的查询次数,并避免了命令执行中的延迟。

速率限制

Gitlab 有一个 速率限制,在请求 Gitlab API 资源时报告在 HTTP 头部。在编写此文档时,未认证请求的速率限制为 2000。

这些值可以在 此处 找到,并且可能会在未来发生变化。

然而,缓存是为了使体验更加流畅(而不仅仅是因为速率限制),因为请求需要一些时间(即使在快速连接中)并且会负面地影响体验。

缓存位置

缓存数据存储在 ~/.cache/starship-gitlab,

缓存条件

为了缓存,Pipeline 必须处于以下状态之一

  • 成功
  • 失败
  • 取消
  • 跳过

其他状态不缓存,这意味着每次都需要请求以检查 Pipeline 状态,这可能会减慢具有 Gitlab 仓库的项目中的命令。

缓存失效

当有新提交或提交未推送到远程时,会进行缓存失效。

也可以使用 --clear 参数来使缓存失效

starship-gitlab --clear

依赖

~25–37MB
~644K SLoC