Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/serializers/import')
-rw-r--r--app/serializers/import/base_provider_repo_entity.rb8
-rw-r--r--app/serializers/import/bitbucket_provider_repo_entity.rb15
-rw-r--r--app/serializers/import/bitbucket_server_provider_repo_entity.rb7
-rw-r--r--app/serializers/import/fogbugz_provider_repo_entity.rb17
-rw-r--r--app/serializers/import/githubish_provider_repo_entity.rb19
-rw-r--r--app/serializers/import/gitlab_provider_repo_entity.rb19
-rw-r--r--app/serializers/import/provider_repo_serializer.rb23
7 files changed, 108 insertions, 0 deletions
diff --git a/app/serializers/import/base_provider_repo_entity.rb b/app/serializers/import/base_provider_repo_entity.rb
new file mode 100644
index 00000000000..88a831a1686
--- /dev/null
+++ b/app/serializers/import/base_provider_repo_entity.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+class Import::BaseProviderRepoEntity < Grape::Entity
+ expose :id
+ expose :full_name
+ expose :sanitized_name
+ expose :provider_link
+end
diff --git a/app/serializers/import/bitbucket_provider_repo_entity.rb b/app/serializers/import/bitbucket_provider_repo_entity.rb
new file mode 100644
index 00000000000..e8c647d407e
--- /dev/null
+++ b/app/serializers/import/bitbucket_provider_repo_entity.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class Import::BitbucketProviderRepoEntity < Import::BaseProviderRepoEntity
+ expose :id, override: true do |repo|
+ repo.full_name
+ end
+
+ expose :sanitized_name, override: true do |repo|
+ repo.name.gsub(/[^\s\w.-]/, '')
+ end
+
+ expose :provider_link, override: true do |repo, options|
+ repo.clone_url
+ end
+end
diff --git a/app/serializers/import/bitbucket_server_provider_repo_entity.rb b/app/serializers/import/bitbucket_server_provider_repo_entity.rb
new file mode 100644
index 00000000000..d818cac46cd
--- /dev/null
+++ b/app/serializers/import/bitbucket_server_provider_repo_entity.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class Import::BitbucketServerProviderRepoEntity < Import::BitbucketProviderRepoEntity
+ expose :provider_link, override: true do |repo, options|
+ repo.browse_url
+ end
+end
diff --git a/app/serializers/import/fogbugz_provider_repo_entity.rb b/app/serializers/import/fogbugz_provider_repo_entity.rb
new file mode 100644
index 00000000000..d420de141e1
--- /dev/null
+++ b/app/serializers/import/fogbugz_provider_repo_entity.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class Import::FogbugzProviderRepoEntity < Import::BaseProviderRepoEntity
+ include ImportHelper
+
+ expose :full_name, override: true do |repo|
+ repo.name
+ end
+
+ expose :sanitized_name, override: true do |repo|
+ repo.safe_name
+ end
+
+ expose :provider_link, override: true do |repo, options|
+ provider_project_link_url(options[:provider_url], repo.path)
+ end
+end
diff --git a/app/serializers/import/githubish_provider_repo_entity.rb b/app/serializers/import/githubish_provider_repo_entity.rb
new file mode 100644
index 00000000000..d3e323053f9
--- /dev/null
+++ b/app/serializers/import/githubish_provider_repo_entity.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class Import::GithubishProviderRepoEntity < Import::BaseProviderRepoEntity
+ include ImportHelper
+
+ expose :sanitized_name, override: true do |provider_repo|
+ sanitize_project_name(provider_repo[:name])
+ end
+
+ expose :provider_link, override: true do |provider_repo, options|
+ provider_project_link_url(options[:provider_url], provider_repo[:full_name])
+ end
+
+ private
+
+ def owner_name(provider_repo, provider)
+ provider_repo.dig(:owner, :login) if provider == :github
+ end
+end
diff --git a/app/serializers/import/gitlab_provider_repo_entity.rb b/app/serializers/import/gitlab_provider_repo_entity.rb
new file mode 100644
index 00000000000..5fecd0a1cd3
--- /dev/null
+++ b/app/serializers/import/gitlab_provider_repo_entity.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class Import::GitlabProviderRepoEntity < Import::BaseProviderRepoEntity
+ expose :id, override: true do |repo|
+ repo["id"]
+ end
+
+ expose :full_name, override: true do |repo|
+ repo["path_with_namespace"]
+ end
+
+ expose :sanitized_name, override: true do |repo|
+ repo["path"]
+ end
+
+ expose :provider_link, override: true do |repo|
+ repo["web_url"]
+ end
+end
diff --git a/app/serializers/import/provider_repo_serializer.rb b/app/serializers/import/provider_repo_serializer.rb
new file mode 100644
index 00000000000..5a9549d79aa
--- /dev/null
+++ b/app/serializers/import/provider_repo_serializer.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class Import::ProviderRepoSerializer < BaseSerializer
+ def represent(repo, opts = {})
+ entity =
+ case opts[:provider]
+ when :fogbugz
+ Import::FogbugzProviderRepoEntity
+ when :github, :gitea
+ Import::GithubishProviderRepoEntity
+ when :bitbucket
+ Import::BitbucketProviderRepoEntity
+ when :bitbucket_server
+ Import::BitbucketServerProviderRepoEntity
+ when :gitlab
+ Import::GitlabProviderRepoEntity
+ else
+ raise NotImplementedError
+ end
+
+ super(repo, opts, entity)
+ end
+end