[go: up one dir, main page]

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).

⚠️ This is the first shippable phase - can deploy and start dogfooding!

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

  1. Deploy to staging with flag disabled
  2. Enable flag for test project
  3. Verify todos are resolved after merge
  4. Deploy to production (flag disabled)
  5. Enable for gitlab-org projects (dogfooding)

Estimated Effort: 2 days