mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-15 23:56:09 +10:00
quite a few fixes - import service
This commit is contained in:
@@ -6,11 +6,11 @@ module Gitlab
|
||||
end
|
||||
|
||||
def untar_czf(archive:, dir:)
|
||||
untar_with_options(archive: archive, dir: dir, options: 'czf')
|
||||
tar_with_options(archive: archive, dir: dir, options: 'czf')
|
||||
end
|
||||
|
||||
def untar_cf(archive:, dir:)
|
||||
untar_with_options(archive: archive, dir: dir, options: 'cf')
|
||||
tar_with_options(archive: archive, dir: dir, options: 'cf')
|
||||
end
|
||||
|
||||
def tar_czf(archive:, dir:)
|
||||
@@ -24,13 +24,7 @@ module Gitlab
|
||||
end
|
||||
|
||||
def tar_with_options(archive:, dir:, options:)
|
||||
cmd = %W(tar -#{options} #{archive} -C #{dir})
|
||||
_output, status = Gitlab::Popen.popen(cmd)
|
||||
status.zero?
|
||||
end
|
||||
|
||||
def untar_with_options(archive:, dir:, options:)
|
||||
cmd = %W(tar -#{options} #{archive} -C #{dir})
|
||||
cmd = %W(tar -#{options} #{archive} #{dir})
|
||||
_output, status = Gitlab::Popen.popen(cmd)
|
||||
status.zero?
|
||||
end
|
||||
|
||||
@@ -3,7 +3,7 @@ module Gitlab
|
||||
class ImportService
|
||||
|
||||
def self.execute(*args)
|
||||
new(args).execute
|
||||
new(*args).execute
|
||||
end
|
||||
|
||||
def initialize(archive_file:, owner:, namespace_id:, project_path:)
|
||||
@@ -26,7 +26,7 @@ module Gitlab
|
||||
end
|
||||
|
||||
def project_tree
|
||||
@project_tree ||= Gitlab::ImportExport::ProjectTreeRestorer.new(path: storage_path, user: @current_user)
|
||||
@project_tree ||= Gitlab::ImportExport::ProjectTreeRestorer.new(path: storage_path, user: @current_user, project_path: @project_path)
|
||||
end
|
||||
|
||||
def restore_repo
|
||||
|
||||
@@ -13,6 +13,7 @@ module Gitlab
|
||||
end
|
||||
|
||||
def import
|
||||
FileUtils.mkdir_p(@storage_path)
|
||||
decompress_archive
|
||||
end
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@ module Gitlab
|
||||
class ProjectTreeRestorer
|
||||
attr_reader :project
|
||||
|
||||
def initialize(path:, user:)
|
||||
def initialize(path:, user:, project_path:)
|
||||
@path = File.join(path, 'project.json')
|
||||
@user = user
|
||||
@project_path = project_path
|
||||
end
|
||||
|
||||
def restore
|
||||
@@ -48,6 +49,7 @@ module Gitlab
|
||||
project_params = @tree_hash.reject { |_key, value| value.is_a?(Array) }
|
||||
project = Gitlab::ImportExport::ProjectFactory.create(
|
||||
project_params: project_params, user: @user)
|
||||
project.path = @project_path
|
||||
project.save
|
||||
project.import_start
|
||||
project
|
||||
|
||||
Reference in New Issue
Block a user