Claude-skill-registry gh-batch-merge-by-labels
Batch merge multiple PRs by label (e.g., all 'ready-to-merge' PRs). Use when you have multiple approved PRs to merge.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/gh-batch-merge-by-labels" ~/.claude/skills/majiayu000-claude-skill-registry-gh-batch-merge-by-labels && rm -rf "$T"
manifest:
skills/data/gh-batch-merge-by-labels/SKILL.mdsource content
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
- Query PRs: Find all PRs with target label
- Verify each: Check CI status and approvals for each PR
- Check dependencies: Ensure no conflicts between PRs to merge
- Sort by order: Merge in dependency order if applicable
- Execute merges: Merge each PR in sequence
- Verify success: Confirm all PRs merged successfully
- Report results: Summary of merged PRs
Merge Options
Squash Merge (recommended):
- Combines all commits into single commit
- Clean git history
flag enables this--squash
Create Merge Commit:
- Preserves all commits
- Clear merge history
- Default behavior without
--squash
Rebase and Merge:
- Linear history
flag enables this--rebase- Good for feature branches
Safety Checks
Before batch merging:
- CI Status: All checks passing
- Approvals: Required number of approvals met
- Conflicts: No merge conflicts detected
- Dependencies: No blocked dependencies
- Protected rules: All branch protection rules satisfied
Output Format
Report batch merge results with:
- Total PRs - Count of PRs to merge
- Merge Summary - PR number, title, status
- Success Count - Number successfully merged
- Failed Count - Number that failed to merge
- 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