summaryrefslogtreecommitdiff
path: root/app/workers/merge_requests/handle_assignees_change_worker.rb
blob: 7cf1be51d2359be247db0ac1e7e30dee6fa15825 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# frozen_string_literal: true

class MergeRequests::HandleAssigneesChangeWorker
  include ApplicationWorker

  data_consistency :always

  sidekiq_options retry: 3

  feature_category :code_review
  urgency :high
  deduplicate :until_executed
  idempotent!

  def perform(merge_request_id, user_id, old_assignee_ids, options = {})
    merge_request = MergeRequest.find(merge_request_id)
    user = User.find(user_id)

    old_assignees = User.id_in(old_assignee_ids)

    ::MergeRequests::HandleAssigneesChangeService
      .new(project: merge_request.target_project, current_user: user)
      .execute(merge_request, old_assignees, options)
  rescue ActiveRecord::RecordNotFound
  end
end