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