2019-09-04 21:01:54 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Gitlab
|
|
|
|
module PhabricatorImport
|
|
|
|
class Importer
|
|
|
|
def self.async?
|
|
|
|
true
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.imports_repository?
|
|
|
|
# This does not really import a repository, but we want to skip all
|
|
|
|
# repository related tasks in the `Projects::ImportService`
|
|
|
|
true
|
|
|
|
end
|
|
|
|
|
|
|
|
def initialize(project)
|
|
|
|
@project = project
|
|
|
|
end
|
|
|
|
|
|
|
|
def execute
|
2020-04-22 19:07:51 +05:30
|
|
|
Gitlab::Import::SetAsyncJid.set_jid(project.import_state)
|
2019-09-04 21:01:54 +05:30
|
|
|
schedule_first_tasks_page
|
|
|
|
|
|
|
|
true
|
2021-06-08 01:23:25 +05:30
|
|
|
rescue StandardError => e
|
2019-09-04 21:01:54 +05:30
|
|
|
fail_import(e.message)
|
|
|
|
|
|
|
|
false
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
attr_reader :project
|
|
|
|
|
|
|
|
def schedule_first_tasks_page
|
|
|
|
ImportTasksWorker.schedule(project.id)
|
|
|
|
end
|
|
|
|
|
|
|
|
def fail_import(message)
|
|
|
|
project.import_state.mark_as_failed(message)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|