diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 11:18:50 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 11:18:50 +0000 |
commit | 8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781 (patch) | |
tree | a77e7fe7a93de11213032ed4ab1f33a3db51b738 /app/serializers/import | |
parent | 00b35af3db1abfe813a778f643dad221aad51fca (diff) | |
download | gitlab-ce-8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781.tar.gz |
Add latest changes from gitlab-org/gitlab@13-1-stable-ee
Diffstat (limited to 'app/serializers/import')
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 |