feat: cascade merge — auto-create PRs to downstream branches after merge (#460) #710
Reference in New Issue
Block a user
Delete Branch "feature/cascade-merge"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary\n\n- Adds configurable cascade merge rules per repository\n- When a PR merges into a source branch, the system auto-creates PRs to each configured target branch\n- Skips if a matching PR already exists (dedup by head+base branch)\n- Hooks into both manual merge and auto-merge notifications\n\n## Implementation\n\n- Model:
CascadeMergeRulewith repo_id, source_branch, target_branch, enabled, auto_merge\n- Migration v362: Createscascade_merge_ruletable\n- Notifier:services/cascade/notifier.go— listens to MergePullRequest/AutoMergePullRequest events\n- API: CRUD at/repos/{owner}/{repo}/cascade_rules(admin only)\n- Init: Registered inrouters/init.go\n\n## API Endpoints\n\n| Method | Path | Description |\n|--------|------|-------------|\n| GET |/api/v1/repos/{owner}/{repo}/cascade_rules| List all rules |\n| POST |/api/v1/repos/{owner}/{repo}/cascade_rules| Create rule |\n| GET |/api/v1/repos/{owner}/{repo}/cascade_rules/{id}| Get rule |\n| PATCH |/api/v1/repos/{owner}/{repo}/cascade_rules/{id}| Edit rule |\n| DELETE |/api/v1/repos/{owner}/{repo}/cascade_rules/{id}| Delete rule |\n\n## Test plan\n\n- [ ] Create cascade rule via API (main → dev)\n- [ ] Merge a PR to main, verify cascade PR auto-created to dev\n- [ ] Verify duplicate PR is not created on second merge\n- [ ] Verify disabled rules are skipped\n- [ ] Verify rule CRUD operations work correctly\n\nCloses #460\n\nhttps://claude.ai/code/session_011AAFzotGMf3ayvXhEmStCdAdds configurable cascade rules per repo. When a PR merges into a source branch, the system auto-creates PRs to each configured target branch. Skips if a matching PR already exists. - Model: CascadeMergeRule (repo_id, source, target, enabled, auto_merge) - Migration v362 creates cascade_merge_rule table - Notifier hooks into MergePullRequest/AutoMergePullRequest events - API: CRUD at /repos/{owner}/{repo}/cascade_rules (admin only) Claude-Session: https://claude.ai/code/session_011AAFzotGMf3ayvXhEmStCd