Claude Code Plugins

Community-maintained marketplace

Feedback

gh-batch-merge-by-labels

@mvillmow/ml-odyssey
6
0

Batch merge multiple PRs by label (e.g., all 'ready-to-merge' PRs). Use when you have multiple approved PRs to merge.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name gh-batch-merge-by-labels
description Batch merge multiple PRs by label (e.g., all 'ready-to-merge' PRs). Use when you have multiple approved PRs to merge.
category github

Batch Merge PRs by Label

Merge multiple PRs at once based on label matching.

When to Use

  • Multiple PRs are ready for merge with same status label
  • Automating merge of dependent chain of PRs
  • Merging all "ready-to-merge" or "approved" PRs
  • Batch processing end-of-sprint or release merges
  • Reducing manual merge overhead

Quick Reference

# List PRs with specific label
gh pr list --label "ready-to-merge" --state open

# Merge single PR
gh pr merge <pr> --squash --delete-branch

# Get PR numbers for batch merge
gh pr list --label "ready-to-merge" --json number --jq '.[].number'

# Merge all PRs with label (requires loop)
for pr in $(gh pr list --label "ready-to-merge" --json number --jq '.[].number'); do
  gh pr merge "$pr" --squash --delete-branch
done

Workflow

  1. Query PRs: Find all PRs with target label
  2. Verify each: Check CI status and approvals for each PR
  3. Check dependencies: Ensure no conflicts between PRs to merge
  4. Sort by order: Merge in dependency order if applicable
  5. Execute merges: Merge each PR in sequence
  6. Verify success: Confirm all PRs merged successfully
  7. Report results: Summary of merged PRs

Merge Options

Squash Merge (recommended):

  • Combines all commits into single commit
  • Clean git history
  • --squash flag enables this

Create Merge Commit:

  • Preserves all commits
  • Clear merge history
  • Default behavior without --squash

Rebase and Merge:

  • Linear history
  • --rebase flag enables this
  • Good for feature branches

Safety Checks

Before batch merging:

  1. CI Status: All checks passing
  2. Approvals: Required number of approvals met
  3. Conflicts: No merge conflicts detected
  4. Dependencies: No blocked dependencies
  5. Protected rules: All branch protection rules satisfied

Output Format

Report batch merge results with:

  1. Total PRs - Count of PRs to merge
  2. Merge Summary - PR number, title, status
  3. Success Count - Number successfully merged
  4. Failed Count - Number that failed to merge
  5. Errors - Why any PRs failed

Error Handling

Problem Solution
CI failing Skip that PR, check analyze-ci-failure-logs
Merge conflict Resolve manually, cannot batch merge
No permissions Check gh auth status and repo access
Branch protection Verify all required rules met
Network error Retry with exponential backoff

References

  • See gh-review-pr for PR review checklist
  • See verify-pr-ready skill for pre-merge validation
  • See CLAUDE.md for PR linking requirements