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

  • 16
    いいね
  • 0
    コメント

なにこれ

コミットハッシュから 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 を取得できません。