Module: Gitlab::BitbucketImport::StageMethods

Instance Method Summary collapse

Instance Method Details

#abort_on_failureObject



58
59
60
# File 'app/workers/concerns/gitlab/bitbucket_import/stage_methods.rb', line 58

def abort_on_failure
  false
end

#find_project(id) ⇒ Object



50
51
52
53
54
55
56
# File 'app/workers/concerns/gitlab/bitbucket_import/stage_methods.rb', line 50

def find_project(id)
  # If the project has been marked as failed we want to bail out
  # automatically.
  # rubocop: disable CodeReuse/ActiveRecord
  Project.joins_import_state.where(import_state: { status: :started }).find_by_id(id)
  # rubocop: enable CodeReuse/ActiveRecord
end

#perform(project_id) ⇒ Object

project_id - The ID of the GitLab project to import the data into.



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'app/workers/concerns/gitlab/bitbucket_import/stage_methods.rb', line 29

def perform(project_id)
  info(project_id, message: 'starting stage')

  project = find_project(project_id)

  return unless project

  import(project)

  info(project_id, message: 'stage finished')
rescue StandardError => e
  Gitlab::Import::ImportFailureService.track(
    project_id: project_id,
    exception: e,
    error_source: self.class.name,
    fail_import: abort_on_failure
  )

  raise(e)
end