この記事では、GitHub CLIで指定したブランチのPull Requestを開く方法をお伝えします。
この記事を読めば、例えばfeature/hogeのPull Requestを開きたいとき、以下のコマンドを打つことで開けるようになります。
op feature/hoge
少しでも開発効率の向上に繋がれば幸いです。
GitHub CLIとは何か?
GitHub CLIとは、コマンドラインからGitHubを使用するためのツール(コマンド)です。
GitHub CLIを使うことで、GitHubの画面に行くことなく、CLI上でPull Requestの作成などのGitHubの操作をすることができます。
GitHub CLIについては、以下の資料が分かりやすいので、参考にしてみてください。
GitHub CLIで指定したブランチのPull Requestを開く
GitHub CLIで指定したブランチのPull Requestを開きたい場合、以下のコマンドを打つことで実現できます。
これにより、現在のブランチのPRを表示することができます。
gh pr list -s all | grep $(git branch --show-current) | awk '{print $1}' | xargs gh browse
以下、コマンドの説明です。
gh pr list -s all
:gh
はGitHub CLI(コマンドラインインターフェース)を表します。GitHubリポジトリに対する操作を行うためのツールです。pr list
はPull Requestの一覧を表示するためのサブコマンドです。-s all
は、すべてのステータスのPRを表示するオプションです。つまり、マージ済み、オープン、クローズなどすべてのPRを表示します。
|
(パイプ):- パイプは、前のコマンドの出力を次のコマンドの入力に渡すために使用されます。
grep $(git branch --show-current)
:git branch --show-current
は、現在のGitブランチの名前を取得するコマンドです。grep
は、テキスト内でパターンに一致する行を抽出するためのコマンドです。- この部分は、現在のブランチ名に一致する行を抽出します。
awk '{print $1}'
:awk
はテキスト処理ツールで、テキスト行から特定のフィールドを抽出するために使用されます。- ここでは、各行の1つ目のフィールド(スペースで区切られた最初の単語)を抽出します。これはPRの番号です。
xargs gh browse
:xargs
は前のコマンドの出力を引数として次のコマンドに渡すために使用されます。gh browse
はGitHubのPull Requestをブラウジングするためのコマンドです。ここでは、前のステップで抽出されたPR番号を指定して、それらのPRをWebブラウザで開きます。
これはこれで便利ではあるのですが、毎回このコマンドを打つのは面倒です。
そこで、(bashの場合).bashrcに以下のように設定します。
op() { local branch="$1" gh pr list -s all | grep "$branch" | awk '{print $1}' | xargs gh browse }
これにより、op feature/hoge
のようにブランチを指定してPRを表示することが可能となります。
以下、この設定の説明です。
op()
関数を定義します:op()
は自分で名前をつけた関数で、後で呼び出すことができるようになります。この関数は引数を受け取ります。
- 引数
branch
をローカル変数branch
に格納します:local branch="$1"
は、関数内で使用するために引数をローカル変数branch
にコピーします。このbranch
は後で使用されます。
- GitHubコマンドラインツール (
gh
) を使用して、プルリクエストの一覧を表示します:gh pr list -s all
は、GitHubのプルリクエストの一覧を表示するgh
コマンドを実行します。-s all
オプションは、すべてのステータスのプルリクエストを表示することを意味します。
grep
を使用して、特定のブランチに関連するプルリクエストをフィルタリングします:| grep "$branch"
は、前のコマンドの出力を受け取り、$branch
の値に一致する行のみを抽出します。ここで、$branch
は関数の引数として渡されたブランチ名です。
awk
を使用して、プルリクエストの一覧からプルリクエストの番号(ID)を取得します:| awk '{print $1}'
は、grep
の出力を受け取り、各行の最初のフィールド(空白文字で区切られた最初の単語)を抽出します。これがプルリクエストの番号です。
xargs
を使用して、gh browse
コマンドを呼び出します:| xargs gh browse
は、前のコマンド(awk
の出力)から取得したプルリクエストの番号をgh browse
コマンドに渡し、それを実行します。これにより、プルリクエストがWebブラウザで開かれます。
PRを開く作業は、開発中に頻繁に行います。
この設定をしておくことで、かなりの効率化を図ることができるでしょう。
GitHub CLIで現在のブランチのPull Requestを開く おわりに
今回は、GitHub CLIで現在のブランチのPull Requestを開く方法をお伝えしました。
以下のように設定しておくことで、簡単に現在のブランチのPull Requestを開くことができるようになります。
op() { local branch="$1" gh pr list -s all | grep "$branch" | awk '{print $1}' | xargs gh browse }
この記事が、日々の開発の効率化を図る上で、少しでも参考になれば幸いです。