こんにちは、@yshr10icです。
2020/9/18に「GitHub CLI 1.0」がリリースされました。
ターミナルからGitHubを操作することができるということなので、少し触ってみたいと思います。
前提条件
筆者の環境は以下となります。
- PC:MacBook Pro(13-inch, 2020, Four Thunderbolt 3 ports)
- OS:macOS Catalina(バージョン:10.15.6)
- ターミナル:iTerm2 Build 3.3.12
- Homebrew:2.5.1
- Git:2.26.2
ドキュメント
GitHub CLIの情報は以下にまとまっています。
GitHubリポジトリ
インストール方法
マニュアル
GitHub CLI 1.0のインストール
さっそく、「GitHub CLI 1.0」をインストールしていきたいと思います。
Macの場合、HomebrewまたはMacPortsからインストールすることができます。
今回はHomebrewからインストールしたいと思います。
ターミナルを起動し、以下のコマンドを実行します。
brew install gh
コマンドを実行すると、以下のようにインストールが開始されます。

正常にインストールされたか、バージョンを確認してみます。
gh --version

正しくインストールできていることが確認できました。
ログイン
続いて、GitHubにログインしたいと思います。
gh auth login
とコマンドを打つと、GitHub.comかGitHub Enterprise Serverのどちらにログインするか、聞かれます。

今回は、GitHub.comにログインします。
続いて、ログイン方法について聞かれます。WEBブラウザまたは認証トークンでのログインが選択できます。

今回はWEBブラウザでのログインにします。
ワンタイムパスワードが生成されるので、ワンタイムパスワードをコピーし、Enterボタンを押します。

アクティベーション画面がWEBブラウザに表示されるので、先ほどコピーしたワンタイムパスワードを貼り付け、「Continue」ボタンを押します。
権限を聞かれるので、「Authorize github」ボタンを押します。

パスワードを入力して、「Confirm password」ボタンを押します。

これで、認証に成功です。

ターミナルに戻ってEnterを押すと、デフォルトのGitの接続方法をHTTPSまたはSSHで聞かれます。
今回はSSHを選択します。

これでログインは完了です!
GitHub CLIを使ってみる
リポジトリ操作
まずはテスト用のリポジトリを作成していきたいと思います。
gh repo create <repo-name>
今回は、リポジトリ名をgithub-cli-test
とし、description
も追加しています。
gh repo create github-cli-test -d "GitHub CLI 1.0 test repository"
上記コマンドを実行するといくつか選択肢が表示されますが、今回はパブリックリポジトリを選択し、カレントディレクトリにプロジェクトを作成するを選択しました。

しっかりとリポジトリが作成されていますね。

次に作成したリポジトリの情報を見てみたいと思います。
gh repo view <repo-name>

先ほどdescription
で指定した内容が取得できています。ただ、READMEがないよ、というメッセージが出ているので、READMEを作成してもう一度試してみたいと思います。

README.mdの内容が正しく取得できました。
ターミナルの背景色のせいで、見にくくなってしまっていますが、「## 概要」の下にも文章が表示されています。
イシュー操作
続いてイシューを作ってみたいと思います。
gh issue create --title "イシュー作成テスト" --body "GitHub CLIからのイシュー作成" --label "bug"


きちんと作成されていますね!
次に作成されたイシューを一覧表示で見てみたいと思います。
gh issue list
上記コマンドでデフォルトでは30件までのイシューを一覧で取得することができます。
また、オプションを指定することによって、ラベルでのフィルタや取得件数の変更などをすることができます。
# ラベルがdocumentationのイシューを取得する
gh issue list -l documentation

プルリク操作
続いてプルリクを作成していきたいと思います。
プルリクを作成するために、pr-test
ブランチを作成し、sample.txt
を追加しました。

gh pr create --base main --title "GitHub CLI プルリクテスト" --body "プルリクのテストです。"


次に作成されたプルリクを一覧表示で見てみたいと思います。
gh pr list

まとめ
本記事では、GitHub CLIを使ってリポジトリ操作やイシュー操作、プルリク操作を試してみました。
コマンドは非常に簡単で分かりやすいとは思うものの、イシューやプルリクに関してはコメントなどを複数行書いたりするので、コマンドラインからは操作するのは難しいという印象を受けました。
ただ、何らかの条件によりイシューやプルリクを自動クローズするなど、自動化処理に関してはもしかしたら使えるものになるかもしれないですね。
Git・GitHubに関するおすすめの本やサイト
(2025/02/23 18:08:35時点 Amazon調べ-詳細)
(2025/02/23 18:08:36時点 Amazon調べ-詳細)
(2025/02/23 18:08:37時点 Amazon調べ-詳細)
(2025/02/23 18:08:37時点 Amazon調べ-詳細)