「インストール - GitHub CLI」の版間の差分
ページの作成:「== 概要 == GitHub CLI (gh) は、GitHubの機能をコマンドラインから直接操作できる公式ツールである。<br> <br> プルリクエストやIssueの管理、リポジトリ操作等、GitHubの主要機能をターミナルから実行できる。<br> Go言語で記述されており、Windows、MacOS、Linuxの主要プラットフォームで動作する。<br> <br> 主要な仕様を以下に示す。<br> * 開発言語 *: Go * ライセン…」 |
編集の要約なし |
||
| (同じ利用者による、間の1版が非表示) | |||
| 205行目: | 205行目: | ||
<br> | <br> | ||
gh auth status | gh auth status | ||
<br><br> | |||
== 基本的な使用方法 == | |||
GitHub CLIの基本的なコマンド構造は、<code>gh <command> <subcommand> [flags]</code> の形式である。<br> | |||
<br> | |||
<code>command</code> には、<code>repo</code>、<code>pr</code>、<code>issue</code> 等の操作対象が指定され、<br> | |||
<code>subcommand</code> には、<code>create</code>、<code>list</code>、<code>view</code> 等のアクションが指定される。<br> | |||
<br> | |||
各コマンドの詳細は、<code>gh <command> --help</code> で確認できる。<br> | |||
<br> | |||
==== リポジトリ操作 ==== | |||
リポジトリのクローン、作成、フォーク等の操作は <code>gh repo</code> コマンドで実行する。<br> | |||
<br> | |||
下表に、主なサブコマンドを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh repo 主なサブコマンド | |||
! サブコマンド !! 説明 | |||
|- | |||
| <code>gh repo clone</code> || リポジトリをクローンする。 | |||
|- | |||
| <code>gh repo create</code> || 新規リポジトリを作成する。 | |||
|- | |||
| <code>gh repo fork</code> || リポジトリをフォークする。 | |||
|- | |||
| <code>gh repo view</code> || リポジトリの情報を表示する。 | |||
|- | |||
| <code>gh repo sync</code> || フォーク元リポジトリと同期する。 | |||
|- | |||
| <code>gh repo delete</code> || リポジトリを削除する。 | |||
|- | |||
| <code>gh repo list</code> || リポジトリの一覧を表示する。 | |||
|} | |||
</center> | |||
<br> | |||
下表に、<code>gh repo create</code> の主なオプションを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh repo create 主なオプション | |||
! オプション !! 説明 | |||
|- | |||
| <code>--public</code> / <code>--private</code> / <code>--internal</code> || リポジトリの可視性 | |||
|- | |||
| <code>-c</code> / <code>--clone</code> || 作成後にクローンする。 | |||
|- | |||
| <code>-d</code> / <code>--description</code> || リポジトリの説明 | |||
|- | |||
| <code>-g</code> / <code>--gitignore</code> || .gitignoreテンプレートを指定する。 | |||
|- | |||
| <code>-l</code> / <code>--license</code> || ライセンステンプレートを指定する。 | |||
|- | |||
| <code>-s</code> / <code>--source</code> || 既存のローカルディレクトリからリポジトリを作成する。 | |||
|- | |||
| <code>--push</code> || 初期コミットをプッシュする。 | |||
|- | |||
| <code>-p</code> / <code>--template</code> || テンプレートリポジトリを指定する。 | |||
|- | |||
| <code>--add-readme</code> || READMEファイルを追加する。 | |||
|} | |||
</center> | |||
<br> | |||
下表に、リポジトリ操作の実行例を示す。<br> | |||
<br> | |||
# 公開リポジトリを作成してクローン | |||
gh repo create my-project --public --clone | |||
# 組織のリポジトリを作成 | |||
gh repo create my-org/my-project --public | |||
# 既存のディレクトリからプライベートリポジトリを作成 | |||
gh repo create my-project --private --source=. --remote=upstream | |||
# リポジトリをクローン | |||
gh repo clone cli/cli | |||
# リポジトリをフォークしてクローン | |||
gh repo fork cli/cli --clone | |||
# フォークを上流と同期 | |||
gh repo sync owner/forked-repo | |||
# リポジトリの情報をブラウザで表示 | |||
gh repo view cli/cli --web | |||
# リポジトリを削除 | |||
gh repo delete my-org/my-repo --yes | |||
<br> | |||
==== プルリクエスト管理 ==== | |||
プルリクエストの作成、一覧表示、レビュー、マージ等の操作は <code>gh pr</code> コマンドで実行する。<br> | |||
<br> | |||
下表に、主なサブコマンドを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh pr 主なサブコマンド | |||
! サブコマンド !! 説明 | |||
|- | |||
| <code>gh pr create</code> || プルリクエストを作成する。 | |||
|- | |||
| <code>gh pr list</code> || プルリクエストの一覧を表示する。 | |||
|- | |||
| <code>gh pr view</code> || プルリクエストの詳細を表示する。 | |||
|- | |||
| <code>gh pr checkout</code> || プルリクエストのブランチをチェックアウトする。 | |||
|- | |||
| <code>gh pr review</code> || プルリクエストをレビューする。 | |||
|- | |||
| <code>gh pr merge</code> || プルリクエストをマージする。 | |||
|- | |||
| <code>gh pr diff</code> || プルリクエストの差分を表示する。 | |||
|- | |||
| <code>gh pr close</code> || プルリクエストをクローズする。 | |||
|- | |||
| <code>gh pr checks</code> || プルリクエストのCIチェック状態を表示する。 | |||
|} | |||
</center> | |||
<br> | |||
下表に、<code>gh pr create</code> の主なオプションを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh pr create 主なオプション | |||
! オプション !! 説明 | |||
|- | |||
| <code>-t</code> / <code>--title</code> || プルリクエストのタイトル | |||
|- | |||
| <code>-b</code> / <code>--body</code> || プルリクエストの本文 | |||
|- | |||
| <code>-F</code> / <code>--body-file</code> || 本文をファイルから読み込む。 | |||
|- | |||
| <code>-B</code> / <code>--base</code> || マージ先のベースブランチ | |||
|- | |||
| <code>-H</code> / <code>--head</code> || マージ元のヘッドブランチ | |||
|- | |||
| <code>-f</code> / <code>--fill</code> || コミットメッセージからタイトルと本文を自動入力する。 | |||
|- | |||
| <code>-d</code> / <code>--draft</code> || ドラフトとして作成する。 | |||
|- | |||
| <code>-a</code> / <code>--assignee</code> || アサイン先 (<code>@me</code> で自分を指定) | |||
|- | |||
| <code>-r</code> / <code>--reviewer</code> || レビュアーを指定する。 | |||
|- | |||
| <code>-l</code> / <code>--label</code> || ラベルを付与する。 | |||
|- | |||
| <code>-w</code> / <code>--web</code> || ブラウザで作成画面を開く。 | |||
|} | |||
</center> | |||
<br> | |||
下表に、<code>gh pr merge</code> の主なオプションを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh pr merge 主なオプション | |||
! オプション !! 説明 | |||
|- | |||
| <code>-m</code> / <code>--merge</code> || マージコミットを作成する。 | |||
|- | |||
| <code>-s</code> / <code>--squash</code> || スカッシュマージする。 | |||
|- | |||
| <code>-r</code> / <code>--rebase</code> || リベースマージする。 | |||
|- | |||
| <code>-d</code> / <code>--delete-branch</code> || マージ後にブランチを削除する。 | |||
|- | |||
| <code>--auto</code> || CIチェック通過後に自動マージする。 | |||
|- | |||
| <code>--admin</code> || 管理者権限でマージする。 | |||
|} | |||
</center> | |||
<br> | |||
プルリクエスト操作の実行例を以下に示す。<br> | |||
<br> | |||
# タイトルと本文を指定して作成 | |||
gh pr create --title "The bug is fixed" --body "Everything works again" | |||
# コミットメッセージから自動入力 | |||
gh pr create --fill | |||
# レビュアーを指定して作成 | |||
gh pr create --reviewer monalisa,hubot --reviewer myorg/team-name | |||
# ドラフトとして作成 | |||
gh pr create --draft --fill | |||
# ベースブランチとヘッドブランチを指定 | |||
gh pr create --base develop --head feature-branch | |||
# ブラウザで作成 | |||
gh pr create --web | |||
# 自分がアサインされたPR一覧 | |||
gh pr list --assignee @me | |||
# ラベルでフィルタ | |||
gh pr list --label "needs review" | |||
# PRの詳細を表示 | |||
gh pr view 123 | |||
# PRのブランチをチェックアウト | |||
gh pr checkout 353 | |||
# 承認レビュー | |||
gh pr review 123 --approve --body "LGTM" | |||
# 変更要求レビュー | |||
gh pr review 123 --request-changes --body "Please fix the tests" | |||
# スカッシュマージしてブランチ削除 | |||
gh pr merge 123 --squash --delete-branch | |||
# CI通過後に自動マージ | |||
gh pr merge 123 --auto --squash | |||
# 差分を表示 | |||
gh pr diff 123 | |||
# クローズ | |||
gh pr close 123 --comment "Closing in favor of #456" | |||
<br> | |||
ブランチ作成からマージまでの実践的なワークフロー例を以下に示す。<br> | |||
<br> | |||
# ブランチを作成してコミット | |||
git checkout -b feature/new-feature | |||
git add . && git commit -m "Add new feature" | |||
# プッシュしてPRを作成 | |||
git push -u origin feature/new-feature | |||
gh pr create --fill | |||
# CIチェックの完了を待機 | |||
gh pr checks --wait | |||
# レビューして承認 | |||
gh pr review --approve --body "Looks good" | |||
# スカッシュマージしてブランチ削除 | |||
gh pr merge --squash --delete-branch | |||
# ローカルを最新化 | |||
git checkout main && git pull | |||
<br> | |||
==== Issue管理 ==== | |||
Issueの作成、一覧表示、クローズ等の操作は <code>gh issue</code> コマンドで実行する。<br> | |||
<br> | |||
下表に、主なサブコマンドを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh issue 主なサブコマンド | |||
! サブコマンド !! 説明 | |||
|- | |||
| <code>gh issue create</code> || Issueを作成する。 | |||
|- | |||
| <code>gh issue list</code> || Issueの一覧を表示する。 | |||
|- | |||
| <code>gh issue view</code> || Issueの詳細を表示する。 | |||
|- | |||
| <code>gh issue close</code> || Issueをクローズする。 | |||
|- | |||
| <code>gh issue reopen</code> || Issueを再オープンする。 | |||
|- | |||
| <code>gh issue comment</code> || Issueにコメントを追加する。 | |||
|- | |||
| <code>gh issue edit</code> || Issueを編集する。 | |||
|} | |||
</center> | |||
<br> | |||
下表に、<code>gh issue create</code> の主なオプションを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh issue create 主なオプション | |||
! オプション !! 説明 | |||
|- | |||
| <code>-t</code> / <code>--title</code> || Issueのタイトル | |||
|- | |||
| <code>-b</code> / <code>--body</code> || Issueの本文 | |||
|- | |||
| <code>-F</code> / <code>--body-file</code> || 本文をファイルから読み込む。 | |||
|- | |||
| <code>-a</code> / <code>--assignee</code> || アサイン先 (<code>@me</code> で自分を指定) | |||
|- | |||
| <code>-l</code> / <code>--label</code> || ラベルを付与する。 | |||
|- | |||
| <code>-m</code> / <code>--milestone</code> || マイルストーンを指定する。 | |||
|- | |||
| <code>-p</code> / <code>--project</code> || プロジェクトを指定する。 | |||
|- | |||
| <code>-w</code> / <code>--web</code> || ブラウザで作成画面を開く。 | |||
|} | |||
</center> | |||
<br> | |||
Issue操作の実行例を以下に示す。<br> | |||
<br> | |||
# タイトルと本文を指定して作成 | |||
gh issue create --title "Bug: login fails" --body "Steps to reproduce..." | |||
# ラベルとアサインを指定 | |||
gh issue create --label bug --assignee @me | |||
# 本文をファイルから読み込み | |||
gh issue create --body-file issue-template.md | |||
# 自分がアサインされたIssue一覧 | |||
gh issue list --assignee @me | |||
# ラベルと状態でフィルタ | |||
gh issue list --label bug --state all | |||
# Issueの詳細を表示 | |||
gh issue view 123 | |||
# クローズ | |||
gh issue close 123 --comment "Fixed in #456" | |||
# 再オープン | |||
gh issue reopen 123 | |||
# コメント追加 | |||
gh issue comment 123 --body "I can reproduce this" | |||
# 編集 | |||
gh issue edit 123 --title "Updated title" --body "Updated body" | |||
<br> | |||
v2.94.0以降では、Issues 2.0機能が追加された。<br> | |||
これは、Issue種別 (issue types)、サブIssue (sub-issues)、ブロック関係 (blocked-by / blocking) の設定が可能である。<br> | |||
<br> | |||
# Issue種別を指定して作成 | |||
gh issue create --type Bug | |||
# 親Issueを指定してサブIssueを作成 | |||
gh issue create --parent 100 | |||
# ブロック元Issueを指定して作成 | |||
gh issue create --blocked-by 200 | |||
<br> | |||
==== GitHub Actions (ワークフロー) ==== | |||
GitHub Actionsのワークフロー実行や管理は <code>gh workflow</code> および <code>gh run</code> コマンドで実行する。<br> | |||
<br> | |||
下表に、<code>gh workflow</code> の主なサブコマンドを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh workflow 主なサブコマンド | |||
! サブコマンド !! 説明 | |||
|- | |||
| <code>gh workflow list</code> || ワークフローの一覧を表示する。 | |||
|- | |||
| <code>gh workflow view</code> || ワークフローの詳細を表示する。 | |||
|- | |||
| <code>gh workflow run</code> || ワークフローを実行する。 | |||
|- | |||
| <code>gh workflow enable</code> || ワークフローを有効化する。 | |||
|- | |||
| <code>gh workflow disable</code> || ワークフローを無効化する。 | |||
|} | |||
</center> | |||
<br> | |||
下表に、<code>gh run</code> の主なサブコマンドを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh run 主なサブコマンド | |||
! サブコマンド !! 説明 | |||
|- | |||
| <code>gh run list</code> || 実行一覧を表示する。 | |||
|- | |||
| <code>gh run view</code> || 実行の詳細を表示する。 | |||
|- | |||
| <code>gh run watch</code> || 実行の完了を監視する。 | |||
|- | |||
| <code>gh run rerun</code> || 実行を再実行する。 | |||
|- | |||
| <code>gh run cancel</code> || 実行をキャンセルする。 | |||
|- | |||
| <code>gh run download</code> || 実行のアーティファクトをダウンロードする。 | |||
|} | |||
</center> | |||
<br> | |||
ワークフロー操作の実行例を以下に示す。<br> | |||
<br> | |||
# ワークフロー一覧 | |||
gh workflow list | |||
# ワークフローを実行 | |||
gh workflow run deploy.yml | |||
# ブランチを指定して実行 | |||
gh workflow run deploy.yml --ref develop | |||
# 入力パラメータを指定して実行 | |||
gh workflow run deploy.yml -f environment=production | |||
# ワークフローの詳細を表示 | |||
gh workflow view deploy.yml | |||
# 直近5件の実行一覧 | |||
gh run list --limit 5 | |||
# 実行の詳細を表示 | |||
gh run view 123456 | |||
# ログを表示 | |||
gh run view 123456 --log | |||
# 実行の完了を監視 | |||
gh run watch 123456 | |||
# 失敗したジョブを再実行 | |||
gh run rerun 123456 --failed | |||
# アーティファクトをダウンロード | |||
gh run download 123456 | |||
<br> | |||
==== リリース管理 ==== | |||
リリースの作成、ダウンロード、アセットのアップロード等の操作は <code>gh release</code> コマンドで実行する。<br> | |||
<br> | |||
下表に、主なサブコマンドを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh release 主なサブコマンド | |||
! サブコマンド !! 説明 | |||
|- | |||
| <code>gh release create</code> || リリースを作成する。 | |||
|- | |||
| <code>gh release list</code> || リリースの一覧を表示する。 | |||
|- | |||
| <code>gh release view</code> || リリースの詳細を表示する。 | |||
|- | |||
| <code>gh release download</code> || リリースアセットをダウンロードする。 | |||
|- | |||
| <code>gh release upload</code> || リリースアセットをアップロードする。 | |||
|- | |||
| <code>gh release delete</code> || リリースを削除する。 | |||
|} | |||
</center> | |||
<br> | |||
下表に、<code>gh release create</code> の主なオプションを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh release create 主なオプション | |||
! オプション !! 説明 | |||
|- | |||
| <code>-t</code> / <code>--title</code> || リリースのタイトル | |||
|- | |||
| <code>-n</code> / <code>--notes</code> || リリースノート | |||
|- | |||
| <code>-F</code> / <code>--notes-file</code> || リリースノートをファイルから読み込む。 | |||
|- | |||
| <code>--generate-notes</code> || リリースノートを自動生成する。 | |||
|- | |||
| <code>-d</code> / <code>--draft</code> || ドラフトとして作成する。 | |||
|- | |||
| <code>-p</code> / <code>--prerelease</code> || プレリリースとして作成する。 | |||
|- | |||
| <code>--target</code> || ターゲットコミットを指定する。 | |||
|- | |||
| <code>--verify-tag</code> || タグの存在を確認する。 | |||
|} | |||
</center> | |||
<br> | |||
リリース操作の実行例を以下に示す。<br> | |||
<br> | |||
# リリースノートを指定して作成 | |||
gh release create v1.2.3 --notes "bugfix release" | |||
# リリースノートを自動生成 | |||
gh release create v1.2.3 --generate-notes | |||
# リリースノートをファイルから読み込み | |||
gh release create v1.2.3 -F release-notes.md | |||
# アセットを添付して作成 | |||
gh release create v1.2.3 ./dist/*.tgz | |||
# ドラフトとして作成 | |||
gh release create v1.2.3 --draft --notes "Work in progress" | |||
# リリース一覧 | |||
gh release list --limit 5 | |||
# リリースの詳細を表示 | |||
gh release view v1.2.3 | |||
# アセットをダウンロード | |||
gh release download v1.2.3 | |||
# ダウンロードディレクトリを指定 | |||
gh release download v1.2.3 -D ./downloads | |||
# パターンでフィルタしてダウンロード | |||
gh release download v1.2.3 -p '*.tgz' | |||
# アセットをアップロード | |||
gh release upload v1.2.3 ./build/*.zip | |||
<br> | |||
v2.96.0以降では、公開リポジトリのリリースアセットダウンロードが認証なしで可能である。<br> | |||
<br> | |||
==== Gist管理 ==== | |||
Gistの作成、一覧表示、クローン等の操作は <code>gh gist</code> コマンドで実行する。<br> | |||
<br> | |||
下表に、主なサブコマンドを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh gist 主なサブコマンド | |||
! サブコマンド !! 説明 | |||
|- | |||
| <code>gh gist create</code> || Gistを作成する。 | |||
|- | |||
| <code>gh gist list</code> || Gistの一覧を表示する。 | |||
|- | |||
| <code>gh gist view</code> || Gistの内容を表示する。 | |||
|- | |||
| <code>gh gist clone</code> || Gistをクローンする。 | |||
|- | |||
| <code>gh gist edit</code> || Gistを編集する。 | |||
|- | |||
| <code>gh gist delete</code> || Gistを削除する。 | |||
|} | |||
</center> | |||
<br> | |||
下表に、<code>gh gist create</code> の主なオプションを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh gist create 主なオプション | |||
! オプション !! 説明 | |||
|- | |||
| <code>-d</code> / <code>--desc</code> || Gistの説明 | |||
|- | |||
| <code>-f</code> / <code>--filename</code> || ファイル名を指定する。 | |||
|- | |||
| <code>-p</code> / <code>--public</code> || 公開Gistとして作成する。<br>デフォルトは、<u>secret</u> | |||
|- | |||
| <code>-w</code> / <code>--web</code> || ブラウザで作成画面を開く。 | |||
|} | |||
</center> | |||
<br> | |||
Gist操作の実行例を以下に示す。<br> | |||
<br> | |||
# 公開Gistを作成 | |||
gh gist create --public hello.py | |||
# 説明を付けて作成 | |||
gh gist create hello.py -d "my Hello-World program" | |||
# 複数ファイルを指定して作成 | |||
gh gist create hello.py world.py cool.txt | |||
# 標準入力から作成 | |||
echo "print('hello')" | gh gist create - | |||
# Gist一覧 | |||
gh gist list | |||
# Gistの内容を表示 | |||
gh gist view <gist-id> | |||
# Gistをクローン | |||
gh gist clone <gist-id> | |||
<br><br> | |||
== 設定とカスタマイズ == | |||
==== 設定ファイル ==== | |||
GitHub CLIの設定は <code>gh config</code> コマンドで管理する。<br> | |||
<br> | |||
下表に、主なサブコマンドを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh config 主なサブコマンド | |||
! サブコマンド !! 説明 | |||
|- | |||
| <code>gh config get</code> || 設定値を取得する。 | |||
|- | |||
| <code>gh config set</code> || 設定値を変更する。 | |||
|- | |||
| <code>gh config list</code> || 全ての設定値を表示する。 | |||
|- | |||
| <code>gh config clear-cache</code> || キャッシュをクリアする。 | |||
|} | |||
</center> | |||
<br> | |||
設定ファイルの配置場所は以下の通りである。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ 設定ファイルの配置場所 | |||
! プラットフォーム !! 配置場所 | |||
|- | |||
| Linux / MacOS || <u>$XDG_CONFIG_HOME/gh</u> または <u>$HOME/.config/gh</u> | |||
|- | |||
| Windows || <u>%AppData%/GitHub CLI</u> | |||
|- | |||
| 環境変数で指定 || 環境変数 <code>GH_CONFIG_DIR</code> で任意のディレクトリを指定できる。 | |||
|} | |||
</center> | |||
<br> | |||
下表に、主な設定項目を示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ 主な設定項目 | |||
! 設定項目 !! 説明 | |||
|- | |||
| <code>git_protocol</code> || Gitプロトコル<br><code>https</code> または <code>ssh</code>、デフォルト: <code>https</code> | |||
|- | |||
| <code>editor</code> || テキストエディタ | |||
|- | |||
| <code>prompt</code> || インタラクティブプロンプト<br><code>enabled</code> または <code>disabled</code> | |||
|- | |||
| <code>pager</code> || ページャープログラム | |||
|- | |||
| <code>browser</code> || ブラウザプログラム | |||
|- | |||
| <code>telemetry</code> || テレメトリ<br><code>enabled</code> または <code>disabled</code> | |||
|} | |||
</center> | |||
<br> | |||
設定操作の実行例を以下に示す。<br> | |||
<br> | |||
# エディタをVimに設定 | |||
gh config set editor vim | |||
# GitプロトコルをSSHに変更 | |||
gh config set git_protocol ssh | |||
# 設定値を取得 | |||
gh config get editor | |||
# 全設定を表示 | |||
gh config list | |||
# テレメトリを無効化 | |||
gh config set telemetry disabled | |||
<br> | |||
==== エイリアス ==== | |||
よく使用するコマンドの短縮形を <code>gh alias</code> コマンドで登録できる。<br> | |||
<br> | |||
下表に、主なサブコマンドを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh alias 主なサブコマンド | |||
! サブコマンド !! 説明 | |||
|- | |||
| <code>gh alias set</code> || エイリアスを登録する。 | |||
|- | |||
| <code>gh alias list</code> || エイリアスの一覧を表示する。 | |||
|- | |||
| <code>gh alias delete</code> || エイリアスを削除する。 | |||
|- | |||
| <code>gh alias import</code> || エイリアスをインポートする。 | |||
|} | |||
</center> | |||
<br> | |||
エイリアスでは、位置プレースホルダ (<code>$1</code>、<code>$2</code>) を使用して引数を渡すことができる。<br> | |||
また、先頭に <code>!</code> を付加することにより、シェルコマンドをエイリアスとして登録できる。<br> | |||
<br> | |||
エイリアスの登録例を以下に示す。<br> | |||
<br> | |||
# pr viewの短縮形 | |||
gh alias set pv 'pr view' | |||
# gh pv -w 123 = gh pr view -w 123 | |||
# バグIssueの一覧 | |||
gh alias set bugs 'issue list --label=bugs' | |||
# 自分のアサインIssue一覧 | |||
gh alias set homework 'issue list --assignee @me' | |||
# 引数を使用したエイリアス | |||
gh alias set epicsBy 'issue list --author="$1" --label="epic"' | |||
# gh epicsBy vilmibm | |||
# シェルコマンドのエイリアス | |||
gh alias set --shell igrep 'gh issue list --label="$1" | grep "$2"' | |||
# エイリアス一覧 | |||
gh alias list | |||
# エイリアス削除 | |||
gh alias delete bugs | |||
<br> | |||
==== 拡張機能 ==== | |||
サードパーティ製の拡張機能を <code>gh extension</code> (省略形: <code>gh ext</code>) コマンドでインストールできる。<br> | |||
<br> | |||
下表に、主なサブコマンドを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh extension 主なサブコマンド | |||
! サブコマンド !! 説明 | |||
|- | |||
| <code>gh extension install</code> || 拡張機能をインストールする。 | |||
|- | |||
| <code>gh extension list</code> || インストール済みの拡張機能を表示する。 | |||
|- | |||
| <code>gh extension search</code> || 拡張機能を検索する。 | |||
|- | |||
| <code>gh extension upgrade</code> || 拡張機能をアップグレードする。 | |||
|- | |||
| <code>gh extension remove</code> || 拡張機能を削除する。 | |||
|- | |||
| <code>gh extension create</code> || 新規拡張機能を作成する。 | |||
|} | |||
</center> | |||
<br> | |||
<u>拡張機能のリポジトリ名は <code>gh-</code> で始まる必要がある。</u><br> | |||
v2.90.0以降では、公開リポジトリの拡張機能インストールが認証なしで可能である。<br> | |||
<br> | |||
拡張機能の操作例を以下に示す。<br> | |||
<br> | |||
# 拡張機能をインストール | |||
gh extension install dlvhdr/gh-dash | |||
# インストール済み一覧 | |||
gh extension list | |||
# 拡張機能を検索 | |||
gh extension search | |||
# 全ての拡張機能をアップグレード | |||
gh extension upgrade --all | |||
# 拡張機能を削除 | |||
gh extension remove gh-dash | |||
# 新規拡張機能を作成 | |||
gh extension create my-extension | |||
<br> | |||
コミュニティ製の拡張機能は以下のページから検索できる。<br> | |||
* [https://github.com/topics/gh-extension gh-extensionトピック - GitHub] | |||
<br><br> | |||
== GitHub Copilot統合 == | |||
==== gh copilot ==== | |||
<code>gh copilot</code> コマンドを使用すると、GitHub CopilotのAIアシスタント機能をターミナルから利用できる。<br> | |||
<br> | |||
<code>gh copilot</code> の実行例を以下に示す。<br> | |||
<br> | |||
# インタラクティブモードで起動 | |||
gh copilot | |||
# プロンプトを指定して実行 | |||
gh copilot -p "Summarize this week's commits" --allow-tool 'shell(git)' | |||
# 設定を削除 | |||
gh copilot --remove | |||
<br> | |||
詳細を知りたい場合は、以下に示すURLを参照すること。<br> | |||
* [https://gh.io/copilot-cli GitHub Copilot in the CLI] | |||
<br> | |||
==== gh skill (v2.90.0以降) ==== | |||
<code>gh skill</code> コマンドは、AIコーディングエージェント用のスキルを管理する機能である。<br> | |||
<br> | |||
下表に、主なサブコマンドを示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ gh skill 主なサブコマンド | |||
! サブコマンド !! 説明 | |||
|- | |||
| <code>gh skill install</code> || スキルをインストールする。 | |||
|- | |||
| <code>gh skill list</code> || インストール済みのスキルを表示する。 | |||
|- | |||
| <code>gh skill search</code> || スキルを検索する。 | |||
|- | |||
| <code>gh skill update</code> || スキルを更新する。 | |||
|- | |||
| <code>gh skill publish</code> || スキルを公開する。 | |||
|- | |||
| <code>gh skill preview</code> || スキルのプレビューを表示する。 | |||
|} | |||
</center> | |||
<br> | |||
対応するAIエージェントは以下の通りである。<br> | |||
* GitHub Copilot | |||
* Claude Code | |||
* Cursor | |||
* Codex | |||
* Gemini CLI | |||
* Antigravity | |||
<br> | |||
スキル操作の実行例を以下に示す。<br> | |||
<br> | |||
# スキルをインストール | |||
gh skill install cli/cli gh --scope user | |||
# インストール済みスキル一覧 | |||
gh skill list | |||
# スキルを検索 | |||
gh skill search | |||
<br><br> | |||
== トラブルシューティング == | |||
==== 認証エラー ==== | |||
認証エラーが発生した場合は、認証状態を確認して再認証を行う。<br> | |||
<br> | |||
# 認証状態を確認 | |||
gh auth status | |||
# 再認証 | |||
gh auth login | |||
# スコープを追加してトークンを更新 | |||
gh auth refresh -s project | |||
# ホストと複数スコープを指定して更新 | |||
gh auth refresh -h github.com -s repo,read:org,workflow,gist | |||
<br> | |||
CIや自動化環境では、環境変数でトークンを指定できる。<br> | |||
<br> | |||
<syntaxhighlight lang="sh"> | |||
# トークンを環境変数に設定 | |||
export GH_TOKEN=ghp_xxxxxxxx | |||
# Enterprise環境の場合 | |||
export GH_ENTERPRISE_TOKEN=ghp_xxxxxxxx | |||
</syntaxhighlight> | |||
<br> | |||
<u>環境変数 <code>GH_TOKEN</code> は、環境変数 <code>GITHUB_TOKEN</code> より優先される。</u><br> | |||
<br> | |||
==== HTTPS / SSHの問題 ==== | |||
Gitプロトコルの設定やSSH鍵の登録に関する問題の対処方法を示す。<br> | |||
<br> | |||
# 現在のGitプロトコルを確認 | |||
gh config get git_protocol | |||
# HTTPSに変更 | |||
gh config set git_protocol https | |||
# Gitの認証設定を更新 | |||
gh auth setup-git | |||
# SSH鍵を登録 | |||
gh ssh-key add ~/.ssh/id_ed25519.pub --title "My Linux Machine" | |||
# 登録済みSSH鍵の一覧 | |||
gh ssh-key list | |||
<br> | |||
==== Enterprise接続 ==== | |||
GitHub Enterprise Serverに接続する場合は、ホスト名を指定して認証を行う。<br> | |||
<br> | |||
# ホスト名を指定して認証 | |||
gh auth login --hostname github.example.com | |||
# デフォルトホストを環境変数に設定 | |||
export GH_HOST=github.example.com | |||
# Enterpriseリポジトリを指定してコマンドを実行 | |||
gh pr list --repo github.example.com/my-org/my-repo | |||
<br> | |||
==== APIレートリミット ==== | |||
APIレートリミットに達した場合は、制限状況を確認して使用量を調整する。<br> | |||
<br> | |||
# レートリミットの状況を確認 | |||
gh api rate_limit | |||
<br> | |||
レートリミットの制限値は以下の通りである。<br> | |||
* 認証済み | |||
*: 5000リクエスト/時間 | |||
* 未認証 | |||
*: 60リクエスト/時間 | |||
<br> | |||
API呼び出しを減らすために、<code>--limit</code> フラグを使用して取得件数を制限することが推奨される。<br> | |||
<br><br> | <br><br> | ||
| 243行目: | 1,116行目: | ||
{{#seo: | {{#seo: | ||
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki | |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki | ||
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板 | |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,GitHub CLI,gh,PR,Issue,Actions,Release,Gist,Copilot | ||
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux | |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux | ||
|image=/resources/assets/MochiuLogo_Single_Blue.png | |image=/resources/assets/MochiuLogo_Single_Blue.png | ||
| 249行目: | 1,122行目: | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ: | [[カテゴリ:RHEL]][[カテゴリ:SUSE]] | ||
2026年7月3日 (金) 11:06時点における最新版
概要
GitHub CLI (gh) は、GitHubの機能をコマンドラインから直接操作できる公式ツールである。
プルリクエストやIssueの管理、リポジトリ操作等、GitHubの主要機能をターミナルから実行できる。
Go言語で記述されており、Windows、MacOS、Linuxの主要プラットフォームで動作する。
主要な仕様を以下に示す。
- 開発言語
- Go
- ライセンス
- MIT
- サポート対象OS
- Windows、MacOS、Linux
- サポート対象GitHub
- GitHub.com、GitHub Enterprise Cloud、GitHub Enterprise Server 2.20以上
主要機能は以下の通りである。
- PR / Issue管理
- プルリクエストおよびIssueの作成、表示、レビュー操作をコマンドラインから実行できる
- リポジトリ操作
- リポジトリのクローン、フォーク、閲覧等の操作を実行できる
- GitHub Enterprise対応
- GitHub Enterprise CloudおよびGitHub Enterprise Server 2.20以上に対応している
- Copilotコードレビュー統合
- GitHub Copilotによるコードレビュー機能と統合されている
Windows
Windows向けのインストール方法として、WinGet、MSIインストーラ、Chocolatey、Scoopの4種類がある。
公式が推奨する方法はWinGetを使用したインストールである。
WinGet
WinGetはMicrosoftが提供する公式パッケージマネージャーであり、最も推奨されるインストール方法である。
winget install --id GitHub.cli
# アップグレード
winget upgrade --id GitHub.cli
インストール後は、Windows Terminalで新しいウィンドウを開く必要がある。
タブの新規作成ではなく、新しいウィンドウを開くことにより、環境変数が正しく反映される。
MSIインストーラ
GitHubのリリースページから、MSIインストーラをダウンロードしてインストールすることができる。
対応アーキテクチャは以下の通りである。
- x86 (32ビット)
- amd64 (64ビット)
- arm64 (ARM 64ビット)
インストーラは以下に示すURLから入手できる。
Chocolatey
Chocolateyはコミュニティが管理するパッケージマネージャーである。
GitHub CLIチームが保守するものではないことに注意が必要である。
# インストール
choco install gh
# アップグレード
choco upgrade gh
Scoop
Scoopはコミュニティが管理するパッケージマネージャーである。
GitHub CLIチームが保守するものではないことに注意が必要である。
# インストール
scoop install gh
# アップグレード
scoop update gh
RHEL / SUSE
Linux向けのインストール方法では、リポジトリを追加してインストールする方法、バイナリを直接ダウンロードする方法、ソースコードからビルドする方法の3種類がある。
リポジトリを追加してインストール
公式リポジトリを追加してパッケージマネージャーからインストールする方法が最も推奨される。
RHEL
# インストール sudo dnf install dnf5-plugins sudo dnf config-manager addrepo --from-repofile=https://cli.github.com/packages/rpm/gh-cli.repo sudo dnf install gh --repo gh-cli # アップグレード sudo dnf upgrade gh
SUSE
# インストール sudo zypper addrepo https://cli.github.com/packages/rpm/gh-cli.repo sudo zypper ref sudo zypper install gh # アップグレード sudo zypper update gh
バイナリをダウンロードしてインストール
パッケージマネージャーを使用せずに、バイナリを直接ダウンロードしてインストールすることができる。
対応アーキテクチャは以下の通りである。
- x86 (x86)
- gh_*_linux_386.tar.gz
- amd64 (x64)
- gh_*_linux_amd64.tar.gz
- arm64 (ARM 64ビット)
- gh_*_linux_arm64.tar.gz
- armv6 (ARM 32ビット)
- gh_*_linux_armv6.tar.gz
- GitHub CLIのGitHubにアクセスして、バイナリをダウンロードする。
- ダウンロードしたファイルを解凍する。
tar xf gh_x.x.x_linux_amd64.tar.gz
- 必要ならば、任意のディレクトリにコピーする。
cp -r gh_x.x.x_linux_amd64/* <任意のインストールディレクトリ>
- 必要ならば、~/.profileファイル等に環境変数を設定する。
export PATH="/<GitHub CLIのインストールディレクトリ>/bin:$PATH" export MANPATH="/<GitHub CLIのインストールディレクトリ>/share/man:$MANPATH"
その他のバージョンやアーキテクチャのバイナリは、以下のページから入手できる。
ソースコードからビルドしてインストール
ソースコードからビルドしてインストールすることができる。
前提条件として、Go 1.25以上のインストールが必要である。
- リポジトリをクローンする。
git clone https://github.com/cli/cli.git gh-cli cd gh-cli
- GitHub CLIをビルドおよびインストールする。
make install prefix=/path/to/gh
- 必要ならば、~/.profileファイル等に環境変数を設定する。
export PATH="/<GitHub CLIのインストールディレクトリ>/bin:$PATH" export MANPATH="/<GitHub CLIのインストールディレクトリ>/share/man:$MANPATH"
MacOS
MacOS向けのインストール方法として、Homebrew および MacPortsを使用する方法がある。
公式が推奨する方法はHomebrewを使用したインストールである。
Homebrew
Homebrewを使用したインストールが最も推奨される方法である。
# インストール brew install gh # アップグレード brew upgrade gh
MacPorts
MacPortsはコミュニティが管理するパッケージマネージャーである。
GitHub CLIチームが保守するものではないことに注意が必要である。
# インストール sudo port install gh # アップグレード sudo port selfupdate && sudo port upgrade gh
インストールの確認
インストール完了後に、バージョンの確認と認証の設定を行う。
バージョンの確認
インストールが正常に完了していることを確認する。
gh version
正常にインストールされている場合、以下のような出力が表示される。
gh version x.x.x (yyyy-MM-dd)
認証の設定
GitHub CLIを使用するには、GitHubアカウントでの認証が必要である。
まず、以下に示すコマンドを実行して、インタラクティブなプロンプトに従って認証を設定する。
gh auth login
プロンプトでは以下の項目を選択する。
- 接続先の選択
- GitHub.com または GitHub Enterprise Server
- プロトコルの選択
- HTTPS または SSH
- 認証方法の選択
- ブラウザ認証 または トークン入力
認証が完了した後、認証状態を確認する。
gh auth status
基本的な使用方法
GitHub CLIの基本的なコマンド構造は、gh <command> <subcommand> [flags] の形式である。
command には、repo、pr、issue 等の操作対象が指定され、
subcommand には、create、list、view 等のアクションが指定される。
各コマンドの詳細は、gh <command> --help で確認できる。
リポジトリ操作
リポジトリのクローン、作成、フォーク等の操作は gh repo コマンドで実行する。
下表に、主なサブコマンドを示す。
| サブコマンド | 説明 |
|---|---|
gh repo clone |
リポジトリをクローンする。 |
gh repo create |
新規リポジトリを作成する。 |
gh repo fork |
リポジトリをフォークする。 |
gh repo view |
リポジトリの情報を表示する。 |
gh repo sync |
フォーク元リポジトリと同期する。 |
gh repo delete |
リポジトリを削除する。 |
gh repo list |
リポジトリの一覧を表示する。 |
下表に、gh repo create の主なオプションを示す。
| オプション | 説明 |
|---|---|
--public / --private / --internal |
リポジトリの可視性 |
-c / --clone |
作成後にクローンする。 |
-d / --description |
リポジトリの説明 |
-g / --gitignore |
.gitignoreテンプレートを指定する。 |
-l / --license |
ライセンステンプレートを指定する。 |
-s / --source |
既存のローカルディレクトリからリポジトリを作成する。 |
--push |
初期コミットをプッシュする。 |
-p / --template |
テンプレートリポジトリを指定する。 |
--add-readme |
READMEファイルを追加する。 |
下表に、リポジトリ操作の実行例を示す。
# 公開リポジトリを作成してクローン gh repo create my-project --public --clone # 組織のリポジトリを作成 gh repo create my-org/my-project --public # 既存のディレクトリからプライベートリポジトリを作成 gh repo create my-project --private --source=. --remote=upstream # リポジトリをクローン gh repo clone cli/cli # リポジトリをフォークしてクローン gh repo fork cli/cli --clone # フォークを上流と同期 gh repo sync owner/forked-repo # リポジトリの情報をブラウザで表示 gh repo view cli/cli --web # リポジトリを削除 gh repo delete my-org/my-repo --yes
プルリクエスト管理
プルリクエストの作成、一覧表示、レビュー、マージ等の操作は gh pr コマンドで実行する。
下表に、主なサブコマンドを示す。
| サブコマンド | 説明 |
|---|---|
gh pr create |
プルリクエストを作成する。 |
gh pr list |
プルリクエストの一覧を表示する。 |
gh pr view |
プルリクエストの詳細を表示する。 |
gh pr checkout |
プルリクエストのブランチをチェックアウトする。 |
gh pr review |
プルリクエストをレビューする。 |
gh pr merge |
プルリクエストをマージする。 |
gh pr diff |
プルリクエストの差分を表示する。 |
gh pr close |
プルリクエストをクローズする。 |
gh pr checks |
プルリクエストのCIチェック状態を表示する。 |
下表に、gh pr create の主なオプションを示す。
| オプション | 説明 |
|---|---|
-t / --title |
プルリクエストのタイトル |
-b / --body |
プルリクエストの本文 |
-F / --body-file |
本文をファイルから読み込む。 |
-B / --base |
マージ先のベースブランチ |
-H / --head |
マージ元のヘッドブランチ |
-f / --fill |
コミットメッセージからタイトルと本文を自動入力する。 |
-d / --draft |
ドラフトとして作成する。 |
-a / --assignee |
アサイン先 (@me で自分を指定)
|
-r / --reviewer |
レビュアーを指定する。 |
-l / --label |
ラベルを付与する。 |
-w / --web |
ブラウザで作成画面を開く。 |
下表に、gh pr merge の主なオプションを示す。
| オプション | 説明 |
|---|---|
-m / --merge |
マージコミットを作成する。 |
-s / --squash |
スカッシュマージする。 |
-r / --rebase |
リベースマージする。 |
-d / --delete-branch |
マージ後にブランチを削除する。 |
--auto |
CIチェック通過後に自動マージする。 |
--admin |
管理者権限でマージする。 |
プルリクエスト操作の実行例を以下に示す。
# タイトルと本文を指定して作成 gh pr create --title "The bug is fixed" --body "Everything works again" # コミットメッセージから自動入力 gh pr create --fill # レビュアーを指定して作成 gh pr create --reviewer monalisa,hubot --reviewer myorg/team-name # ドラフトとして作成 gh pr create --draft --fill # ベースブランチとヘッドブランチを指定 gh pr create --base develop --head feature-branch # ブラウザで作成 gh pr create --web # 自分がアサインされたPR一覧 gh pr list --assignee @me # ラベルでフィルタ gh pr list --label "needs review" # PRの詳細を表示 gh pr view 123 # PRのブランチをチェックアウト gh pr checkout 353 # 承認レビュー gh pr review 123 --approve --body "LGTM" # 変更要求レビュー gh pr review 123 --request-changes --body "Please fix the tests" # スカッシュマージしてブランチ削除 gh pr merge 123 --squash --delete-branch # CI通過後に自動マージ gh pr merge 123 --auto --squash # 差分を表示 gh pr diff 123 # クローズ gh pr close 123 --comment "Closing in favor of #456"
ブランチ作成からマージまでの実践的なワークフロー例を以下に示す。
# ブランチを作成してコミット git checkout -b feature/new-feature git add . && git commit -m "Add new feature" # プッシュしてPRを作成 git push -u origin feature/new-feature gh pr create --fill # CIチェックの完了を待機 gh pr checks --wait # レビューして承認 gh pr review --approve --body "Looks good" # スカッシュマージしてブランチ削除 gh pr merge --squash --delete-branch # ローカルを最新化 git checkout main && git pull
Issue管理
Issueの作成、一覧表示、クローズ等の操作は gh issue コマンドで実行する。
下表に、主なサブコマンドを示す。
| サブコマンド | 説明 |
|---|---|
gh issue create |
Issueを作成する。 |
gh issue list |
Issueの一覧を表示する。 |
gh issue view |
Issueの詳細を表示する。 |
gh issue close |
Issueをクローズする。 |
gh issue reopen |
Issueを再オープンする。 |
gh issue comment |
Issueにコメントを追加する。 |
gh issue edit |
Issueを編集する。 |
下表に、gh issue create の主なオプションを示す。
| オプション | 説明 |
|---|---|
-t / --title |
Issueのタイトル |
-b / --body |
Issueの本文 |
-F / --body-file |
本文をファイルから読み込む。 |
-a / --assignee |
アサイン先 (@me で自分を指定)
|
-l / --label |
ラベルを付与する。 |
-m / --milestone |
マイルストーンを指定する。 |
-p / --project |
プロジェクトを指定する。 |
-w / --web |
ブラウザで作成画面を開く。 |
Issue操作の実行例を以下に示す。
# タイトルと本文を指定して作成 gh issue create --title "Bug: login fails" --body "Steps to reproduce..." # ラベルとアサインを指定 gh issue create --label bug --assignee @me # 本文をファイルから読み込み gh issue create --body-file issue-template.md # 自分がアサインされたIssue一覧 gh issue list --assignee @me # ラベルと状態でフィルタ gh issue list --label bug --state all # Issueの詳細を表示 gh issue view 123 # クローズ gh issue close 123 --comment "Fixed in #456" # 再オープン gh issue reopen 123 # コメント追加 gh issue comment 123 --body "I can reproduce this" # 編集 gh issue edit 123 --title "Updated title" --body "Updated body"
v2.94.0以降では、Issues 2.0機能が追加された。
これは、Issue種別 (issue types)、サブIssue (sub-issues)、ブロック関係 (blocked-by / blocking) の設定が可能である。
# Issue種別を指定して作成 gh issue create --type Bug # 親Issueを指定してサブIssueを作成 gh issue create --parent 100 # ブロック元Issueを指定して作成 gh issue create --blocked-by 200
GitHub Actions (ワークフロー)
GitHub Actionsのワークフロー実行や管理は gh workflow および gh run コマンドで実行する。
下表に、gh workflow の主なサブコマンドを示す。
| サブコマンド | 説明 |
|---|---|
gh workflow list |
ワークフローの一覧を表示する。 |
gh workflow view |
ワークフローの詳細を表示する。 |
gh workflow run |
ワークフローを実行する。 |
gh workflow enable |
ワークフローを有効化する。 |
gh workflow disable |
ワークフローを無効化する。 |
下表に、gh run の主なサブコマンドを示す。
| サブコマンド | 説明 |
|---|---|
gh run list |
実行一覧を表示する。 |
gh run view |
実行の詳細を表示する。 |
gh run watch |
実行の完了を監視する。 |
gh run rerun |
実行を再実行する。 |
gh run cancel |
実行をキャンセルする。 |
gh run download |
実行のアーティファクトをダウンロードする。 |
ワークフロー操作の実行例を以下に示す。
# ワークフロー一覧 gh workflow list # ワークフローを実行 gh workflow run deploy.yml # ブランチを指定して実行 gh workflow run deploy.yml --ref develop # 入力パラメータを指定して実行 gh workflow run deploy.yml -f environment=production # ワークフローの詳細を表示 gh workflow view deploy.yml # 直近5件の実行一覧 gh run list --limit 5 # 実行の詳細を表示 gh run view 123456 # ログを表示 gh run view 123456 --log # 実行の完了を監視 gh run watch 123456 # 失敗したジョブを再実行 gh run rerun 123456 --failed # アーティファクトをダウンロード gh run download 123456
リリース管理
リリースの作成、ダウンロード、アセットのアップロード等の操作は gh release コマンドで実行する。
下表に、主なサブコマンドを示す。
| サブコマンド | 説明 |
|---|---|
gh release create |
リリースを作成する。 |
gh release list |
リリースの一覧を表示する。 |
gh release view |
リリースの詳細を表示する。 |
gh release download |
リリースアセットをダウンロードする。 |
gh release upload |
リリースアセットをアップロードする。 |
gh release delete |
リリースを削除する。 |
下表に、gh release create の主なオプションを示す。
| オプション | 説明 |
|---|---|
-t / --title |
リリースのタイトル |
-n / --notes |
リリースノート |
-F / --notes-file |
リリースノートをファイルから読み込む。 |
--generate-notes |
リリースノートを自動生成する。 |
-d / --draft |
ドラフトとして作成する。 |
-p / --prerelease |
プレリリースとして作成する。 |
--target |
ターゲットコミットを指定する。 |
--verify-tag |
タグの存在を確認する。 |
リリース操作の実行例を以下に示す。
# リリースノートを指定して作成 gh release create v1.2.3 --notes "bugfix release" # リリースノートを自動生成 gh release create v1.2.3 --generate-notes # リリースノートをファイルから読み込み gh release create v1.2.3 -F release-notes.md # アセットを添付して作成 gh release create v1.2.3 ./dist/*.tgz # ドラフトとして作成 gh release create v1.2.3 --draft --notes "Work in progress" # リリース一覧 gh release list --limit 5 # リリースの詳細を表示 gh release view v1.2.3 # アセットをダウンロード gh release download v1.2.3 # ダウンロードディレクトリを指定 gh release download v1.2.3 -D ./downloads # パターンでフィルタしてダウンロード gh release download v1.2.3 -p '*.tgz' # アセットをアップロード gh release upload v1.2.3 ./build/*.zip
v2.96.0以降では、公開リポジトリのリリースアセットダウンロードが認証なしで可能である。
Gist管理
Gistの作成、一覧表示、クローン等の操作は gh gist コマンドで実行する。
下表に、主なサブコマンドを示す。
| サブコマンド | 説明 |
|---|---|
gh gist create |
Gistを作成する。 |
gh gist list |
Gistの一覧を表示する。 |
gh gist view |
Gistの内容を表示する。 |
gh gist clone |
Gistをクローンする。 |
gh gist edit |
Gistを編集する。 |
gh gist delete |
Gistを削除する。 |
下表に、gh gist create の主なオプションを示す。
| オプション | 説明 |
|---|---|
-d / --desc |
Gistの説明 |
-f / --filename |
ファイル名を指定する。 |
-p / --public |
公開Gistとして作成する。 デフォルトは、secret |
-w / --web |
ブラウザで作成画面を開く。 |
Gist操作の実行例を以下に示す。
# 公開Gistを作成
gh gist create --public hello.py
# 説明を付けて作成
gh gist create hello.py -d "my Hello-World program"
# 複数ファイルを指定して作成
gh gist create hello.py world.py cool.txt
# 標準入力から作成
echo "print('hello')" | gh gist create -
# Gist一覧
gh gist list
# Gistの内容を表示
gh gist view <gist-id>
# Gistをクローン
gh gist clone <gist-id>
設定とカスタマイズ
設定ファイル
GitHub CLIの設定は gh config コマンドで管理する。
下表に、主なサブコマンドを示す。
| サブコマンド | 説明 |
|---|---|
gh config get |
設定値を取得する。 |
gh config set |
設定値を変更する。 |
gh config list |
全ての設定値を表示する。 |
gh config clear-cache |
キャッシュをクリアする。 |
設定ファイルの配置場所は以下の通りである。
| プラットフォーム | 配置場所 |
|---|---|
| Linux / MacOS | $XDG_CONFIG_HOME/gh または $HOME/.config/gh |
| Windows | %AppData%/GitHub CLI |
| 環境変数で指定 | 環境変数 GH_CONFIG_DIR で任意のディレクトリを指定できる。
|
下表に、主な設定項目を示す。
| 設定項目 | 説明 |
|---|---|
git_protocol |
Gitプロトコルhttps または ssh、デフォルト: https
|
editor |
テキストエディタ |
prompt |
インタラクティブプロンプトenabled または disabled
|
pager |
ページャープログラム |
browser |
ブラウザプログラム |
telemetry |
テレメトリenabled または disabled
|
設定操作の実行例を以下に示す。
# エディタをVimに設定 gh config set editor vim # GitプロトコルをSSHに変更 gh config set git_protocol ssh # 設定値を取得 gh config get editor # 全設定を表示 gh config list # テレメトリを無効化 gh config set telemetry disabled
エイリアス
よく使用するコマンドの短縮形を gh alias コマンドで登録できる。
下表に、主なサブコマンドを示す。
| サブコマンド | 説明 |
|---|---|
gh alias set |
エイリアスを登録する。 |
gh alias list |
エイリアスの一覧を表示する。 |
gh alias delete |
エイリアスを削除する。 |
gh alias import |
エイリアスをインポートする。 |
エイリアスでは、位置プレースホルダ ($1、$2) を使用して引数を渡すことができる。
また、先頭に ! を付加することにより、シェルコマンドをエイリアスとして登録できる。
エイリアスの登録例を以下に示す。
# pr viewの短縮形 gh alias set pv 'pr view' # gh pv -w 123 = gh pr view -w 123 # バグIssueの一覧 gh alias set bugs 'issue list --label=bugs' # 自分のアサインIssue一覧 gh alias set homework 'issue list --assignee @me' # 引数を使用したエイリアス gh alias set epicsBy 'issue list --author="$1" --label="epic"' # gh epicsBy vilmibm # シェルコマンドのエイリアス gh alias set --shell igrep 'gh issue list --label="$1" | grep "$2"' # エイリアス一覧 gh alias list # エイリアス削除 gh alias delete bugs
拡張機能
サードパーティ製の拡張機能を gh extension (省略形: gh ext) コマンドでインストールできる。
下表に、主なサブコマンドを示す。
| サブコマンド | 説明 |
|---|---|
gh extension install |
拡張機能をインストールする。 |
gh extension list |
インストール済みの拡張機能を表示する。 |
gh extension search |
拡張機能を検索する。 |
gh extension upgrade |
拡張機能をアップグレードする。 |
gh extension remove |
拡張機能を削除する。 |
gh extension create |
新規拡張機能を作成する。 |
拡張機能のリポジトリ名は gh- で始まる必要がある。
v2.90.0以降では、公開リポジトリの拡張機能インストールが認証なしで可能である。
拡張機能の操作例を以下に示す。
# 拡張機能をインストール gh extension install dlvhdr/gh-dash # インストール済み一覧 gh extension list # 拡張機能を検索 gh extension search # 全ての拡張機能をアップグレード gh extension upgrade --all # 拡張機能を削除 gh extension remove gh-dash # 新規拡張機能を作成 gh extension create my-extension
コミュニティ製の拡張機能は以下のページから検索できる。
GitHub Copilot統合
gh copilot
gh copilot コマンドを使用すると、GitHub CopilotのAIアシスタント機能をターミナルから利用できる。
gh copilot の実行例を以下に示す。
# インタラクティブモードで起動 gh copilot # プロンプトを指定して実行 gh copilot -p "Summarize this week's commits" --allow-tool 'shell(git)' # 設定を削除 gh copilot --remove
詳細を知りたい場合は、以下に示すURLを参照すること。
gh skill (v2.90.0以降)
gh skill コマンドは、AIコーディングエージェント用のスキルを管理する機能である。
下表に、主なサブコマンドを示す。
| サブコマンド | 説明 |
|---|---|
gh skill install |
スキルをインストールする。 |
gh skill list |
インストール済みのスキルを表示する。 |
gh skill search |
スキルを検索する。 |
gh skill update |
スキルを更新する。 |
gh skill publish |
スキルを公開する。 |
gh skill preview |
スキルのプレビューを表示する。 |
対応するAIエージェントは以下の通りである。
- GitHub Copilot
- Claude Code
- Cursor
- Codex
- Gemini CLI
- Antigravity
スキル操作の実行例を以下に示す。
# スキルをインストール gh skill install cli/cli gh --scope user # インストール済みスキル一覧 gh skill list # スキルを検索 gh skill search
トラブルシューティング
認証エラー
認証エラーが発生した場合は、認証状態を確認して再認証を行う。
# 認証状態を確認 gh auth status # 再認証 gh auth login # スコープを追加してトークンを更新 gh auth refresh -s project # ホストと複数スコープを指定して更新 gh auth refresh -h github.com -s repo,read:org,workflow,gist
CIや自動化環境では、環境変数でトークンを指定できる。
# トークンを環境変数に設定
export GH_TOKEN=ghp_xxxxxxxx
# Enterprise環境の場合
export GH_ENTERPRISE_TOKEN=ghp_xxxxxxxx
環境変数 GH_TOKEN は、環境変数 GITHUB_TOKEN より優先される。
HTTPS / SSHの問題
Gitプロトコルの設定やSSH鍵の登録に関する問題の対処方法を示す。
# 現在のGitプロトコルを確認 gh config get git_protocol # HTTPSに変更 gh config set git_protocol https # Gitの認証設定を更新 gh auth setup-git # SSH鍵を登録 gh ssh-key add ~/.ssh/id_ed25519.pub --title "My Linux Machine" # 登録済みSSH鍵の一覧 gh ssh-key list
Enterprise接続
GitHub Enterprise Serverに接続する場合は、ホスト名を指定して認証を行う。
# ホスト名を指定して認証 gh auth login --hostname github.example.com # デフォルトホストを環境変数に設定 export GH_HOST=github.example.com # Enterpriseリポジトリを指定してコマンドを実行 gh pr list --repo github.example.com/my-org/my-repo
APIレートリミット
APIレートリミットに達した場合は、制限状況を確認して使用量を調整する。
# レートリミットの状況を確認 gh api rate_limit
レートリミットの制限値は以下の通りである。
- 認証済み
- 5000リクエスト/時間
- 未認証
- 60リクエスト/時間
API呼び出しを減らすために、--limit フラグを使用して取得件数を制限することが推奨される。
アンインストール
Windows
使用したインストール方法に応じて、以下の手順でアンインストールする。
- WinGetの場合
winget uninstall --id GitHub.cli
- MSIインストーラの場合
- [設定] - [アプリ] - [アプリと機能]からGitHub CLIを選択してアンインストールする。
- Chocolateyの場合
choco uninstall gh
- Scoopの場合
scoop uninstall gh
RHEL / SUSE
# RHEL sudo dnf remove gh # SUSE sudo zypper remove gh
MacOS
- Homebrewの場合
brew uninstall gh
- MacPortsの場合
sudo port uninstall gh
参考リンク