Skip to content
Snippets Groups Projects
Commit d805cd36 authored by Jacob Vosmaer (GitLab)'s avatar Jacob Vosmaer (GitLab)
Browse files

Add option to disable git archive caching in workhorse

parent 8de1bb9e
No related branches found
No related tags found
No related merge requests found
3.4.0
3.5.0
Loading
Loading
@@ -97,6 +97,9 @@ module Gitlab
)
end
 
# If present DisableCache must be a Boolean. Otherwise workhorse ignores it.
params['DisableCache'] = true if git_archive_cache_disabled?
[
SEND_DATA_HEADER,
"git-archive:#{encode(params)}"
Loading
Loading
@@ -244,6 +247,10 @@ module Gitlab
right_commit_id: diff_refs.head_sha
}
end
def git_archive_cache_disabled?
ENV['WORKHORSE_ARCHIVE_CACHE_DISABLED'].present? || Feature.enabled?(:workhorse_archive_cache_disabled)
end
end
end
end
Loading
Loading
@@ -26,11 +26,16 @@ describe Gitlab::Workhorse do
'GitalyRepository' => repository.gitaly_repository.to_h.deep_stringify_keys
)
end
let(:cache_disabled) { false }
 
subject do
described_class.send_git_archive(repository, ref: ref, format: format)
end
 
before do
allow(described_class).to receive(:git_archive_cache_disabled?).and_return(cache_disabled)
end
context 'when Gitaly workhorse_archive feature is enabled' do
it 'sets the header correctly' do
key, command, params = decode_workhorse_header(subject)
Loading
Loading
@@ -39,6 +44,15 @@ describe Gitlab::Workhorse do
expect(command).to eq('git-archive')
expect(params).to include(gitaly_params)
end
context 'when archive caching is disabled' do
let(:cache_disabled) { true }
it 'tells workhorse not to use the cache' do
_, _, params = decode_workhorse_header(subject)
expect(params).to include({ 'DisableCache' => true })
end
end
end
 
context 'when Gitaly workhorse_archive feature is disabled', :skip_gitaly_mock do
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment