ターミナルからDevOpsを管理するためにGitLabのCLIを始める方法
GitLabは多くの開発チームにとって真実の源です。しかし、GitLabのデータにアクセスするには通常、ウェブブラウザへのコンテキストスイッチや手間のかかるAPIのやり取りが必要です。今では、ターミナルを離れずにDevOpsプロセスを管理できる公式のCLIがあります。
GitLabは、現代のソフトウェア配信チーム向けの主要なソース管理およびCI/CDソリューションの1つです。ソフトウェアプロジェクトの計画、構築、配信のための包括的な機能セットを提供します。
GitLabは通常、ウェブUIまたはAPIを使用して操作されますが、これらのオプションはターミナル中心の開発者には特に魅力的ではありません。しかし、幸いなことに、GitLabにはCLIもあり、コードや他のシェルコマンドと一緒に、問題、マージリクエスト、パイプライン、その他のリソースに直接アクセスできます。この記事では、その基本を紹介します。
グラブとは何ですか?
GitLab CLI glabは、Clement Samによってコミュニティ主導のプロジェクトとして始まりました。それ以来、GitLabに採用され、2022年12月に最初のGitLab主導の公式リリースを受けました。今後も、GitLabと広範なコミュニティによってオープンソースツールとして維持されていくでしょう。
Glabは現在、以下のGitLab機能とのインタラクションをサポートしています:
- 問題
- マージリクエスト
- パイプライン
- リリース
- リポジトリ
- ラベル
- スニペット
GitLabアカウントから既存のデータを取得したり、新しいアイテムを作成したり、パイプラインのステータスを確認したり、マージリクエストを承認するなどの操作を実行できます。GitLab.comや自分でホストしているサーバーを含む、複数のGitLabインスタンスに同時に認証することも可能です。
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インスタンスを使用している場合、GitLab APIへのアクセスにHTTPとHTTPSのプロトコルのどちらを選択するかを求められます。インスタンスがHTTPのみをサポートしていることを知らない限り、HTTPSを選択してください。
シーケンスの最後で、「ログインしました」という成功メッセージが表示されるはずです。
別のGitLabインスタンスにログインする
別のGitLabインスタンスにログインするには、再度行うことができます。
auth login指示を実行中
auth status設定したすべてのエンドポイントのリストを出力します。
Glabを使用する
Glabはあなたのプロジェクトの作業ディレクトリから実行されることを意図しています。始めるには
cdGitリポジトリを含むディレクトリに移動します。Glabコマンドは、プロジェクトのデフォルトのGitリモートに基づいて、正しいGitLabインスタンスと認証トークンを自動的に選択するようになります。
このモデルは複数のGitLabインスタンスからのプロジェクトをシームレスに使用できることを許可します。実行できます。
gitそして
glab作業中にプロジェクトディレクトリに入ることでコマンドを実行できます。ですが、設定を行うことでプロジェクトの外でGlabを使用することも可能です。
GITLAB_TOKENと
GITLAB_URI(または
GITLAB_HOST) 環境変数をシェルに設定し、その後指定する
--repoフラッグ あなたのコマンドでターゲットプロジェクトを特定します(in)
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 フラグを使用して、結果セットの次のページに切り替えます。デフォルトでは、1ページあたり20項目が表示されますが、これを --per-page フラグで変更することができます。
いくつかのフィルタリングフラグがサポートされています。以下のコマンドは、P1ラベルが付けられ、v3.1.0のマイルストーンにあり、あなたに割り当てられたすべてのクローズされた課題を取得します:
glab issue list --mine --milestone v3.1.0 --label P1 --closedglab issue 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フラグを追加します。コメントは、issue listコマンドのようにページネーションされます。
デフォルトのブラウザーで問題のウェブ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 issue create --helpを実行してみてください。
マージリクエスト
基本的なマージリクエストのやり取りは、問題のそれに似ています。既存のマージリクエストの詳細を取得するには、listおよびviewコマンドを使用します。approve、close、およびmergeコマンドは、それぞれのアクションをMRに適用します。
glab mr merge 100マージリクエストコマンドは、引数としてIDまたはソースブランチのいずれかを受け入れます。次のコマンドを使用して、demo-branchのMRをメインブランチにマージできます:
glab mr merge demo-branchMRに含まれる変更をdiffコマンドで表示できます:
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ファイルに対して内蔵のリンターが含まれています。これにより、ファイルを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コマンドは、アクティブなGitLabインスタンスのコンテキスト内でリクエストするための相対URIを受け取ります。次の例は、IDが1のプロジェクトに関連付けられたGitタグを取得します。
glab api projects/1/repository/tags生のAPIレスポンスデータは、JSON形式でターミナルに出力されます。
リクエストのHTTPメソッドを-Xまたは--methodフラグを使用して設定します。リクエストボディデータを-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 issuesDevOpsを管理するためのGlabの使用
Glabは公式のGitLab CLIです。これにより、ターミナルからDevOpsプロセス全体を管理できます。問題を作成したり、タスクを割り当てたり、マージリクエストをレビューしたり、CIパイプラインをトリガーしたり、リリースにタグを付けたりすることができます。ツールを切り替えたり、GitLab APIを学んだりする必要はありません。これにより、コンテキストの切り替えが減り、最も一般的なワークフローの自動化が容易になります。
GitLabのデータにコードとGit操作を並行してアクセスすることで、目の前のタスクに集中できます。また、ターミナルでの作業に慣れていれば、CLIはWeb UIよりも素早く使用できます。それは、UIやAPIに加えて、あなたのGitLabインスタンスのための貴重な第三のインターフェースです。
この記事では、一般的なタスクにおけるGlabの基本的な使い方をカバーしましたが、他にも多くのことを探求できます。ドキュメントをチェックするか、glab helpおよびglab <COMMAND> --helpを実行して、利用可能なすべての機能を探求してみてください。
Glabが完全にネイティブのGitLabプロジェクトとして組み込まれたので、さらなる開発が約束されており、追加のワークフローをサポートし、コミュニティからのリクエストを実装する予定です。プロジェクトのリポジトリで問題を開くことで、GitLabにフィードバックを提供できます。


