はじめに
先日、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で管理するつもりなので、機会があったら活用してみたい。