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:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-02-28 03:09:08 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-02-28 03:09:08 +0300
commitf54a50aa826d0eedcf2e56f51462613bc132f826 (patch)
tree7194aca23f9af822ea55966a6f477b3d8d68ee47 /app/services/projects
parentc77fda905a8619b756163c10a75171dc9cfe7084 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services/projects')
-rw-r--r--app/services/projects/destroy_service.rb19
1 files changed, 16 insertions, 3 deletions
diff --git a/app/services/projects/destroy_service.rb b/app/services/projects/destroy_service.rb
index 066d1f1ca72..fd1366d2c4a 100644
--- a/app/services/projects/destroy_service.rb
+++ b/app/services/projects/destroy_service.rb
@@ -47,7 +47,7 @@ module Projects
private
- def trash_repositories!
+ def trash_project_repositories!
unless remove_repository(project.repository)
raise_error(s_('DeleteProject|Failed to remove project repository. Please try again or contact administrator.'))
end
@@ -57,6 +57,18 @@ module Projects
end
end
+ def trash_relation_repositories!
+ unless remove_snippets
+ raise_error(s_('DeleteProject|Failed to remove project snippets. Please try again or contact administrator.'))
+ end
+ end
+
+ def remove_snippets
+ response = Snippets::BulkDestroyService.new(current_user, project.snippets).execute
+
+ response.success?
+ end
+
def remove_repository(repository)
return true unless repository
@@ -95,7 +107,8 @@ module Projects
Project.transaction do
log_destroy_event
- trash_repositories!
+ trash_relation_repositories!
+ trash_project_repositories!
# Rails attempts to load all related records into memory before
# destroying: https://github.com/rails/rails/issues/22510
@@ -103,7 +116,7 @@ module Projects
#
# Exclude container repositories because its before_destroy would be
# called multiple times, and it doesn't destroy any database records.
- project.destroy_dependent_associations_in_batches(exclude: [:container_repositories])
+ project.destroy_dependent_associations_in_batches(exclude: [:container_repositories, :snippets])
project.destroy!
end
end