volpe’s diary

フリーランスじゃなくなったプログラマ volpe が日々便利だなぁと感じたことを中心に綴るブログです

Github の PullRequest をコマンドラインで表示出来るようにしてみた

モチベーション

フリーランスになって Github のプルリクエスト駆動で開発するようになって、今現在アクティブなプルリクエストのリストをいちいちブラウザを開かなくても手元のシェルで確認したい気持ちが高まってきた。

また、人のプルリクをレビューする際などにちょっと階層が深い複雑なブランチ構造のプルリクを開くと、自分は一体何の差分をレビューしているのか見失うことがあるので、プルリクのブランチ階層構造をサクッと把握したい。

コマンドラインツールを作ってみた

そこで、GithubAPIを使って pr-tree というコマンドラインツールを作ってみた。

なるべく簡単にインストール出来るように ruby の実行ファイル一個にまとめた。 リポジトリを clone し、GithubGITHUB_API_TOKEN を取得し、パスの通ったディレクトリにシンボリックリンクを置くことで簡単に使える。

実際の動き

シェル上で任意の Github リポジトリディレクトリに入って、 pt-tree と打つことで以下のようにプルリク一覧がブランチのツリー構造で表示される。

f:id:volpe0104:20191016003318p:plain

現在誰がどのプルリクに着手しているか分かるし、ブラウザで見たければ command を押しながら URL をクリックすると瞬時に開く(iTermの場合)。 大きめのフィーチャーブランチから子プルリクを生やしてる場合などもツリー構造を簡単に把握できてレビューが捗る。

最近追加した機能としては、親ブランチの最新から乖離がある子ブランチの先頭に * を表示するようにして、出来るだけ素早くリベースするなりして親ブランチから置いて行かれないようにしている。

実運用で使ってみている

なんとなく欲しくなったものを rubyGithub API を使う練習なるなぁ、くらいの気持ちで作ってみたけどしばらく使っているうちに手放せないツールとなった。お仕事をいただいている現場のメンバーにも共有したら早速使ってくれてる人もいて嬉しい。

もしかしたらもっと便利なツールが世の中には転がっているかもしれないけど、自分で作れるものは自作するのも楽しくていいな。