diff options
Diffstat (limited to 'app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb')
-rw-r--r-- | app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb b/app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb index c33836e20d1..5188bda03e2 100644 --- a/app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb @@ -12,17 +12,10 @@ module Gitlab include GithubImport::Queue include StageMethods - # The importers to run in this stage. Issues can't be imported earlier - # on as we also use these to enrich pull requests with assigned labels. - IMPORTERS = [ - Importer::IssuesImporter, - Importer::DiffNotesImporter - ].freeze - # client - An instance of Gitlab::GithubImport::Client. # project - An instance of Project. def import(client, project) - waiters = IMPORTERS.each_with_object({}) do |klass, hash| + waiters = importers(project).each_with_object({}) do |klass, hash| info(project.id, message: "starting importer", importer: klass.name) waiter = klass.new(project, client).execute hash[waiter.key] = waiter.jobs_remaining @@ -30,6 +23,25 @@ module Gitlab AdvanceStageWorker.perform_async(project.id, waiters, :notes) end + + # The importers to run in this stage. Issues can't be imported earlier + # on as we also use these to enrich pull requests with assigned labels. + def importers(project) + [ + Importer::IssuesImporter, + diff_notes_importer(project) + ] + end + + private + + def diff_notes_importer(project) + if project.group.present? && Feature.enabled?(:github_importer_single_endpoint_notes_import, project.group, type: :ops, default_enabled: :yaml) + Importer::SingleEndpointDiffNotesImporter + else + Importer::DiffNotesImporter + end + end end end end |