Auto-resolve stale todos when MR is merged
Goal
Hook up the worker to MR merge events. First user-facing change (but behind feature flag disabled by default).
Related to #20637 (closed)
Depends on: Phase 1a, Phase 1b
Implementation Details
File: app/services/merge_requests/post_merge_service.rb
Add worker invocation after existing todo resolution, with feature flag check.
Test Coverage Required
Location: spec/services/merge_requests/post_merge_service_spec.rb
-
Worker enqueued when flag enabled -
Worker NOT enqueued when flag disabled -
Todos resolved for all affected users (with :sidekiq_inline) -
MENTIONED todos remain pending -
DIRECTLY_ADDRESSED todos remain pending
Location: spec/requests/api/merge_requests_spec.rb
-
API merge endpoint resolves todos when flag enabled
Files to Change
-
app/services/merge_requests/post_merge_service.rb -
spec/services/merge_requests/post_merge_service_spec.rb -
spec/requests/api/merge_requests_spec.rb
Acceptance Criteria
-
Worker enqueued when MR merged (flag enabled) -
Worker NOT enqueued when flag disabled -
Todos resolved for ALL users, not just actor -
Only target action types resolved -
No N+1 queries -
All tests pass
Deployment Plan
- Deploy to staging with flag disabled
- Enable flag for test project
- Verify todos are resolved after merge
- Deploy to production (flag disabled)
- Enable for gitlab-org projects (dogfooding)
Estimated Effort: 2 days