LoginSignup
40
17

More than 5 years have passed since last update.

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

Posted at

なにこれ

コミットハッシュから 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

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

  • API リクエストの有無
    • 上記記事の方法では API リクエストを行いませんが、whichpr ではリクエストを行います。
  • squash merge への対応
    • 上記記事の方法では squash merge には対応出来ないが、whichpr では API リクエストを行うため対応しています。
    • squash merge の場合コミットメッセージに Pull Request number が入らないことがあるため、 API リクエストを行わないと Pull Request number を取得できません。
40
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
17