正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab CLI - glab

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

glabはオープンソースのGitLab CLIツールです。Gitやコードを処理しているターミナルでGitLabを直接利用でき、ウィンドウやブラウザータブを切り替える必要がありません。

  • イシューを処理する。
  • マージリクエストを操作する。
  • 実行中のパイプラインをコマンドラインインターフェース(CLI)から直接監視する。

コマンドの例

GitLab CLIは、glab <command> <subcommand> [flags]という形式の構造化されたコマンドを使用して、通常はGitLabのユーザーインターフェースから行う多くの操作を実行できます:

# Sign in
glab auth login --stdin < token.txt

# View a list of issues
glab issue list

# Create merge request for issue 123
glab mr create 123

# Check out the branch for merge request 243
glab mr checkout 243

# Watch the pipeline in progress
glab pipeline ci view

# View, approve, and merge the merge request
glab mr view
glab mr approve
glab mr merge

コアコマンド

  • glab alias: エイリアスの作成、一覧表示、削除を行います。
  • glab api: 認証済みのGitLab APIにリクエストを送信します。
  • glab auth: CLIの認証状態を管理します。
  • glab changelog: 変更履歴APIとやり取りします。
  • glab check-update: CLIのアップデートを確認します。
  • glab ci: GitLab CI/CDパイプラインやジョブを操作します。
  • glab cluster: Kubernetes向けGitLabエージェントとそのクラスターを管理します。
  • glab completion: Shell補完スクリプトを生成します。
  • glab config: CLI設定を編集および取得します。
  • glab deploy-key: デプロイキーを管理します。
  • glab duo: 自然言語からターミナルコマンドを生成します。
  • glab incident: GitLabのインシデントを操作します。
  • glab issue: GitLabイシューを操作します。
  • glab iteration: イテレーション情報を取得します。
  • glab job: GitLab CI/CDジョブを操作します。
  • glab label: プロジェクトのラベルを管理します。
  • glab mr: マージリクエストを作成、表示、管理します。
  • glab release: GitLabリリースを管理します。
  • glab repo: GitLabのリポジトリとプロジェクトを操作します。
  • glab schedule: GitLab CI/CDのスケジュールを操作します。
  • glab securefile: プロジェクトのセキュアファイルを管理します。
  • glab snippet: スニペットを作成、表示、管理します。
  • glab ssh-key: GitLabアカウントに登録されたSSHキーを管理します。
  • glab stack: スタックされた差分を作成、管理、操作します。
  • glab token: 個人、プロジェクト、またはグループのトークンを管理します。
  • glab user: GitLabユーザーアカウントを操作します。
  • glab variable: GitLabプロジェクトまたはグループの変数を管理します。
  • glab version: CLIのバージョン情報を表示します。

CLI用GitLab Duo

  • プラン: Premium、Ultimate
  • アドオン: GitLab Duo Enterprise
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

GitLab CLIには、GitLab Duoを利用する機能が含まれています。たとえば、次の機能があります:

作業中にgitコマンドについて質問するには、次のように入力します:

glab duo askコマンドは、忘れたgitコマンドを思い出す手助けをしたり、他のタスクを実行するためのgitコマンドの使い方を提案したりします。

コマンドラインインターフェース(CLI)をインストールする

インストール手順は、glabREADMEに記載されています。

GitLabに対して認証する

GitLabアカウントに対して認証するには、glab auth loginを実行します。glabは、GITLAB_TOKENで設定されたトークンに従います。

glabは、安全な認証のために1Password Shellプラグインとも統合されています。

ファイルから変数を読み込みCI/CDパイプラインを実行する

glab ci runコマンドに-f--variables-from-string)フラグを指定して実行すると、外部ファイルに格納されている値を使用できます。たとえば、次のコードを.gitlab-ci.ymlファイルに追加すると、2つの変数を参照できます:

stages:
  - build

# $EXAMPLE_VARIABLE_1 and $EXAMPLE_VARIABLE_2 are stored in another file
build-job:
  stage: build
  script:
    - echo $EXAMPLE_VARIABLE_1
    - echo $EXAMPLE_VARIABLE_2
    - echo $CI_JOB_ID

次に、これらの変数を格納するvariables.jsonというファイルを作成します:

[
  {
    "key": "EXAMPLE_VARIABLE_1",
    "value": "example value 1"
  },
  {
    "key": "EXAMPLE_VARIABLE_2",
    "value": "example value 2"
  }
]

variables.jsonの内容を含むCI/CDパイプラインを開始するには、次のコマンドを実行します。必要に応じてファイルのパスを編集してください:

$ glab ci run --variables-file /tmp/variables.json

$ echo $EXAMPLE_VARIABLE_1
example value 1
$ echo $EXAMPLE_VARIABLE_2
example value 2
$ echo $CI_JOB_ID
9811701914

CLIをDocker認証情報ヘルパーとして使用する

GitLabのコンテナレジストリまたはコンテナイメージ依存プロキシからイメージをプルする場合、CLIをDocker認証情報ヘルパーとして使用できます。認証情報ヘルパーを設定するには、次の手順に従います:

  1. glab auth loginを実行します。
  2. サインインするGitLabインスタンスの種類を選択します。プロンプトが表示されたら、GitLabのホスト名を入力します。
  3. サインイン方法で、Webを選択します。
  4. コンテナレジストリおよびコンテナイメージプロキシで使用するドメインのカンマ区切りリストを入力します。GitLab.comにサインインすると、デフォルト値が自動入力されます。
  5. 認証後、glab auth configure-dockerを実行して、Docker設定の認証情報ヘルパーを初期化します。

イシューを報告する

gitlab-org/cliリポジトリでイシューをオープンして、フィードバックを送信してください。

トラブルシューティング

glab 2.0.0の環境変数の変更点

glabバージョン2.0.0以降、すべてのglab環境変数にはGLAB_というプレフィックスが付きます。この非推奨に関する詳細については、イシュー7999を参照してください。

1Password Shellプラグインを使用するとglab completionコマンドが失敗する

1Password Shellプラグインはエイリアスglab='op plugin run -- glab'を追加しますが、これはglab completionコマンドと干渉する可能性があります。glab completionコマンドが失敗する場合は、補完を実行する前にエイリアスが展開されないようにShellを設定します:

  • Zshの場合は、~/.zshrcファイルを編集して次の行を追加します:

    setopt completealiases
  • Bashの場合は、~/.bashrcファイルを編集して次の行を追加します:

    complete -F _functionname glab

詳細については、1Password Shellプラグインのイシュー122を参照してください。

コマンドが誤ったGitリモートを使用する

Gitリポジトリに複数のリモートがあり、誤ったリモートを選択した場合、コマンドがそのリモートにクエリすると空の結果が返されることがあります。この問題を修正するには、glabがそのリポジトリで参照するリモートを変更します:

  1. ターミナルからgit config editを実行します。

  2. glab-resolved = baseが含まれる行を検索し、誤っている場合は削除します。

  3. Git設定ファイルへの変更を保存します。

  4. 使用するデフォルトを設定するには、次のコマンドを実行します。例のoriginを編集し、優先するリモート名に置き換えてください:

    git config set --append remote.origin.glab-resolved base