GitHub CLIコマンド一覧【ghコマンド】
GitHub CLIとは
GitHub CLIとは、コマンドラインでGitHub操作を行うことができるCLIツールです。
対話形式で操作することになるので、簡単で分かりやすいです。
公式で公開されているコマンド一覧を紹介します。
導入方法
Homebrewを使用してインストールします。
$ brew install gh
インストールが完了したら認証作業を行います。
$ gh auth login
下記のメッセージが出れば認証完了です。
✓ Authentication complete.
- gh config set -h github.com git_protocol https
✓ Configured git protocol
✓ Logged in as <username>
OSごとの詳細なインストール方法は、下記公式ページをご覧ください。
ghコマンド一覧
公式で公開しているGitHub CLIで使用できるコマンドの一覧です。
gh alias
ghコマンドのショートカットを作成したり、複数のコマンドを構成したりできます。
# 設定されているエイリアスの削除
$ gh alias delete <alias>
# YAMLファイルなどからのインポート
$ gh alias import [<filename> | -] [flags]
# 設定されているエイリアスの一覧表示
$ gh alias list
# エイリアスの設定
$ gh alias set <alias> <expansion> [flags]
gh api
GitHub REST APIや GraphQL APIに対してリクエストを送り、得られたデータを標準出力やファイルに出力して、さまざまな目的やカスタムスクリプトで使用できます。
# GigHub APIを利用
$ gh api <endpoint> [flags]
gh auth
GitHubとGitHub CLIの連携などができます。
# GitHubログイン認証
$ gh auth login [flags]
# GitHubログアウト認証
$ gh auth logout [flags]
# 認証情報の拡張または修正
$ gh auth refresh [flags]
# リモートリポジトリへのアクセスを設定
$ gh auth setup-git [flags]
# 認証状態の情報を表示
$ gh auth status [flags]
# トークンを取得
$ gh auth token [flags]
gh browse
# WebブラウザでGitHubページを表示
$ gh browse [<number> | <path> | <commit-SHA>] [flags]
gh cache
Github Actionsで保存されたキャッシュを操作します。
# キャッシュの削除
$ gh cache delete [<cache-id>| <cache-key> | --all] [flags]
# キャッシュの一覧表示
$ gh cache list [flags]
gh codespace
codespaceに接続して管理ができます。
vscodeやJupyterLabでも表示することができます。
# vscodeでcodespaceを表示
$ gh codespace code [flags]
# codespace間でのファイルのコピー
$ gh codespace cp [-e] [-r] [-- [<scp flags>...]] <sources>... <dest>
# codespaceの作成
$ gh codespace create [flags]
# codespaceの削除
$ gh codespace delete [flags]
# codespaceの編集
$ gh codespace edit [flags]
# JupyterLabでcodespaceを表示
$ gh codespace jupyter [flags]
# codespaceの一覧表示
$ gh codespace list [flags]
# codespaceのログにアクセス
$ gh codespace logs [flags]
# ポート転送の一覧表示
$ gh codespace ports [flags]
# ポートの転送
$ gh codespace ports forward <remote-port>:<local-port>...
# ポートの可視性を取得または設定
$ gh codespace ports visibility <port>:{public|private|org}...
# コンテナーのリビルド
$ gh codespace rebuild [flags]
# codespace に SSH 接続
$ gh codespace ssh [<flags>...] [-- <ssh-flags>...] [<command>]
# 実行中のコードスペースを停止
$ gh codespace stop [flags]
# コードスペースの詳細を表示
$ gh codespace view [flags]
gh completion
# GitHub CLIコマンドのシェル完了スクリプトを生成
$ gh completion -s <shell>
gh config
GitHub CLIの構成設定を表示または変更ができます。
# キーに基づく設定値を表示
$ gh config get <key> [flags]
# 全ての設定値を表示
$ gh config list [flags]
# キーに基づく設定値を更新
$ gh config set <key> <value> [flags]
gh extension
GitHub CLI拡張機能の管理ができます。
こちらにさまざまな拡張機能があり、自分で作成することもできます。
# 拡張機能のリストをブラウザで表示
$ gh extension browse [flags]
# 拡張機能を作成
$ gh extension create [<name>] [flags]
# 拡張機能を実行
$ gh extension exec <name>
# 拡張機能をインストール
$ gh extension install <repository> [flags]
# 拡張機能の一覧表示
$ gh extension list
# 拡張機能の削除
$ gh extension remove <name>
# 拡張機能の検索
$ gh extension search [<query>] [flags]
# 拡張機能のアップグレード
$ gh extension upgrade {<name> | --all} [flags]
gh gist
GitHub Gistを操作することができます。
# GitHub Gistをローカルにクローン
$ gh gist clone <gist> [<directory>] [-- <gitflags>...]
# GitHub Gistの作成
$ gh gist create [<filename>... | -] [flags]
# GitHub Gistの削除
$ gh gist delete {<id> | <url>}
# GitHub Gistの編集
$ gh gist edit {<id> | <url>} [<filename>] [flags]
# GitHub Gistの一覧表示
$ gh gist list [flags]
# GitHub Gistの名前変更
$ gh gist rename {<id> | <url>} <oldFilename> <newFilename>
# GitHub Gistの詳細を表示
$ gh gist view [<id> | <url>] [flags]
gh gpg-key
GitHubアカウントに登録されたGPGキーを管理します。
# GPGキーをGitHubアカウントに追加する
$ gh gpg-key add [<key-file>] [flags]
# GitHubアカウントからGPGキーを削除する
$ gh gpg-key delete <key-id> [flags]
# GitHubアカウント内のGPGキーの一覧表示
$ gh gpg-key list
gh help
# 特定のコマンドの使い方を表示
$ gh help [command]
gh issue
issueの操作ができます。
# isssueを閉じる
$ gh issue close {<number> | <url>} [flags]
# issueにコメントを追加
$ gh issue comment {<number> | <url>} [flags]
# issueの作成
$ gh issue create [flags]
# issueの削除
$ gh issue delete {<number> | <url>} [flags]
# issueに関連するブランチの管理
$ gh issue develop {<number> | <url>} [flags]
# issueの編集
$ gh issue edit {<numbers> | <urls>} [flags]
# issueの一覧表示
$ gh issue list [flags]
# issueの会話をロック
$ gh issue lock {<number> | <url>} [flags]
# issueをリポジトリにピン留め
$ gh issue pin {<number> | <url>}
# クローズされたissueの再オープン
$ gh issue reopen {<number> | <url>} [flags]
# issueのステータスを表示
$ gh issue status [flags]
# issueを別のリポジトリに転送
$ gh issue transfer {<number> | <url>} <destination-repo>
# issueの会話ロック解除
$ gh issue unlock {<number> | <url>}
# issueのリポジトリのピン留め解除
$ gh issue unpin {<number> | <url>}
# issueの詳細を表示
$ gh issue view {<number> | <url>} [flags]
gh label
ラベルの操作ができます。
# ラベルをクローン
$ gh label clone <source-repository> [flags]
# 新しいラベルを作成
$ gh label create <name> [flags]
# ラベルを削除
$ gh label delete <name> [flags]
# ラベルを編集
$ gh label edit <name> [flags]
# ラベルの一覧表示
$ gh label list [flags]
gh org
# 認証された組織の一覧表示
$ gh org list [flags]
gh pr
プルリクエストの操作ができます。
# プルリクエストをチェックアウト
$ gh pr checkout {<number> | <url> | <branch>} [flags]
# プルリクエストのCIステータスを表示
$ gh pr checks [<number> | <url> | <branch>] [flags]
# プルリクエストをクローズ
$ gh pr close {<number> | <url> | <branch>} [flags]
# プルリクエストにコメントを追加
$ gh pr comment [<number> | <url> | <branch>] [flags]
# プルリクエストを作成
$ gh pr create [flags]
# プルリクエストの差分を表示
$ gh pr diff [<number> | <url> | <branch>] [flags]
# プルリクエストの編集
$ gh pr edit [<number> | <url> | <branch>] [flags]
# プルリクエストの一覧表示
$ gh pr list [flags]
# プルリクエストの会話をロック
$ gh pr lock {<number> | <url>} [flags]
# プルリクエストのマージ
$ gh pr merge [<number> | <url> | <branch>] [flags]
# プルリクエストのドラフトまたはドラフト解除
$ gh pr ready [<number> | <url> | <branch>] [flags]
# クローズされたプルリクエストの再オープン
$ gh pr reopen {<number> | <url> | <branch>} [flags]
# プルリクエストにレビュー追加
$ gh pr review [<number> | <url> | <branch>] [flags]
# プルリクエストのステータス表示
$ gh pr status [flags]
# プルリクエストの会話ロック解除
$ gh pr unlock {<number> | <url>}
# プルリクエストの詳細を表示
$ gh pr view [<number> | <url> | <branch>] [flags]
gh project
GitHub projectsの操作と管理ができます。
# プロジェクトを閉じる
$ gh project close [<number>] [flags]
#プロジェクトをコピー
$ gh project copy [<number>] [flags]
# プロジェクトを作成
$ gh project create [flags]
# プロジェクトを削除
$ gh project delete [<number>] [flags]
# プロジェクトを編集
$ gh project edit [<number>] [flags]
# プロジェクト内にフィールドを作成
$ gh project field-create [<number>] [flags]
# プロジェクト内のフィールドを削除
$ gh project field-delete [flags]
# プロジェクト内の一覧表示
$ gh project field-list number [flags]
# プロジェクト内にプルリクエストまたはissueを追加
$ gh project item-add [<number>] [flags]
# プロジェクト内のアイテムをアーカイブ
$ gh project item-archive [<number>] [flags]
# プロジェクト内にアイテムを追加
$ gh project item-create [<number>] [flags]
# プロジェクト内のアイテムを削除
$ gh project item-delete [<number>] [flags]
# プロジェクト内のアイテムを編集
$ gh project item-edit [flags]
# プロジェクト内のアイテムを一覧表示
$ gh project item-list [<number>] [flags]
# プロジェクトの一覧表示
$ gh project list [flags]
# プロジェクトの詳細を表示
$ gh project view [<number>] [flags]
gh release
GitHub Releasesの操作、管理ができます。
# リリースの作成
$ gh release create [<tag>] [<files>...]
# リリースからアセットを削除
$ gh release delete-asset <tag> <asset-name> [flags]
# リリースを削除
$ gh release delete <tag> [flags]
# リリースからアセットをダウンロード
$ gh release download [<tag>] [flags]
# リリースを編集
$ gh release edit <tag>
# リリースの一覧表示
$ gh release list [flags]
# アセットファイルをリリースにアップロード
$ gh release upload <tag> <files>... [flags]
# リリースの詳細を表示
$ gh release view [<tag>] [flags]
gh repo
リポジトリの操作、管理ができます。
# リポジトリをアーカイブ
$ gh repo archive [<repository>] [flags]
# リポジトリをローカルにクローン
$ gh repo clone <repository> [<directory>] [-- <gitflags>...]
# 新しいリポジトリを作成
$ gh repo create [<name>] [flags]
# リポジトリを削除
$ gh repo delete [<repository>] [flags]
# デプロイキーをリポジトリに追加
$ gh repo deploy-key add <key-file> [flags]
# リポジトリからデプロイキーを削除
$ gh repo deploy-key delete <key-id>
# リポジトリ内のデプロイキーを一覧表示
$ gh repo deploy-key list
# リポジトリの編集
$ gh repo edit [<repository>] [flags]
# リポジトリのフォークを作成
$ gh repo fork [<repository>] [-- <gitflags>...] [flags]
# リポジトリの一覧表示
$ gh repo list [<owner>] [flags]
# リポジトリの名前変更
$ gh repo rename [<new-name>] [flags]
# デフォルトのリモートリポジトリを設定
$ gh repo set-default [<repository>] [flags]
# リポジトリの同期
$ gh repo sync [<destination-repository>] [flags]
# リポジトリのアーカイブを解除
$ gh repo unarchive [<repository>] [flags]
# リポジトリのURLとREADME.mdの表示
$ gh repo view [<repository>] [flags]
gh ruleset
ルールセットの管理ができます。
# 指定されたブランチに適用されるルールに関する情報を表示
$ gh ruleset check [<branch>] [flags]
# ルールセットの一覧を表示
$ gh ruleset list [flags]
# ルールセットの詳細を表示
$ gh ruleset view [<ruleset-id>] [flags]
gh run
GitHub Actionsの操作、管理ができます。
# ワークフローの実行をキャンセル
$ gh run cancel [<run-id>]
# ワークフロー実行の削除
$ gh run delete [<run-id>]
# アーティファクトをダウンロード
$ gh run download [<run-id>] [flags]
# ワークフローを一覧表示
$ gh run list [flags]
# ワークフローとジョブの再実行
$ gh run rerun [<run-id>] [flags]
# ワークフローの詳細を表示
$ gh run view [<run-id>] [flags]
# ワークフローの進行状況を表示
$ gh run watch <run-id> [flags]
gh search
GitHub内で様々な検索ができます。
# リポジトリのコード検索
$ gh search code <query> [flags]
# リポジトリのコミット検索
$ gh search commits [<query>] [flags]
# リポジトリのissue検索
$ gh search issues [<query>] [flags]
# リポジトリのプルリクエスト検索
$ gh search prs [<query>] [flags]
# リポジトリ検索
$ gh search repos [<query>] [flags]
gh secret
GitHub Actionsまたはdependabotで使用するための設定ができます。
# シークレットの削除
$ gh secret delete <secret-name> [flags]
# シークレットの一覧表示
$ gh secret list [flags]
# シークレットを設定
$ gh secret set <secret-name> [flags]
gh ssh-key
GitHubアカウントに登録されたSSHキーを管理できます。
# GitHubアカウントにSSHキーを追加
$ gh ssh-key add [<key-file>] [flags]
# GitHubアカウントからSSHキーを削除
$ gh ssh-key delete <id> [flags]
# GitHubアカウント内のSSHキーを一覧表示
$ gh ssh-key list
gh status
# リモートリポジトリの状態に関する情報を表示
$ gh status [flags]
gh variable
GitHub Actionsまたはdependabotで使用する変数を設定できます。
# 設定されている変数を削除
$ gh variable delete <variable-name> [flags]
# 設定されている変数の一覧表示
$ gh variable list [flags]
# 変数を設定
$ gh variable set <variable-name> [flags]
gh workflow
GitHub Actionsのワークフロー操作や管理ができます。
# ワークフローを無効化
$ gh workflow disable [<workflow-id> | <workflow-name>]
# ワークフローを有効化
$ gh workflow enable [<workflow-id> | <workflow-name>]
# ワークフローの一覧表示
$ gh workflow list [flags]
# ワークフローに対してworkflow_dispatchイベントを作成
$ gh workflow run [<workflow-id> | <workflow-name>] [flags]
# ワークフローの詳細を表示
$ gh workflow view [<workflow-id> | <workflow-name> | <filename>] [flags]
おわりに
以上が現在使うことができるコマンド一覧になります。
また、別で紹介しているターミナルアプリケーションのWarpもおすすめなのでチェックしてみてください。
便利なGitHub CLIを使いこなしましょう。
Discussion