Class: Gitlab::GithubImport::Stage::ImportPullRequestsWorker
- Inherits:
-
Object
- Object
- Gitlab::GithubImport::Stage::ImportPullRequestsWorker
- Includes:
- ApplicationWorker, Queue, Gitlab::GithubImport::StageMethods
- Defined in:
- app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb
Overview
rubocop:disable Scalability/IdempotentWorker
Constant Summary
Constants included from ApplicationWorker
ApplicationWorker::LOGGING_EXTRA_KEY, ApplicationWorker::SAFE_PUSH_BULK_LIMIT
Constants included from Loggable
Constants included from WorkerAttributes
WorkerAttributes::DEFAULT_DATA_CONSISTENCY, WorkerAttributes::DEFAULT_DEFER_DELAY, WorkerAttributes::NAMESPACE_WEIGHTS, WorkerAttributes::VALID_DATA_CONSISTENCIES, WorkerAttributes::VALID_RESOURCE_BOUNDARIES, WorkerAttributes::VALID_URGENCIES
Instance Method Summary collapse
-
#import(client, project) ⇒ Object
client - An instance of Gitlab::GithubImport::Client.
Methods included from Gitlab::GithubImport::StageMethods
#find_project, #perform, #try_import
Methods included from Loggable
Methods included from SidekiqVersioning::Worker
Methods included from WorkerContext
Instance Method Details
#import(client, project) ⇒ Object
client - An instance of Gitlab::GithubImport::Client. project - An instance of Project.
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 |
# File 'app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb', line 17 def import(client, project) info(project.id, message: "starting importer", importer: 'Importer::PullRequestsImporter') # If a user creates a new merge request while the import is in progress, GitLab can assign an IID # to this merge request that already exists for a GitHub Pull Request. # The workaround is to allocate IIDs before starting the importer. allocate_merge_requests_internal_id!(project, client) waiter = Importer::PullRequestsImporter .new(project, client) .execute project.import_state.refresh_jid_expiration AdvanceStageWorker.perform_async( project.id, { waiter.key => waiter.jobs_remaining }, :collaborators ) rescue StandardError => e Gitlab::Import::ImportFailureService.track( project_id: project.id, error_source: self.class.name, exception: e, fail_import: abort_on_failure, metrics: true ) raise(e) end |