Class: Gitlab::GithubImport::Stage::ImportRepositoryWorker
- Inherits:
-
Object
- Object
- Gitlab::GithubImport::Stage::ImportRepositoryWorker
- Includes:
- ApplicationWorker, Queue, Gitlab::GithubImport::StageMethods
- Defined in:
- app/workers/gitlab/github_import/stage/import_repository_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
- #abort_on_failure ⇒ Object
- #counter ⇒ Object
-
#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
#abort_on_failure ⇒ Object
57 58 59 |
# File 'app/workers/gitlab/github_import/stage/import_repository_worker.rb', line 57 def abort_on_failure true end |
#counter ⇒ Object
50 51 52 53 54 55 |
# File 'app/workers/gitlab/github_import/stage/import_repository_worker.rb', line 50 def counter Gitlab::Metrics.counter( :github_importer_imported_repositories, 'The number of imported GitHub repositories' ) end |
#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 47 48 |
# File 'app/workers/gitlab/github_import/stage/import_repository_worker.rb', line 17 def import(client, project) # In extreme cases it's possible for a clone to take more than the # import job expiration time. To work around this we schedule a # separate job that will periodically run and refresh the import # expiration time. RefreshImportJidWorker.perform_in_the_future(project.id, jid) info(project.id, message: "starting importer", importer: 'Importer::RepositoryImporter') # If a user creates an issue while the import is in progress, this can lead to an import failure. # The workaround is to allocate IIDs before starting the importer. allocate_issues_internal_id!(project, client) importer = Importer::RepositoryImporter.new(project, client) importer.execute counter.increment ImportBaseDataWorker.perform_async(project.id) 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 |