Commit 9b1270af authored by James Fargher's avatar James Fargher

Merge branch 'sluongngoc/decouple-partial-clone' into 'master'

Decouple partial clone config

See merge request gitlab-org/gitlab!30354
parents e451697f 7d04effb
---
title: Decouple partial clone config from max input size
merge_request: 30354
author: Son Luong Ngoc
type: changed
...@@ -69,13 +69,14 @@ module API ...@@ -69,13 +69,14 @@ module API
} }
# Custom option for git-receive-pack command # Custom option for git-receive-pack command
if Feature.enabled?(:gitaly_upload_pack_filter, project, default_enabled: true)
payload[:git_config_options] << "uploadpack.allowFilter=true" << "uploadpack.allowAnySHA1InWant=true"
end
receive_max_input_size = Gitlab::CurrentSettings.receive_max_input_size.to_i receive_max_input_size = Gitlab::CurrentSettings.receive_max_input_size.to_i
if receive_max_input_size > 0 if receive_max_input_size > 0
payload[:git_config_options] << "receive.maxInputSize=#{receive_max_input_size.megabytes}" payload[:git_config_options] << "receive.maxInputSize=#{receive_max_input_size.megabytes}"
if Feature.enabled?(:gitaly_upload_pack_filter, project, default_enabled: true)
payload[:git_config_options] << "uploadpack.allowFilter=true" << "uploadpack.allowAnySHA1InWant=true"
end
end end
response_with_status(**payload) response_with_status(**payload)
......
...@@ -441,10 +441,11 @@ describe API::Internal::Base do ...@@ -441,10 +441,11 @@ describe API::Internal::Base do
allow(Gitlab::CurrentSettings).to receive(:receive_max_input_size) { 1 } allow(Gitlab::CurrentSettings).to receive(:receive_max_input_size) { 1 }
end end
it 'returns custom git config' do it 'returns maxInputSize and partial clone git config' do
push(key, project) push(key, project)
expect(json_response["git_config_options"]).to be_present expect(json_response["git_config_options"]).to be_present
expect(json_response["git_config_options"]).to include("receive.maxInputSize=1048576")
expect(json_response["git_config_options"]).to include("uploadpack.allowFilter=true") expect(json_response["git_config_options"]).to include("uploadpack.allowFilter=true")
expect(json_response["git_config_options"]).to include("uploadpack.allowAnySHA1InWant=true") expect(json_response["git_config_options"]).to include("uploadpack.allowAnySHA1InWant=true")
end end
...@@ -454,10 +455,11 @@ describe API::Internal::Base do ...@@ -454,10 +455,11 @@ describe API::Internal::Base do
stub_feature_flags(gitaly_upload_pack_filter: { enabled: false, thing: project }) stub_feature_flags(gitaly_upload_pack_filter: { enabled: false, thing: project })
end end
it 'does not include allowFilter and allowAnySha1InWant in the git config options' do it 'returns only maxInputSize and not partial clone git config' do
push(key, project) push(key, project)
expect(json_response["git_config_options"]).to be_present expect(json_response["git_config_options"]).to be_present
expect(json_response["git_config_options"]).to include("receive.maxInputSize=1048576")
expect(json_response["git_config_options"]).not_to include("uploadpack.allowFilter=true") expect(json_response["git_config_options"]).not_to include("uploadpack.allowFilter=true")
expect(json_response["git_config_options"]).not_to include("uploadpack.allowAnySHA1InWant=true") expect(json_response["git_config_options"]).not_to include("uploadpack.allowAnySHA1InWant=true")
end end
...@@ -465,12 +467,28 @@ describe API::Internal::Base do ...@@ -465,12 +467,28 @@ describe API::Internal::Base do
end end
context 'when receive_max_input_size is empty' do context 'when receive_max_input_size is empty' do
it 'returns an empty git config' do before do
allow(Gitlab::CurrentSettings).to receive(:receive_max_input_size) { nil } allow(Gitlab::CurrentSettings).to receive(:receive_max_input_size) { nil }
end
it 'returns partial clone git config' do
push(key, project) push(key, project)
expect(json_response["git_config_options"]).to be_empty expect(json_response["git_config_options"]).to be_present
expect(json_response["git_config_options"]).to include("uploadpack.allowFilter=true")
expect(json_response["git_config_options"]).to include("uploadpack.allowAnySHA1InWant=true")
end
context 'when gitaly_upload_pack_filter feature flag is disabled' do
before do
stub_feature_flags(gitaly_upload_pack_filter: { enabled: false, thing: project })
end
it 'returns an empty git config' do
push(key, project)
expect(json_response["git_config_options"]).to be_empty
end
end end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment