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/services/projects/update_service.rb')
-rw-r--r--app/services/projects/update_service.rb27
1 files changed, 23 insertions, 4 deletions
diff --git a/app/services/projects/update_service.rb b/app/services/projects/update_service.rb
index 336e887c241..cfcbe42997b 100644
--- a/app/services/projects/update_service.rb
+++ b/app/services/projects/update_service.rb
@@ -61,11 +61,8 @@ module Projects
raise_validation_error(s_('UpdateProject|New visibility level not allowed!'))
end
- if renaming_project_with_container_registry_tags?
- raise_validation_error(s_('UpdateProject|Cannot rename project because it contains container registry tags!'))
- end
-
validate_default_branch_change
+ validate_renaming_project_with_tags
end
def validate_default_branch_change
@@ -92,6 +89,28 @@ module Projects
end
end
+ def validate_renaming_project_with_tags
+ return unless renaming_project_with_container_registry_tags?
+
+ unless Feature.enabled?(:renaming_project_with_tags, project) &&
+ ContainerRegistry::GitlabApiClient.supports_gitlab_api?
+ raise ValidationError, s_('UpdateProject|Cannot rename project because it contains container registry tags!')
+ end
+
+ dry_run = ContainerRegistry::GitlabApiClient.rename_base_repository_path(
+ project.full_path, name: params[:path], dry_run: true)
+
+ return if dry_run == :accepted
+
+ log_error("Dry run failed for renaming project with tags: #{project.full_path}, error: #{dry_run}")
+ raise_validation_error(
+ format(
+ s_("UpdateProject|Cannot rename project, the container registry path rename validation failed: %{error}"),
+ error: dry_run.to_s.titleize
+ )
+ )
+ end
+
def ambiguous_head_documentation_link
url = Rails.application.routes.url_helpers.help_page_path('user/project/repository/branches/index', anchor: 'error-ambiguous-head-branch-exists')