文字っぽいの。

文字を書いています。写真も混ざります。

GitHub謹製のghコマンドとpecoを組み合わせて、高速にPull Requestのブランチにチェックアウトする。

GitHub公式からghというCLIツールがbetaリリースされています。まだbeta版ですが、非常にシンプルで使いやすいCLIツールです。 この記事では、その ghとpeco を利用して、高速にPull Requestに対応するブランチにチェックアウトする方法を説明します。

コードレビューをお願いされて「checkoutして挙動を確認したいな」という時に、ブラウザでGitHubを開いてブランチ名をコピーする必要がなくなるので非常に便利です。

様子

Image from Gyazo

手順

macOS 10.15.4での手順になります。まず、pecoとghが入っていない場合は準備します。

$ brew install peco
$ brew install gh

次にこちらを .zshrc に追記します。

function peco-checkout-pull-request () {
    local selected_pr_id=$(gh pr list | peco | awk '{ print $1 }')
    if [ -n "$selected_pr_id" ]; then
        BUFFER="gh pr checkout ${selected_pr_id}"
        zle accept-line
    fi
    zle clear-screen
}
zle -N peco-checkout-pull-request

そして $ source .zshrc をするなどして .zshrc の変更を読み込んだあとで

$ peco-checkout-pull-request

とすると、pecoでP-Rを選択してCheckoutできます。このままだと毎回コマンドを打つ必要があって不便なので .zshrc

bindkey "^g^p" peco-checkout-pull-request

と書いておくと Ctrl+g, Ctrl+p と入力することでP-Rを選択してCheckoutできます。

まとめ

gh には他にも便利な機能があるので、「pecoでPull Requestを選択してブラウザで開く」といった機能も作れそうですね。