Class: Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker

Inherits:
Object
  • Object
show all
Includes:
ApplicationWorker, Queue, Gitlab::GithubImport::StageMethods
Defined in:
app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_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

Loggable::ANONYMOUS

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

Methods included from Gitlab::GithubImport::StageMethods

#abort_on_failure, #find_project, #perform, #try_import

Methods included from Loggable

#build_structured_payload

Methods included from SidekiqVersioning::Worker

#job_version

Methods included from WorkerContext

#with_context

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
# File 'app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb', line 17

def import(client, project)
  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, waiters, :issue_events)
end

#importers(project) ⇒ Object

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.



29
30
31
32
33
34
# File 'app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb', line 29

def importers(project)
  [
    Importer::IssuesImporter,
    diff_notes_importer(project)
  ]
end