diff options
Diffstat (limited to 'app/serializers/import/manifest_provider_repo_entity.rb')
-rw-r--r-- | app/serializers/import/manifest_provider_repo_entity.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/app/serializers/import/manifest_provider_repo_entity.rb b/app/serializers/import/manifest_provider_repo_entity.rb new file mode 100644 index 00000000000..5da9aae80a8 --- /dev/null +++ b/app/serializers/import/manifest_provider_repo_entity.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class Import::ManifestProviderRepoEntity < Import::BaseProviderRepoEntity + expose :id + expose :full_name, override: true do |repo| + repo[:url] + end + + expose :provider_link, override: true do |repo| + repo[:url] + end + + expose :target do |repo, options| + import_project_target(options[:group_full_path], repo[:path], options[:request].current_user) + end + + private + + def import_project_target(owner, name, user) + namespace = user.can_create_group? ? owner : user.namespace_path + "#{namespace}/#{name}" + end +end |