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

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

Instance Method Summary collapse

Methods included from PushPlaceholderReferences

#push_refs_with_ids, #push_with_composite_key, #push_with_record

Constructor Details

#initialize(review_request, project, client) ⇒ ReviewRequestImporter

Returns a new instance of ReviewRequestImporter.



11
12
13
14
15
16
# 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)
  @mapper = Gitlab::GithubImport::ContributionsMapper.new(project)
end

Instance Method Details

#executeObject



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

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
    )

    next unless mapper.user_mapping_enabled?

    push_with_record(reviewer, :user_id, user&.id, mapper.user_mapper)
  rescue PG::UniqueViolation, ActiveRecord::RecordNotUnique
  end
end