前書き
最近出てきたCLIでGithubが扱えるソフトウェアGithub CLIを使ってみました。
いままでたくさんCLIツールはでていたのですが
https://qiita.com/ryuichi1208/items/45fd2cdd865097a7ad3d
公式出のツールは2つめ?っぽいです。(hubが最初?)
この記事ではプルリクエストをPRと表記するときがあります
コマンド→解説の構成です
この記事でやっていること
- Github CLIのコマンドの挙動網羅
この記事でやらないこと
- GithubCLIのインストール法の解説(公式に書いてあります)
- 既存のCLIソフトウェア(hub等)との比較
記事本体
GithubCLIで現在できること
- PRの作成
- PRの一覧表示
- PRのステータス表示
- PRのページをブラウザで開く
- PR対象ブランチへのチェックアウト
- issueの作成
- issueの一覧表示
- issueのステータス表示
- issueのページをブラウザで開く
今回全部試してみたので書いていきます。
プルリクエストの操作
PRの作成
Github CLIのプルリクエスト関連操作をまとめています
$gh pr create
> Creating pull request for ブランチ名 into [Base Branch名] in ユーザー名/リポジトリ名
現在のGitブランチを認識し、そのブランチからBase branch(github側で設定)へのPRとして作成されます
$gh pr create
Creating pull request for ブランチ名 into [Base Branch名] in ユーザー名/リポジトリ名
? Title READMEの開発項目のissue移行に際してのREADME修正
? Body [(e) to launch nano, enter to skip]
eキーを押すとnanoエディタが開き、本文部分のMarkdown記法での入力が可能です。
(ちなみにnanoエディタは書き終わったらCtrl + Oで保存→Enter(本来はここでファイル名を入力.Github CLIは勝手にやるので触らないのが吉?)→Ctrl + Xで閉じる)です
2019/02/18追記
PRのテンプレート(PULL_REQUEST_TEMPLATE.md)とかあると自動で読み込んでくれます!
$ gh pr create
Creating pull request for ブランチ名 into [Base Branch名] in ユーザー名/リポジトリ名
? Title fff
? Body <Received>
? What's next? [Use arrows to move, type to filter]
> Preview in browser
Submit
Cancel
Preview in blowserを選ぶと、Submit前のPRページに飛んでプレビューできます(ラベルとかレビュワーはここで設定する)
Submitはプレビューせずにそのまま送信される
PRの一覧表示
gh pr list
で可能。現在出ているPRを、そのブランチと一緒にリスティングされる
PRのステータス表示
gh pr status
/*以下出力*/
Relevant pull requests in YaCpotato/project_manager
Current branch
#17 READMEの開発項目の移行に際してのRE... [update/readme]
Created by you
#17 READMEの開発項目の移行に際してのRE... [update/readme]
Requesting a code review from you
You have no pull requests to review
現在のブランチと、PRが出ていたらそれも出してくれる。あとは
- 他ブランチの自分が作ったPR
- コードレビューをリクエストされたPR
の3種類が見れる
PRのページをブラウザで開く
gh pr view [PR番号(#12みたいな数字)]
gh pr view #17
このコマンドを打つと対象PRをブラウザで開いてくれる
PR対象ブランチへのチェックアウト
gh pr checkout [PR番号(#12みたいな数字)]
gh pr checkout #17
そのPRが出されているブランチにチェックアウトする。
issueの操作
Github CLIのissue関連操作をまとめています
issueの作成
gh issue create
/*以下出力*/
Creating issue in YaCpotato/project_manager
? Title カレンダーインポートモーダルの実装
? Body <Received>
? What's next? [Use arrows to move, type to filter]
Preview in browser
> Submit
Cancel
ほぼPRのcreateコマンドと一緒
issueの一覧表示
gh issue list
/*以下出力*/
Issues for ユーザー名/リポジトリ名
# 16 ガントチャートのレイアウトをガ?...
# 15 イメージ画像をアップロードでき?...
# 14 カレンダーインポートモーダルの?...
# 13 共有カレンダーテンプレートの実装
# 12 ログイン済みGoogleアカウントから?...
こちらは特にPRのような種類わけはない模様
issueのステータス表示
gh issue status
/*以下出力*/
Relevant issues in ユーザー名/リポジトリ名
Issues assigned to you
#15 イメージ画像をアップロードできるようにする about 40 minutes ago
Issues mentioning you
#16 ガントチャートのレイアウトをガチる about 41 minutes ago
Issues opened by you
#15 イメージ画像をアップロードできるようにする about 40 minutes ago
#16 ガントチャートのレイアウトをガチる about 41 minutes ago
#14 カレンダーインポートモーダルの実装 about 53 minutes ago
#13 共有カレンダーテンプレートの実装 about 57 minutes ago
#12 ログイン済みGoogleアカウントからのカレンダー取得 about 59 minutes ago
- アサインされているissue
- メンションされているissue
- 自分が開いたissue
の3種類に分かれてリスト表示されます。
issueのページをブラウザで開く
gh issue view [issue番号]
PR版とほぼ同じ。対象issueをブラウザで開く
最後に
個人的に便利!と思った点は
gh pr checkout
でPRが出されているブランチにチェックアウトできること
PRページからブランチ名コピーしてチェックアウトするのめんどくさいので
gh pr statusもしくは list
からのgh pr view PR番号
上記とPRのレビュー時にすぐにブラウザに飛べる
当方Github用のCLIは初めてだったので既存のものと比較ができなくて残念です。この記事がどなたかの比較の際の参考になれば幸いです。
終わります。
よかったらTwitterフォローしてください