Go
Git
GitHub

Commit hash から GitHub の Pull Request を開くコマンドラインツール whichpr を作った

More than 1 year has passed since last update.


なにこれ

コミットハッシュから GitHub の Pull Request を開くコマンドラインツールを作りました。

レポジトリはこちら: https://github.com/pocke/whichpr


欲求

git blame で変更がどのコミットで行われたのかを知ることが出来ても、より詳細な情報を知るために「どの Pull Request でそのコミットがなされたか」を知りたい場合があります。

このツールはそのような場合に Pull Request を素早く開くために作成されました。


Installation

Go で書かれているので、go get でインストールします。

go get github.com/pocke/whichpr


Usage

コミットハッシュ値XXXXXXXがコミットされた Pull Request を開くには、以下のようにします。

$ whichpr open XXXXXXX

このコマンドを実行すると、Pull Request がブラウザで開かれます。


Vim integration

また、whichpr は下記を.vimrcに追加することで Vim プラグインとして動作します。

set rtp+=~/path/to/pocke/whichpr/

" キーバインドを設定したい場合の例
nnoremap <F5> :call whichpr#open()<CR>

:call whichpr#open()を呼び出すことで、その行が最後に変更された Pull Request を開くことが出来ます。

なお、Vim 連携のコードは8行しかありません。

https://github.com/pocke/whichpr/blob/master/autoload/whichpr.vim

他のエディタでも同様の機能を実装するのは簡単だと思います。


認証

初回利用時には認証が必要です。

GitHub のユーザー名、パスワードを聞かれるので、入力して下さい。


Alternative

http://qiita.com/awakia/items/f14dc6310e469964a8f7

上記記事の方法を使うことでも同様のことが行なえますが、whichpr とは以下の違いがあります。


  • API リクエストの有無


    • 上記記事の方法では API リクエストを行いませんが、whichpr ではリクエストを行います。



  • squash merge への対応


    • 上記記事の方法では squash merge には対応出来ないが、whichpr では API リクエストを行うため対応しています。

    • squash merge の場合コミットメッセージに Pull Request number が入らないことがあるため、 API リクエストを行わないと Pull Request number を取得できません。