blob: 0a92aee801d03c90ec934cb42f9ce00c2456f57e (
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# frozen_string_literal: true
module Gitlab
module GithubImport
module Importer
module PullRequests
class ReviewRequestsImporter
include ParallelScheduling
BATCH_SIZE = 100
private
def each_object_to_import(&block)
merge_request_collection.each_batch(of: BATCH_SIZE, column: :iid) do |batch|
batch.each do |merge_request|
repo = project.import_source
review_requests = client.pull_request_review_requests(repo, merge_request.iid)
review_requests[:merge_request_id] = merge_request.id
review_requests[:merge_request_iid] = merge_request.iid
yield review_requests
mark_merge_request_imported(merge_request)
end
end
end
def importer_class
ReviewRequestImporter
end
def representation_class
Gitlab::GithubImport::Representation::PullRequests::ReviewRequests
end
def sidekiq_worker_class
Gitlab::GithubImport::PullRequests::ImportReviewRequestWorker
end
def collection_method
:pull_request_review_requests
end
# rubocop:disable CodeReuse/ActiveRecord
def merge_request_collection
project.merge_requests
.where.not(iid: already_imported_merge_requests)
.select(:id, :iid)
end
# rubocop:enable CodeReuse/ActiveRecord
def merge_request_imported_cache_key
"github-importer/pull_requests/#{collection_method}/already-imported/#{project.id}"
end
def already_imported_merge_requests
Gitlab::Cache::Import::Caching.values_from_set(merge_request_imported_cache_key)
end
def mark_merge_request_imported(merge_request)
Gitlab::Cache::Import::Caching.set_add(
merge_request_imported_cache_key,
merge_request.iid
)
end
end
end
end
end
end
|