Skip to content
Latchkey

GitHub CLI(gh)とは何か? 解説

GitHub CLI(gh)は GitHub をターミナルに持ち込み、コマンドラインを離れることなく pull request、issue、release、API を管理できるようにします。

gh は GitHub の公式コマンドラインツールです。一般的な GitHub の操作(PR を開く、issue をレビューする、release を作成する)と、REST および GraphQL API の全体を便利なコマンドでラップしており、scripting や CI の自動化に特に役立ちます。

GitHub CLI とは

gh は GitHub 向けのコマンドラインインターフェースです。自分のアカウント、あるいは CI では token に対して認証し、pull request、issue、release、gist、workflow、生の API 呼び出し用のコマンドを提供します。git を補完するもので、git は commit を管理し、gh はそれを取り巻く GitHub の機能を管理します。

仕組み

gh は "gh auth login" 経由で、あるいは自動化では環境変数 GH_TOKEN から token を読み取って認証します。コマンドは GitHub の機能に対応し("gh pr create"、"gh issue list")、"gh api" を使えば、高レベルなコマンドがカバーしない処理のために任意の REST または GraphQL エンドポイントを直接呼び出せます。

使用例

pull request を作成し、workflow の実行を調べます。

Common gh commands
# open a PR from the current branch
gh pr create --fill

# view the latest workflow run
gh run list --limit 1

# call the API directly
gh api /repos/owner/repo/releases/latest

CI/CD での役割

CI では、gh は GitHub がホストする runner にプリインストールされており、GitHub 自動化の定番ツールです。release の作成、PR へのコメント、workflow の dispatch、実行状況のクエリなどに使います。GH_TOKEN を自動的に読み取るため、スクリプトは追加のセットアップなしで認証できます。pipeline 内で GitHub とのやり取りを scripting する最もすっきりした方法です。

代替ツール

curl による GitHub の REST または GraphQL API への直接呼び出しも機能しますが、より冗長です。Marketplace の GitHub Actions は、同じ操作の多くを再利用可能な step としてラップします。Hub ツールは、より古い git の wrapper でした。gh は公式で活発にメンテナンスされている CLI であり、推奨される選択肢です。

重要なポイント

  • gh は GitHub の PR、issue、release、API をターミナルに持ち込む。
  • GH_TOKEN で認証するため、CI での scripting に理想的である。
  • CI では release、PR へのコメント、workflow の dispatch を自動化する。

関連ガイド