summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/models/project.rb2
-rw-r--r--app/services/projects/housecleaning_service.rb40
-rw-r--r--app/services/projects/import_export/cleanup_service.rb42
3 files changed, 41 insertions, 43 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 72da4e8eb2e..c0060504d74 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -372,7 +372,7 @@ class Project < ActiveRecord::Base
if Gitlab::ImportSources.importer_names.include?(project.import_type) && project.repo_exists?
project.run_after_commit do
begin
- Projects::ImportExport::CleanupService.new(project).execute
+ Projects::HousecleaningService.new(project).execute
rescue Projects::HousekeepingService::LeaseTaken => e
Rails.logger.info("Could not perform housekeeping for project #{project.full_path} (#{project.id}): #{e}")
end
diff --git a/app/services/projects/housecleaning_service.rb b/app/services/projects/housecleaning_service.rb
new file mode 100644
index 00000000000..d5cf8478e13
--- /dev/null
+++ b/app/services/projects/housecleaning_service.rb
@@ -0,0 +1,40 @@
+module Projects
+ class HousecleaningService
+ def self.reserved_refs_names
+ %w[heads tags merge-requests keep-around environments]
+ end
+
+ def self.reserved_refs_regexp
+ names = reserved_refs_names.map(&Regexp.method(:escape)).join('|')
+
+ %r{\Arefs/(?:#{names})/}
+ end
+
+ def initialize(project)
+ @project = project
+ end
+
+ # This could raise Projects::HousekeepingService::LeaseTaken
+ def execute
+ Projects::HousekeepingService.new(@project).execute do
+ garbage_refs.each(&rugged.references.method(:delete))
+ end
+ end
+
+ private
+
+ def garbage_refs
+ @garbage_refs ||= begin
+ reserved_refs_regexp = self.class.reserved_refs_regexp
+
+ rugged.references.reject do |ref|
+ ref.name =~ reserved_refs_regexp
+ end
+ end
+ end
+
+ def rugged
+ @rugged ||= @project.repository.rugged
+ end
+ end
+end
diff --git a/app/services/projects/import_export/cleanup_service.rb b/app/services/projects/import_export/cleanup_service.rb
deleted file mode 100644
index 25bff3468a9..00000000000
--- a/app/services/projects/import_export/cleanup_service.rb
+++ /dev/null
@@ -1,42 +0,0 @@
-module Projects
- module ImportExport
- class CleanupService
- def self.reserved_refs_names
- %w[heads tags merge-requests keep-around environments]
- end
-
- def self.reserved_refs_regexp
- names = reserved_refs_names.map(&Regexp.method(:escape)).join('|')
-
- %r{\Arefs/(?:#{names})/}
- end
-
- def initialize(project)
- @project = project
- end
-
- # This could raise Projects::HousekeepingService::LeaseTaken
- def execute
- Projects::HousekeepingService.new(@project).execute do
- garbage_refs.each(&rugged.references.method(:delete))
- end
- end
-
- private
-
- def garbage_refs
- @garbage_refs ||= begin
- reserved_refs_regexp = self.class.reserved_refs_regexp
-
- rugged.references.reject do |ref|
- ref.name =~ reserved_refs_regexp
- end
- end
- end
-
- def rugged
- @rugged ||= @project.repository.rugged
- end
- end
- end
-end