summaryrefslogtreecommitdiff
path: root/app/services/projects/lfs_pointers/lfs_download_service.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-07-20 09:22:29 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-07-20 09:22:29 +0000
commit61d81025139e2e6b3706c05eee4e60ff13417323 (patch)
tree517dc8ebc4a9f8d74fd77eb7bd6d5466d5184d94 /app/services/projects/lfs_pointers/lfs_download_service.rb
parent25fc1060affe576fd7c2f8aad586c5109c51cf7e (diff)
downloadgitlab-ce-61d81025139e2e6b3706c05eee4e60ff13417323.tar.gz
Add latest changes from gitlab-org/gitlab@14-0-stable-ee
Diffstat (limited to 'app/services/projects/lfs_pointers/lfs_download_service.rb')
-rw-r--r--app/services/projects/lfs_pointers/lfs_download_service.rb14
1 files changed, 9 insertions, 5 deletions
diff --git a/app/services/projects/lfs_pointers/lfs_download_service.rb b/app/services/projects/lfs_pointers/lfs_download_service.rb
index 525f8a25d04..9e2edf7c4ef 100644
--- a/app/services/projects/lfs_pointers/lfs_download_service.rb
+++ b/app/services/projects/lfs_pointers/lfs_download_service.rb
@@ -11,7 +11,7 @@ module Projects
LARGE_FILE_SIZE = 1.megabytes
attr_reader :lfs_download_object
- delegate :oid, :size, :credentials, :sanitized_url, to: :lfs_download_object, prefix: :lfs
+ delegate :oid, :size, :credentials, :sanitized_url, :headers, to: :lfs_download_object, prefix: :lfs
def initialize(project, lfs_download_object)
super(project)
@@ -71,17 +71,21 @@ module Projects
raise_oid_error! if digester.hexdigest != lfs_oid
end
- def download_headers
- { stream_body: true }.tap do |headers|
+ def download_options
+ http_options = { headers: lfs_headers, stream_body: true }
+
+ return http_options if lfs_download_object.has_authorization_header?
+
+ http_options.tap do |options|
if lfs_credentials[:user].present? || lfs_credentials[:password].present?
# Using authentication headers in the request
- headers[:basic_auth] = { username: lfs_credentials[:user], password: lfs_credentials[:password] }
+ options[:basic_auth] = { username: lfs_credentials[:user], password: lfs_credentials[:password] }
end
end
end
def fetch_file(&block)
- response = Gitlab::HTTP.get(lfs_sanitized_url, download_headers, &block)
+ response = Gitlab::HTTP.get(lfs_sanitized_url, download_options, &block)
raise ResponseError, "Received error code #{response.code}" unless response.success?
end