Github CLIのbeta版を試す

Posted on
cli github

はじめに

先日、githubの公式CLIツールがbeta版としてリリースされた。

githubはGUIでしか基本使わなかったので当然CLIもあるものと勝手に考えていたが、これまでGithubのCLIは「Hub」という非公式ツールがデファクトになっていたらしい。

いつの間にかGithub無料ユーザでもプライベートリポジトリの作成が無料になっていたので、最近はBitbucketからGithubに徐々に移行しつつある。せっかくなのでCLIもざっと触ってみたいと思う。

インストール

各OS毎のインストール方法は以下の通り。

MacOS

brew install github/gh/gh

Windows

公式サイト からダウンロードしたインストーラ(.msi)で導入するか、下記コマンドでscoopを使用してインストール。

scoop bucket add github-gh https://github.com/cli/scoop-gh.git
scoop install gh

アカウント認証

適当なコマンドを実行すると、最初にブラウザ経由でログイン認証を求められるので、「authorize github」を選択して続行する。

$ gh issue list
Notice: authentication required
Press Enter to open github.com in your browser...

issue関連のコマンド

create

issueを作成するコマンド。対話形式でissueを作成することができる。

$ gh issue create

Creating issue in zeroclock/gh-cli-test

? Title issue test 001
? Body <Received>
? What's next 
? Preview in browser What’s next?

で「Preview in browser」を選択すると、下記のようにブラウザで入力内容を確認できる。

「Submit」を選択すると、そのままissueが作成される。

list

issueをリスト表示するコマンド。

$ gh issue list

Issues for zeroclock/gh-cli-test

#3  issue test 003
#2  issue test 002
#1  issue test 001

-sオプションで、ステータスによるフィルタも可能。

$ gh issue list -s closed

Issues for zeroclock/gh-cli-test

#2  issue test 002

status

自分に関連するissueのステータスを表示する。

$ gh issue status

Relevant issues in zeroclock/gh-cli-test

Issues assigned to you
  There are no issues assigned to you

Issues mentioning you
  There are no issues mentioning you

Issues opened by you
  #3 issue test 003 about 4 minutes ago
  #1 issue test 001 about 5 minutes ago

view

指定したnumber/urlのissueの内容を表示する。 ブラウザで表示したければ下記のコマンド。

$ gh issue view 1
Opening https://github.com/zeroclock/gh-cli-test/issues/1 in your browser.

terminal内で表示したければ-pオプションを指定する。

$ gh issue view 1 -p
issue test 001
opened by zeroclock. 0 comments.
  Github CLIから初めてのissue作成です。
View this issue on GitHub: https://github.com/zeroclock/gh-cli-test/issues/1

pr関連のコマンド

create

pull requestを作成する。作成の流れはissue作成時と同様。

$ gh pr create

Creating pull request for fix/feature-test into master in zeroclock/gh-cli-test

? Title pull request test001
? Body <Received>
? What's next? Preview in browser
Opening github.com/zeroclock/gh-cli-test/compare/master...fix/feature-test in your browser.

list

pull requestのリストを表示する。issueと同様にフィルタリングも可能。

$ gh pr list

Pull requests for zeroclock/gh-cli-test

#4  pull request test001  fix/feature-test

checkout

pull requestをcheckoutする。

$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
$ gh pr checkout 4
Switched to branch 'fix/feature-test'
Your branch is up to date with 'origin/fix/feature-test'.
Already up to date.

status

自分に関連するpull requestのstatusを表示する。

$ gh pr status

Relevant pull requests in zeroclock/gh-cli-test

Current branch
  #4  pull request test001 [fix/feature-test]

Created by you
  #4  pull request test001 [fix/feature-test]

Requesting a code review from you
  You have no pull requests to review

view

こちらもissueと同様、ブラウザ上、またはterminal上でpull requestの内容を表示できる。

$ gh pr view 4 -p
pull request test001
zeroclock wants to merge 1 commit into master from fix/feature-test
  github cliからのpull requestテストです。
View this pull request on GitHub: https://github.com/zeroclock/gh-cli-test/pull/4

最後に

まだbeta版なのでこれから色々変わっていくものと思われるが、個人のプロジェクトでissueを発行しまくったり大量のissue/prをフィルタするときにはサクッとできていいかも?

今取り組んでいるモバイルアプリ開発もgithubで管理するつもりなので、機会があったら活用してみたい。