📖

カレントディレクトリのブランチのPRを開く GitHub CLI 拡張機能を作成した

2023/08/11に公開

これはなに?

https://github.com/kyoshidajp/gh-browse-pr

今いるディレクトリの git ブランチに対する PR をブラウザで開きます。PR がまだ存在しなければ、PR の新規作成画面を開きます。

GitHub CLI の標準機能にある、カレントディレクトリの GitHub リポジトリをブラウザで開くものではありません。

自分は普段 PR の新規作成時には、テンプレートにしたがってブラウザからプレビューしながら作成する事が多いです。その場合、次の2ステップになりますが、この機能拡張を使うとそれらをターミナルから1ステップで行なえます。

  1. ブラウザを起動(またはアクティブに)して、手動で GitHub リポジトリを開く
  2. PR の新規作成画面を開く

インストールと使い方

まず、GitHub CLI が未インストールであれば公式の手順を参考にインストールします。

次に、今回の拡張機能をインストールします。

gh extension install kyoshidajp/gh-browse-pr

あとは、git リポジトリのディレクトリで次のコマンドを実行すると、ブラウザが現在のブランチの PR を開きます。

gh browse-pr

自分はこの入力が面倒なのでシェルでエイリアスを作成しています。

~/.zshrc
alias pr="gh browse-pr"

モチベーション

この機能アイデアはオリジナルではなく、自分は長い間 git-browse-remote を使っていました。しかし、しばらくメンテナンスされておらず、Ruby 3.2 で動作しない問題の対応 PR もそのままになっています。また、ブランチ名が 100 のような数値の文字列だと正しく動作しないケースがあるようです。

他にも、GitHub CLI の拡張機能でやや近い目的の gh-open-branch-pr を見つけたのですが、少し目的の用途と違っていました。こちらは、ブランチ名をもとに何らかの方法で文字列を取り出し、それがタイトルに部分一致する PR を開くようです。

そのため以前から興味のあった GitHub CLI の拡張機能として作ってみました。

GitHub CLI の「リポジトリのURL取得」や「PR の検索」が簡単に実行できる(それぞれ gh browse -ngh search prs)ところや、GitHub Actions を含めた拡張機能の雛形作成がサクッとできる体験はとても良かったです。

Go で書いたので、Ruby がインストールされていない様々なプラットフォームでも動作すると思います。

Discussion