diff options
| author | Douwe Maan <douwe@gitlab.com> | 2016-02-17 17:16:34 +0000 |
|---|---|---|
| committer | Douwe Maan <douwe@gitlab.com> | 2016-02-17 17:16:34 +0000 |
| commit | 879d66b6ab5cfd75e9b126f825b2e165b48a9ff1 (patch) | |
| tree | 1bd480f104a88c3a4b63f55f1ac38b3924fd6f88 /app | |
| parent | a4ffdf922da488b2f04e81f5fc29243413e42cd3 (diff) | |
| parent | 64d8a38b54500e4c359f510c0ee15ab8fadc9f18 (diff) | |
| download | gitlab-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.rb | 4 | ||||
| -rw-r--r-- | app/services/archive_repository_service.rb | 23 |
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 |
