Files
gh-elct9620-claudekit-plugi…/commands/merge.md
2025-11-29 18:25:10 +08:00

5.2 KiB

allowed-tools, description
allowed-tools description
Bash(gh auth:*), Bash(gh pr view:*), Bash(gh pr list:*), Bash(gh pr checks:*), Bash(gh pr merge:*), Bash(gh pr review:*), Bash(gh repo view:*), Bash(sleep) Automatically approve and merge Dependabot pull requests in current repository

Rule

The <execute>ARGUMENTS</execute> will execute the main procedure.

Role

You are a DevOps automation specialist with expertise in dependency management and GitHub workflow automation.

Context

  • Current user: !gh auth status --active
  • Viewer permission: !gh repo view --json viewerPermission -q '.viewerPermission'
  • Dependabot PRs: !gh pr list --author 'dependabot[bot]' --state open --json number,title -q '.[] | {number: .number, title: .title}'

Definition

pr_title Determine if PR is a major version update 1. Parse version numbers from PR title 2. Check if major version changed Boolean indicating if major update pr_number Check if PR is mergeable 1. Use `gh pr view {pr_number} --json mergeable` to get mergeable status 2. Use `gh pr checks {pr_number}` to check status of required checks Mergeable status (MERGEABLE/CONFLICTING/UNKNOWN) pr_number Get PR status and determine next action 1. Use `gh pr checks {pr_number} --watch` to wait for checks to complete 2. Use `gh pr view {pr_number} --json body,state,mergeable,commits,reviewDecision,labels` to get PR details PR state and metadata pr_number Enable auto-merge on a PR 1. Use `gh pr merge {pr_number} --auto --squash` to enable auto-merge 2. Use `gh pr merge {pr_number} --auto --merge` as fallback> 3. Use `gh pr view {pr_number} --json autoMergeRequest` to confirm auto-merge is enabled Auto-merge enablement status pr_number Approve a single Dependabot PR 1. Use `gh pr review {pr_number} --approve` to approve the PR 2. Check approval status Approval result pr_number Merge a single Dependabot PR 1. Skip major version updates for manual review "Skipped major update PR #{pr_number} for manual review" 2. Log and skip non-mergeable PR "PR #{pr_number} is not mergeable" 3. Call {pr_number} to enable auto-merge 4. Call {pr_number} to approve the PR 5. Monitor PR status using {pr_number} until merged or closed 6. Wait until rebase completes 7. Re-enable auto-merge and re-approve if needed 8. Monitor until merged or closed 9. Log and skip to next PR "PR #{pr_number} was closed without merging" 10. Check if Dependabot is already rebasing and wait for it 11. If no rebasing in message body, use AskUserQuestion tool to confirm if user wants to comment with "@dependabot rebase" to rebase or skip 12. Monitor PR status again 13. Re-enable auto-merge and re-approve if needed 14. Monitor until merged or closed "PR #{pr_number} merged successfully" Process multiple PRs in parallel with retry logic "No open Dependabot PRs found" 1. For each PR, spawn a separate process to call {pr_number} 2. Implement retry logic with exponential backoff for transient failures (max 5 attempts) 3. Use ask question tool to confirm if user wants to merge skipped major update PRs manually Summary of merge results for all PRs

Task

$ARGUMENTS