summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2016-02-17 17:16:34 +0000
committerDouwe Maan <douwe@gitlab.com>2016-02-17 17:16:34 +0000
commit879d66b6ab5cfd75e9b126f825b2e165b48a9ff1 (patch)
tree1bd480f104a88c3a4b63f55f1ac38b3924fd6f88 /app
parenta4ffdf922da488b2f04e81f5fc29243413e42cd3 (diff)
parent64d8a38b54500e4c359f510c0ee15ab8fadc9f18 (diff)
downloadgitlab-ce-879d66b6ab5cfd75e9b126f825b2e165b48a9ff1.tar.gz
Merge branch 'git-archive-refactor' into 'master'
Refactor 'git archive' hand-off to gitlab-workhorse We have a nicer way now to hand off HTTP responses to gitlab-workhorse. Companion MR: https://gitlab.com/gitlab-org/gitlab-workhorse/merge_requests/36 See merge request !2675
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects/repositories_controller.rb4
-rw-r--r--app/services/archive_repository_service.rb23
2 files changed, 3 insertions, 24 deletions
diff --git a/app/controllers/projects/repositories_controller.rb b/app/controllers/projects/repositories_controller.rb
index ba9aea1c165..5c7614cfbaf 100644
--- a/app/controllers/projects/repositories_controller.rb
+++ b/app/controllers/projects/repositories_controller.rb
@@ -11,7 +11,9 @@ class Projects::RepositoriesController < Projects::ApplicationController
end
def archive
- render json: ArchiveRepositoryService.new(@project, params[:ref], params[:format]).execute
+ RepositoryArchiveCacheWorker.perform_async
+ headers.store(*Gitlab::Workhorse.send_git_archive(@project, params[:ref], params[:format]))
+ head :ok
rescue => ex
logger.error("#{self.class.name}: #{ex}")
return git_not_found!
diff --git a/app/services/archive_repository_service.rb b/app/services/archive_repository_service.rb
deleted file mode 100644
index 2160bf13e6d..00000000000
--- a/app/services/archive_repository_service.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-class ArchiveRepositoryService
- attr_reader :project, :ref, :format
-
- def initialize(project, ref, format)
- format ||= 'tar.gz'
- @project, @ref, @format = project, ref, format.downcase
- end
-
- def execute(options = {})
- RepositoryArchiveCacheWorker.perform_async
-
- metadata = project.repository.archive_metadata(ref, storage_path, format)
- raise "Repository or ref not found" if metadata.empty?
-
- metadata
- end
-
- private
-
- def storage_path
- Gitlab.config.gitlab.repository_downloads_path
- end
-end