AgentSkillsCN

merge-pr

合并 Pull Request,并检出到目标分支。

SKILL.md
--- frontmatter
name: merge-pr
description: PRをマージして、マージ先のブランチへをチェックアウトします。
argument-hint: [-b <target-branch>]
model: sonnet
context: fork

1. 引数のパース

引数は以下のオプションを受け付けます:

  • -b <target-branch>: ターゲットブランチを指定(デフォルト: $(git branch --show-current)で取得した現在のブランチ)

未コミットな変更がないか探す

  1. 現在のGitの状態を確認し、未コミットな変更がないか確認する

  2. 未コミットの変更がある場合は下記に従う

    • AskUserQuestionツールを使用して未コミットな変更をどう扱うか下記の選択肢を示す
      • 未コミットの変更をStashする
      • 未コミットの変更をDiscardする
  3. 2でユーザーが選択した選択肢があれば、それにしたがってGit操作を進める

PRを探して状態を確認する

  1. ターゲットブランチを対象として出されているPRを探す:
bash
gh pr view <ターゲットブランチ>

もし複数のPRが見つかった場合は AskUserQuestionツールを使用してどのPRを対象とするか確認する PRが確定したら下記コマンドを実行し、取得したPR番号とベースブランチを覚えておくこと

bash
gh pr view <ターゲットブランチ> --json number,baseRefName
  1. PRがマージ可能か確認する:
bash
gh pr view <PR番号> --json title,state,mergeable,mergeStateStatus,statusCheckRollup,reviewDecision

マージ可能なら次のステップへ、 マージが不可能ならその旨をユーザーに示してこのコマンドは終了 CIチェック中なら終わるまで待機し、完了してから判断。

PRをマージしてローカルに反映

  1. PRをマージする
bash
gh pr merge <PR番号> --merge --delete-branch
  1. ローカルのGit情報を最新化する
bash
git fetch --prune
  1. スタッシュした変更があればどうするか確認する

AskUserQuestionツールを使用してスタッシュ内容をどうするかどうかユーザーに問い合わせてください

  • 退避した変更をapply(戻すが削除しない)
  • 退避した変更をpop(戻すが削除する)
  • なにもしない

※スタッシュした変更がなければなにもしない

注意事項

  • このコマンドは最後まで必ず実行してください。
  • 途中でエラーなどで進行不能な状態に陥った場合はユーザーにその旨を示して終了してください