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

destroy_rollback_service.rb « projects « services « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 7f0ca63a40669382fff15588a807434281cb9785 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# frozen_string_literal: true

module Projects
  class DestroyRollbackService < BaseService
    include Gitlab::ShellAdapter

    def execute
      return unless project

      Projects::ForksCountService.new(project).delete_cache

      unless rollback_repository(project.repository)
        raise_error(s_('DeleteProject|Failed to restore project repository. Please contact the administrator.'))
      end

      unless rollback_repository(project.wiki.repository)
        raise_error(s_('DeleteProject|Failed to restore wiki repository. Please contact the administrator.'))
      end
    end

    private

    def rollback_repository(repository)
      return true unless repository

      result = Repositories::DestroyRollbackService.new(repository).execute

      result[:status] == :success
    end
  end
end