diff options
Diffstat (limited to 'app/workers/gitlab/github_import/stage')
9 files changed, 79 insertions, 4 deletions
diff --git a/app/workers/gitlab/github_import/stage/finish_import_worker.rb b/app/workers/gitlab/github_import/stage/finish_import_worker.rb index 73699a74a4a..058e1a0853d 100644 --- a/app/workers/gitlab/github_import/stage/finish_import_worker.rb +++ b/app/workers/gitlab/github_import/stage/finish_import_worker.rb @@ -20,12 +20,15 @@ module Gitlab def report_import_time(project) duration = Time.zone.now - project.created_at - path = project.full_path - histogram.observe({ project: path }, duration) + histogram.observe({ project: project.full_path }, duration) counter.increment - logger.info("GitHub importer finished for #{path} in #{duration.round(2)} seconds") + info( + project.id, + message: "GitHub project import finished", + duration_s: duration.round(2) + ) end def histogram diff --git a/app/workers/gitlab/github_import/stage/import_base_data_worker.rb b/app/workers/gitlab/github_import/stage/import_base_data_worker.rb index 11c2a2ac9b4..202bb335ca1 100644 --- a/app/workers/gitlab/github_import/stage/import_base_data_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_base_data_worker.rb @@ -20,6 +20,7 @@ module Gitlab # project - An instance of Project. def import(client, project) IMPORTERS.each do |klass| + info(project.id, message: "starting importer", importer: klass.name) klass.new(project, client).execute end 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 68b6e159fa4..486057804b4 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 @@ -19,6 +19,7 @@ module Gitlab # project - An instance of Project. def import(client, project) waiters = IMPORTERS.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 diff --git a/app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb b/app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb index a19df399969..de2a7f9fc29 100644 --- a/app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb @@ -16,6 +16,8 @@ module Gitlab # project - An instance of Project. def import(project) + info(project.id, message: "starting importer", importer: 'Importer::LfsObjectsImporter') + waiter = Importer::LfsObjectsImporter .new(project, nil) .execute 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 49b9821cd45..e1da26a9d48 100644 --- a/app/workers/gitlab/github_import/stage/import_notes_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_notes_worker.rb @@ -11,6 +11,7 @@ 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 diff --git a/app/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker.rb b/app/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker.rb new file mode 100644 index 00000000000..3e15c346659 --- /dev/null +++ b/app/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module Gitlab + module GithubImport + module Stage + class ImportPullRequestsMergedByWorker # rubocop:disable Scalability/IdempotentWorker + include ApplicationWorker + include GithubImport::Queue + include StageMethods + + # client - An instance of Gitlab::GithubImport::Client. + # project - An instance of Project. + def import(client, project) + waiter = Importer::PullRequestsMergedByImporter + .new(project, client) + .execute + + project.import_state.refresh_jid_expiration + + AdvanceStageWorker.perform_async( + project.id, + { waiter.key => waiter.jobs_remaining }, + :pull_request_reviews + ) + end + end + end + end +end diff --git a/app/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker.rb b/app/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker.rb new file mode 100644 index 00000000000..0809d0b7c29 --- /dev/null +++ b/app/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module Gitlab + module GithubImport + module Stage + class ImportPullRequestsReviewsWorker # rubocop:disable Scalability/IdempotentWorker + include ApplicationWorker + include GithubImport::Queue + include StageMethods + + # client - An instance of Gitlab::GithubImport::Client. + # project - An instance of Project. + def import(client, project) + waiter = + if Feature.enabled?(:github_import_pull_request_reviews, project, default_enabled: true) + waiter = Importer::PullRequestsReviewsImporter + .new(project, client) + .execute + + project.import_state.refresh_jid_expiration + + waiter + else + JobWaiter.new + end + + AdvanceStageWorker.perform_async( + project.id, + { waiter.key => waiter.jobs_remaining }, + :issues_and_diff_notes + ) + end + end + end + end +end diff --git a/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb b/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb index 3299db5653b..bf2defa6326 100644 --- a/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb @@ -11,6 +11,7 @@ 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::PullRequestsImporter') waiter = Importer::PullRequestsImporter .new(project, client) .execute @@ -20,7 +21,7 @@ module Gitlab AdvanceStageWorker.perform_async( project.id, { waiter.key => waiter.jobs_remaining }, - :issues_and_diff_notes + :pull_requests_merged_by ) end end diff --git a/app/workers/gitlab/github_import/stage/import_repository_worker.rb b/app/workers/gitlab/github_import/stage/import_repository_worker.rb index cb9ef1cd198..3338f7e58c0 100644 --- a/app/workers/gitlab/github_import/stage/import_repository_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_repository_worker.rb @@ -21,6 +21,7 @@ module Gitlab # expiration time. RefreshImportJidWorker.perform_in_the_future(project.id, jid) + info(project.id, message: "starting importer", importer: 'Importer::RepositoryImporter') importer = Importer::RepositoryImporter.new(project, client) return unless importer.execute |