Class: Gitlab::GithubImport::Importer::PullRequests::ReviewRequestImporter

Inherits:
Object
  • Object
show all
Includes:
Utils::StrongMemoize, Import::PlaceholderReferences::Pusher
Defined in:
lib/gitlab/github_import/importer/pull_requests/review_request_importer.rb

Instance Method Summary collapse

Methods included from Import::PlaceholderReferences::Pusher

#map_to_personal_namespace_owner?, #push_reference, #push_reference_with_composite_key, #push_references_by_ids, #user_mapping_enabled?

Constructor Details

#initialize(review_request, project, client) ⇒ ReviewRequestImporter

Returns a new instance of ReviewRequestImporter.



11
12
13
14
15
# File 'lib/gitlab/github_import/importer/pull_requests/review_request_importer.rb', line 11

def initialize(review_request, project, client)
  @review_request = review_request
  @project = project
  @user_finder = UserFinder.new(project, client)
end

Instance Method Details

#executeObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/gitlab/github_import/importer/pull_requests/review_request_importer.rb', line 17

def execute
  review_request.users.each do |user|
    user_id = user_finder.user_id_for(user, ghost: false)

    next unless user_id

    reviewer = MergeRequestReviewer.create!(
      merge_request_id: review_request.merge_request_id,
      user_id: user_id,
      state: MergeRequestReviewer.states['unreviewed'],
      created_at: Time.zone.now
    )

    push_reference(project, reviewer, :user_id, user&.id)
  rescue PG::UniqueViolation, ActiveRecord::RecordNotUnique
  end
end