1# frozen_string_literal: true 2 3class MergeRequests::HandleAssigneesChangeWorker 4 include ApplicationWorker 5 6 data_consistency :always 7 8 sidekiq_options retry: 3 9 10 feature_category :code_review 11 urgency :high 12 deduplicate :until_executed 13 idempotent! 14 15 def perform(merge_request_id, user_id, old_assignee_ids, options = {}) 16 merge_request = MergeRequest.find(merge_request_id) 17 user = User.find(user_id) 18 19 old_assignees = User.id_in(old_assignee_ids) 20 21 ::MergeRequests::HandleAssigneesChangeService 22 .new(project: merge_request.target_project, current_user: user) 23 .execute(merge_request, old_assignees, options) 24 rescue ActiveRecord::RecordNotFound 25 end 26end 27