diff options
Diffstat (limited to 'lib/gitlab/github_import/importer/pull_requests/review_request_importer.rb')
-rw-r--r-- | lib/gitlab/github_import/importer/pull_requests/review_request_importer.rb | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/gitlab/github_import/importer/pull_requests/review_request_importer.rb b/lib/gitlab/github_import/importer/pull_requests/review_request_importer.rb new file mode 100644 index 00000000000..bb51d856d9b --- /dev/null +++ b/lib/gitlab/github_import/importer/pull_requests/review_request_importer.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +module Gitlab + module GithubImport + module Importer + module PullRequests + class ReviewRequestImporter + def initialize(review_request, project, client) + @review_request = review_request + @user_finder = UserFinder.new(project, client) + @issue_finder = IssuableFinder.new(project, client) + end + + def execute + MergeRequestReviewer.bulk_insert!(build_reviewers) + end + + private + + attr_reader :review_request, :user_finder + + def build_reviewers + reviewer_ids = review_request.users.map { |user| user_finder.user_id_for(user) }.compact + + reviewer_ids.map do |reviewer_id| + MergeRequestReviewer.new( + merge_request_id: review_request.merge_request_id, + user_id: reviewer_id, + state: MergeRequestReviewer.states['unreviewed'], + created_at: Time.zone.now + ) + end + end + end + end + end + end +end |