GitHub CLI で PR の作成からマージまでを行う流れ
GitHub の PR (Pull Request) の一連の処理を GitHub CLI で行う流れについてです。
効率はブラウザでやるのと大差無い気がしますが、ターミナルとブラウザのウィンドウを行き来しなくて済むので複数の PR を連続して処理したいときなどにじゃっかん楽な気がします。 気のせいかもしれません。
一連の流れをかんたんにまとめておきます。
確認時のバージョン
gh --version
gh version 2.44.1 (2024-02-16)
https://github.com/cli/cli/releases/tag/v2.44.1
1. PR を作成する
まず PR を作成します。
ブランチを対象のブランチに切り替えてから gh pr create
コマンドを使います。
git switch (branch)
gh pr create --assignee (user) --fill-verbose
ほとんどの場合はすでに対象のブランチで作業をしているのでブランチ切り替えが必要なことは稀です。
--assignee
で担当者を決められます。 自分の場合は@me
とします。--fill-verbose
を付けるとタイトルとボディを自動で入力してくれます。 ボディは PR 作成時のコミット一覧です。 これが便利です。
コマンドを実行すると、ヘッドブランチが GitHub にまだ無い場合は、まずブランチを push するかどうかを尋ねられるので push してよい場合は push します。
? Where should we push the '(branch)' branch?
その後 PR が作成されてその URL が出力されます。
2. GitHub Actions の実行ステータスをチェックする
トリガーされた GitHub Actions がある場合はステータスをチェックします。
gh pr checks
コマンドを使います。
gh pr checks --watch
--watch
を付けるとすべての Actions の実行が成功か失敗で終了するまでターミナルでウォッチできます。
3. PR のコメントをチェックする
Actions が終了したら PR のコメントをチェックします。
gh pr view
コマンドを使います。
gh pr view
Actions の結果以外にチェックするものがなければこのステップはスキップします。
4. PR をマージする
問題がなければ PR をマージします。
gh pr merge
コマンドを使います。
gh pr merge --merge --delete-branch
--merge
を付けるとマージコミットを行う形でマージします。--delete-branch
を付けるとマージ後にヘッドブランチを削除してくれます。 リモート( GitHub )のブランチに加えてローカルのブランチも削除できます。 ローカルでそのブランチをチェックアウトしている場合は自動的にベースブランチ(デフォルトブランチ?)に切り替えてくれます。 便利です。