diff options
Diffstat (limited to 'app/services/projects/destroy_service.rb')
-rw-r--r-- | app/services/projects/destroy_service.rb | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/app/services/projects/destroy_service.rb b/app/services/projects/destroy_service.rb index 95af5a6863f..a73244c6971 100644 --- a/app/services/projects/destroy_service.rb +++ b/app/services/projects/destroy_service.rb @@ -37,7 +37,7 @@ module Projects system_hook_service.execute_hooks_for(project, :destroy) log_info("Project \"#{project.full_path}\" was deleted") - publish_project_deleted_event_for(project) if Feature.enabled?(:publish_project_deleted_event, default_enabled: :yaml) + publish_project_deleted_event_for(project) current_user.invalidate_personal_projects_count @@ -72,7 +72,13 @@ module Projects end def remove_snippets - response = ::Snippets::BulkDestroyService.new(current_user, project.snippets).execute + # We're setting the hard_delete param because we dont need to perform the access checks within the service since + # the user has enough access rights to remove the project and its resources. + response = ::Snippets::BulkDestroyService.new(current_user, project.snippets).execute(hard_delete: true) + + if response.error? + log_error("Snippet deletion failed on #{project.full_path} with the following message: #{response.message}") + end response.success? end @@ -194,6 +200,10 @@ module Projects ::Ci::DestroyPipelineService.new(project, current_user).execute(pipeline) end + project.secure_files.find_each(batch_size: BATCH_SIZE) do |secure_file| # rubocop: disable CodeReuse/ActiveRecord + ::Ci::DestroySecureFileService.new(project, current_user).execute(secure_file) + end + deleted_count = ::CommitStatus.for_project(project).delete_all Gitlab::AppLogger.info( |