背景
每天的開發中,我們都會進行不少的合併請求,通常的路徑是:開啟瀏覽器 -> 訪問私有的gitlab伺服器 -> 選擇專案 -> 訪問合併請求的頁面 -> 點選建立新的合併請求 -> 選擇源分支和目標分支 -> 點選提交 -> 輸入標題和內容 -> 點選建立合併請求按鈕。整個過程是如此的冗長,我們也可以透過建立書籤,減少一些步驟,但我覺得還是太冗長了,就在想是否有這樣的工具,幫我做這件事?幸運的是有且開源?,主角登場>>>
簡介
glab 是 Gitlab
終端操作軟體,支援的命令包括但不限於建立合併請求等,極大的提升了Gitlab
互動效率
安裝
MacOS
使用 Homebrew
, 或者直接下載EXE檔案
$ brew install glab
Windows
WinGet
$ winget install glab
Scoop
$ scoop install glab
Exe
github.com/profclems/glab/releases
其他
github.com/profclems/glab#installa...
使用
$ glab <command> <subcommand> [flags]
1.登入你的gitlab
站點,建立token
通常地址為: https://your_gitlab.com/-/profile/personal_access_tokens ,建立一個token
,賦予 api
和 write_repository
許可權
2.授權
執行 glab auth login
授權你的 GitLab 賬戶
1. 選擇 gitlab 站點,私有還是官方網站
? What GitLab instance do you want to log into? [Use arrows to move, type to filter]
gitlab.com
> GitLab Self-hosted Instance # 私有部署的 gitlab
2. 輸入提供 `web` 的服務域名
? GitLab hostname: your_gitlab.com # 輸入你的gitlab網站host,如: your_gitlab.com
3. 輸入 `API` 域名
? API hostname: your_gitlab.com
4. 輸入上面剛剛獲取的 `Token`
? Paste your authentication token: lab_dajsldjlasjdl
5. 選擇預設協議
? Choose default git protocol [Use arrows to move, type to filter]
SSH
> HTTPS
HTTP
6. 是否授權
? Authenticate Git with your GitLab credentials? (Y/n) Y
7. 選擇 `API` 協議
? Choose host API protocol [Use arrows to move, type to filter]
> HTTPS
HTTP
8. 輸出下面內容,表示成功了
- glab config set -h your_gitlab.com git_protocol https
✓ Configured git protocol
- glab config set -h your_gitlab.com api_protocol https
✓ Configured API protocol
✓ Logged in as yourname
核心命令
glab mr [list, create, close, reopen, delete, ...]
glab issue [list, create, close, reopen, delete, ...]
glab pipeline [list, delete, ci status, ci view, ...]
glab release
glab repo
glab label
glab alias
使用示例
$ glab auth login --stdin < token.txt
$ glab issue list
$ glab mr for 123 # Create merge request for issue 123
$ glab mr checkout 243
$ glab pipeline ci view
$ glab mr view
$ glab mr approve
$ glab mr merge
常用命令
# 使用當前分支,建立一個合併請求
$ glab mr create -f test/release/master(預設,也可以不輸入)
瞭解更多
glab.readthedocs.io/en/latest/inde...
本作品採用《CC 協議》,轉載必須註明作者和本文連結