Git

GitHub CLIで指定したブランチのPull Requestを開く

GitHub CLIで指定したブランチのPull Requestを開く

この記事では、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で始める快適GitHub生活

 

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

 

以下、コマンドの説明です。

  1. gh pr list -s all:
    • ghはGitHub CLI(コマンドラインインターフェース)を表します。GitHubリポジトリに対する操作を行うためのツールです。
    • pr listはPull Requestの一覧を表示するためのサブコマンドです。
    • -s allは、すべてのステータスのPRを表示するオプションです。つまり、マージ済み、オープン、クローズなどすべてのPRを表示します。
  2. |(パイプ):
    • パイプは、前のコマンドの出力を次のコマンドの入力に渡すために使用されます。
  3. grep $(git branch --show-current):
    • git branch --show-currentは、現在のGitブランチの名前を取得するコマンドです。
    • grepは、テキスト内でパターンに一致する行を抽出するためのコマンドです。
    • この部分は、現在のブランチ名に一致する行を抽出します。
  4. awk '{print $1}':
    • awkはテキスト処理ツールで、テキスト行から特定のフィールドを抽出するために使用されます。
    • ここでは、各行の1つ目のフィールド(スペースで区切られた最初の単語)を抽出します。これはPRの番号です。
  5. 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を表示することが可能となります。

以下、この設定の説明です。

  1. op() 関数を定義します:
    • op() は自分で名前をつけた関数で、後で呼び出すことができるようになります。この関数は引数を受け取ります。
  2. 引数 branch をローカル変数 branch に格納します:
    • local branch="$1" は、関数内で使用するために引数をローカル変数 branch にコピーします。この branch は後で使用されます。
  3. GitHubコマンドラインツール (gh) を使用して、プルリクエストの一覧を表示します:
    • gh pr list -s all は、GitHubのプルリクエストの一覧を表示するghコマンドを実行します。-s all オプションは、すべてのステータスのプルリクエストを表示することを意味します。
  4. grep を使用して、特定のブランチに関連するプルリクエストをフィルタリングします:
    • | grep "$branch" は、前のコマンドの出力を受け取り、$branch の値に一致する行のみを抽出します。ここで、$branch は関数の引数として渡されたブランチ名です。
  5. awk を使用して、プルリクエストの一覧からプルリクエストの番号(ID)を取得します:
    • | awk '{print $1}' は、grepの出力を受け取り、各行の最初のフィールド(空白文字で区切られた最初の単語)を抽出します。これがプルリクエストの番号です。
  6. 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
}

 

この記事が、日々の開発の効率化を図る上で、少しでも参考になれば幸いです。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA