45 lines
851 B
Ruby
45 lines
851 B
Ruby
|
# 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
|
||
|
Gitlab::Import::SetAsyncJid.set_jid(project)
|
||
|
schedule_first_tasks_page
|
||
|
|
||
|
true
|
||
|
rescue => e
|
||
|
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
|