diff options
Diffstat (limited to 'app/workers/gitlab/github_import/stage')
-rw-r--r-- | app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb | 28 | ||||
-rw-r--r-- | app/workers/gitlab/github_import/stage/import_notes_worker.rb | 24 |
2 files changed, 39 insertions, 13 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 diff --git a/app/workers/gitlab/github_import/stage/import_notes_worker.rb b/app/workers/gitlab/github_import/stage/import_notes_worker.rb index 0160145ffe2..90a1337169f 100644 --- a/app/workers/gitlab/github_import/stage/import_notes_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_notes_worker.rb @@ -15,17 +15,31 @@ module Gitlab # client - An instance of Gitlab::GithubImport::Client. # project - An instance of Project. def import(client, project) - info(project.id, message: "starting importer", importer: 'Importer::NotesImporter') - waiter = Importer::NotesImporter - .new(project, client) - .execute + 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 + end AdvanceStageWorker.perform_async( project.id, - { waiter.key => waiter.jobs_remaining }, + waiters, :lfs_objects ) end + + def importers(project) + if project.group.present? && Feature.enabled?(:github_importer_single_endpoint_notes_import, project.group, type: :ops, default_enabled: :yaml) + [ + Importer::SingleEndpointMergeRequestNotesImporter, + Importer::SingleEndpointIssueNotesImporter + ] + else + [ + Importer::NotesImporter + ] + end + end end end end |