1. 引数のパース
引数は以下のオプションを受け付けます:
- •
-b <target-branch>: ターゲットブランチを指定(デフォルト:$(git branch --show-current)で取得した現在のブランチ)
未コミットな変更がないか探す
- •
現在のGitの状態を確認し、未コミットな変更がないか確認する
- •
未コミットの変更がある場合は下記に従う
- •
AskUserQuestionツールを使用して未コミットな変更をどう扱うか下記の選択肢を示す- •未コミットの変更をStashする
- •未コミットの変更をDiscardする
- •
- •
2でユーザーが選択した選択肢があれば、それにしたがってGit操作を進める
PRを探して状態を確認する
- •ターゲットブランチを対象として出されているPRを探す:
bash
gh pr view <ターゲットブランチ>
もし複数のPRが見つかった場合は AskUserQuestionツールを使用してどのPRを対象とするか確認する
PRが確定したら下記コマンドを実行し、取得したPR番号とベースブランチを覚えておくこと
bash
gh pr view <ターゲットブランチ> --json number,baseRefName
- •PRがマージ可能か確認する:
bash
gh pr view <PR番号> --json title,state,mergeable,mergeStateStatus,statusCheckRollup,reviewDecision
マージ可能なら次のステップへ、 マージが不可能ならその旨をユーザーに示してこのコマンドは終了 CIチェック中なら終わるまで待機し、完了してから判断。
PRをマージしてローカルに反映
- •PRをマージする
bash
gh pr merge <PR番号> --merge --delete-branch
- •ローカルのGit情報を最新化する
bash
git fetch --prune
- •スタッシュした変更があればどうするか確認する
AskUserQuestionツールを使用してスタッシュ内容をどうするかどうかユーザーに問い合わせてください
- •退避した変更をapply(戻すが削除しない)
- •退避した変更をpop(戻すが削除する)
- •なにもしない
※スタッシュした変更がなければなにもしない
注意事項
- •このコマンドは最後まで必ず実行してください。
- •途中でエラーなどで進行不能な状態に陥った場合はユーザーにその旨を示して終了してください