MR 7: EE Reviewer Services Split - Extract reviewer update handling from RefreshService
Overview
As part of the RefreshService split initiative (Epic #19377 (closed)), we need to extract EE-specific reviewer update functionality into its own dedicated service and worker.
Scope
This issue covers MR 7 from the split plan:
Files to Create/Modify:
ee/app/services/merge_requests/refresh/reviewer_update_service.rbee/app/workers/merge_requests/refresh/reviewer_update_worker.rb-
ee/app/services/merge_requests/refresh/prepare_merge_request_service.rb(EE extension)
Context
This covers additional EE functionality building on approval services. The reviewer update service will handle reviewer-related operations and updates during merge request refresh cycles.
Requirements
-
Create EE Reviewer Update Service
- Extract reviewer update logic from the main RefreshService
- Implement EE-specific reviewer workflows
- Handle reviewer assignment and notification logic
- Ensure proper error handling and logging
-
Create Reviewer Update Worker
- Implement worker to handle reviewer update operations asynchronously
- Set appropriate urgency level for EE functionality
- Include proper job scheduling and retry logic
- Handle EE license validation
-
Extend EE Prepare Merge Request Service
- Add EE-specific extensions to the preparation service
- Ensure proper integration with reviewer workflows
- Maintain separation between CE and EE functionality
-
Integration
- Ensure the service integrates with the event-based architecture
- Subscribe to
MergeRequestPreparedEventwhen ready - Maintain backward compatibility during transition
- Ensure proper EE/CE separation
Dependencies
- Depends on MR 1 (Foundation - Event and Base Service) -
✅ Completed - Should be implemented after MR 6 (EE Approval Services)
- Requires EE license functionality
- Builds on approval services foundation
Acceptance Criteria
-
EE Reviewer Update service extracts all reviewer-related logic from RefreshService -
Reviewer Update worker handles reviewer operations asynchronously -
EE extension to Prepare Merge Request Service is properly implemented -
All existing EE reviewer functionality continues to work -
Proper EE/CE separation is maintained -
Tests cover the new service and worker (including EE-specific tests) -
Performance impact is measured and acceptable -
EE documentation is updated if needed
Related
- Epic: &19377
- Investigation: #554081 (closed)
- Foundation MR: !201589 (merged)
Edited by 🤖 GitLab Bot 🤖