feat: issue status presets and cross-org migration (#507) #709
Reference in New Issue
Block a user
Delete Branch "feature/status-presets"
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- 4 built-in status preset templates: default, software-development, support-tickets, bug-tracking\n- API: GET /orgs/{org}/issue-statuses/presets (list), POST .../presets/{name} (apply), POST .../copy/{source_org} (cross-org copy)\n- Web UI: preset dropdown on org issue statuses settings page with confirmation dialog\n- Presets deactivate existing non-required statuses and replace with template entries\n\n## Files changed (9)\n-
models/issues/issue_status.go— preset definitions, ApplyStatusPreset(), CopyStatusesFromOrg()\n-modules/structs/issue.go— StatusPreset, StatusPresetEntry API structs\n-routers/api/v1/org/issue_metadata.go— ListIssueStatusPresets, ApplyIssueStatusPreset, CopyIssueStatusesFromOrg\n-routers/api/v1/api.go— route registration\n-routers/web/org/issue_statuses.go— SettingsIssueStatusesApplyPresetPost handler\n-routers/web/web.go— web route\n-templates/org/settings/issue_statuses.tmpl— preset selector UI\n-options/locale/locale_en-US.json— 5 new locale strings\n-CHANGELOG.md— entry\n\n## Test plan\n- [ ] Visit org settings > issue statuses — preset dropdown visible\n- [ ] Apply each preset — verify statuses replaced correctly\n- [ ] API: GET presets endpoint returns all 4 templates\n- [ ] API: POST apply preset replaces statuses\n- [ ] API: POST copy from another org works\n- [ ] Required statuses (Open/Closed) preserved across apply\n\nhttps://claude.ai/code/session_011AAFzotGMf3ayvXhEmStCd