github用CLI – hub – version 2.11.2を試してみた

github用CLIのhubの最新版を試してみました。操作ヘルプ用の補完コマンドが欲しくなったため合わせて拵えています。
2019.05.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

githubは操作がブラウザ上で完結できます。ただ、terminal上からより利便性高く行いたいと思うこともあり、例えばgit clone等にはghqを利用される方も多いと思います。

clone以外の操作をなんとかできないものかと調べていたところ、Developers.IOに以下の記事がありました。

GitHub のコマンドラインツール「hub」の基本と便利な使い方のまとめ

上記記事執筆時でのhubはバージョン2.2.3で、この記事執筆時のバージョンは2.11.2と大きく更新が入っているようです。基本的な操作をおさらいしつつ、2.11.2までに追加されている機能について特に大きいと思われるものをさわってみました。

基本的な使い方

ベーシックなコマンドについては2.2.3の頃から変わらずそのままです。

* hub create [<repository-name>]
* hub clone github/hub
* hub pull-request [-b <branch-name>]
* hub issue
* hub fork # need before clone
* hub create [<repository-name>]
* hub browse github/hub # open in browser
* hub issue

また、GitHubアカウントの設定についても変わりません。

hub cloneについては利便性の面でghq getを利用している人も多いかもしれません。

追加機能

確認した限りでは、pull-request系で大きな変更が入った2.3.0と、Github APIのスクリプト操作を受付可能にする機能が入った2.8.3が個人的な見どころでした。

2.3.0

Release hub 2.3.0 – codename “Ancient Psychic Tandem War Elephant” · github/hub

hub prにてpull-request一覧取得チェックアウト関わる操作が可能になっています。

hub pr list
hub pr checkout \&lt;NUMBER>

hub pull-request担当者、ラベル、レビュアー、マイルストーンが指定可能になっています。

hub pull-request [-focp] [-b \&lt;BASE>] [-h \&lt;HEAD>] [-r \&lt;REVIEWERS> ] [-a \&lt;ASSIGNEES>] [-M \&lt;MILESTONE>] [-l \&lt;LABELS>]

hub pull-requesthub issue createテンプレートが利用可能になっています。

全面的にプルリクエストの利便性が上がっているバージョンでした。

2.8.3

Release hub 2.8.3 · github/hub

頑張れば色々できるようになったというイメージがあります。実際に使うかどうかは個人差があるかもしれません。

ヘルプコマンドのショートカット

hubそのものの更新ではありませんが、正直コマンド一覧を辿り辛かったこともあり、補完出来るようにしてみました。

% vim ~/.zshrc
function hubh() {
  result="$(hub help | peco | awk '{print $1 }' | sed 's/ //g')"
  print "> hub help hub-${result}"
  hub help hub-${result} | less
}
% exec $SHELL -l
% hubh

まとめ

導入していなかった方は、インストールしておくことでterminal上からのgithub操作がとても易くなるはずです。

既に導入済みでもhubを更新していなかった方は、問題なければ是非とも更新をおすすめします。