$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

今いるレポジトリのPR一覧をpecoで絞り込んでcheckoutする便利コマンド作った

OSS活動とか仕事をしてる時に、PRをチェックアウトするのだるいなと思っていた。そこで「今いるレポジトリのPR一覧をmodified順に出力し、pecoで選択したものをcheckout」出来たら便利だろうということで作った。

できたもの

f:id:shiba_yu36:20211018194017g:plain

やり方

まずhubとpecoをインストールしておく。

zshを使っているならこんな感じで定義し、

function peco-git-recent-pull-requests () {
    local selected_pr_number=$(hub pr list --limit 40 --sort updated --format "%pC%>(8)%i%Creset  %t (by @%au)%n" | peco | sed -r 's/^ +#([0-9]+).*$/\1/')
    if [ -n "$selected_pr_number" ]; then
        BUFFER="hub pr checkout ${selected_pr_number}"
        zle accept-line
    fi
    zle clear-screen
}
zle -N peco-git-recent-pull-requests

自分で好きなキーバインドをつける。僕は Ctrl-x B に割り当てた。

bindkey '^xB' peco-git-recent-pull-requests

これでレポジトリのディレクトリにいるときにCtrl-x Bを押すと、動画のようにPRの一覧が出て絞り込んで選択してEnterを押すとcheckoutできる。便利。

https://github.com/shibayu36/config-file/pull/1