😎

GitHub CLIコマンド一覧【ghコマンド】

2023/07/25に公開

GitHub CLIとは

GitHub CLIとは、コマンドラインでGitHub操作を行うことができるCLIツールです。
対話形式で操作することになるので、簡単で分かりやすいです。
公式で公開されているコマンド一覧を紹介します。

https://cli.github.com/

https://docs.github.com/ja/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ごとの詳細なインストール方法は、下記公式ページをご覧ください。

https://github.com/cli/cli#installation

ghコマンド一覧

公式で公開しているGitHub CLIで使用できるコマンドの一覧です。

https://cli.github.com/manual/gh

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でも表示することができます。
https://github.co.jp/features/codespaces
http://jupyter.org/

# 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拡張機能の管理ができます。

https://github.com/topics/gh-extension

こちらにさまざまな拡張機能があり、自分で作成することもできます。

# 拡張機能のリストをブラウザで表示
$ 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]

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もおすすめなのでチェックしてみてください。

https://zenn.dev/mar_kun/articles/zenn-20230722

便利なGitHub CLIを使いこなしましょう。

GitHubで編集を提案

Discussion