| name | merge-pr |
| description | Verify CI and merge one pull request with gh pr merge --admin, then clean up its local branch. Use when asked to merge a PR after safety checks. |
| targets | ["*"] |
Merge Pull Request
Merge a pull request using gh pr merge --admin.
Input
Resolve the pull request number or URL from the user's request.
Step 1: Determine the Target PR
Parse the user's request to identify the PR to merge:
Case A: PR number or URL is provided
- Extract the PR number from the argument
- Examples:
123, #123, https://github.com/owner/repo/pull/123
Case B: No argument provided
Case C: Unable to determine the PR
If the PR cannot be determined (e.g., no PR exists for the current branch, or the argument is ambiguous), ask the user to specify which PR to merge.
Step 2: Verify the PR
Before merging, confirm the PR details:
gh pr view <pr_number> --json number,title,state,mergeable,author,baseRefName,headRefName
Check:
- The PR state is
OPEN
- Display the PR title and number to the user for confirmation
If the PR is not open or not mergeable, inform the user and stop.
Step 3: Check GitHub Actions Workflow Status
Verify that all CI checks have passed before merging:
gh pr checks <pr_number>
Check:
- All workflow checks show
pass status
- No checks are
pending or fail
If any checks have failed or are still running:
- Wait for pending checks to complete
- Investigate failed checks before merging
- Do not merge until all checks pass
Step 4: Merge the PR
Execute the merge command:
gh pr merge <pr_number> --admin --merge
Important: Only merge ONE PR at a time. If multiple PRs are somehow specified, ask the user which single PR to merge.
Step 5: Report Result
After merging:
- Confirm the PR was successfully merged
- Display the merged PR number and title
Step 6: Clean Up Local Branch
If the local branch exists, please clean up the local branch. Execute:
git checkout main && git pull --prune && git branch -d <branch-name>
Where <branch-name> is the head branch name from Step 2 (e.g., fix/octokit-graphql-reserved-query-var).