Skip to content

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.rb
  • ee/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

  1. 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
  2. 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
  3. 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
  4. Integration

    • Ensure the service integrates with the event-based architecture
    • Subscribe to MergeRequestPreparedEvent when 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

Edited by 🤖 GitLab Bot 🤖