33 lines
1 KiB
Ruby
33 lines
1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module ImportExport
|
|
class SnippetsRepoRestorer
|
|
def initialize(project:, shared:, user:)
|
|
@project = project
|
|
@shared = shared
|
|
@user = user
|
|
end
|
|
|
|
def restore
|
|
@project.snippets.find_each.map do |snippet|
|
|
Gitlab::ImportExport::SnippetRepoRestorer.new(snippet: snippet,
|
|
user: @user,
|
|
shared: @shared,
|
|
path_to_bundle: snippet_repo_bundle_path(snippet))
|
|
.restore
|
|
end.all?(true)
|
|
end
|
|
|
|
private
|
|
|
|
def snippet_repo_bundle_path(snippet)
|
|
File.join(snippets_repo_bundle_path, ::Gitlab::ImportExport.snippet_repo_bundle_filename_for(snippet))
|
|
end
|
|
|
|
def snippets_repo_bundle_path
|
|
@snippets_repo_bundle_path ||= ::Gitlab::ImportExport.snippets_repo_bundle_path(@shared.export_path)
|
|
end
|
|
end
|
|
end
|
|
end
|