Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2018-06-05 15:55:41 +0300
committerSean McGivern <sean@mcgivern.me.uk>2018-06-05 15:55:41 +0300
commit3201988b4d3804cbdf2560ee9064d0dbc43bf354 (patch)
tree7ce4e8b2c938d23fbaa3be881fdf9f2fcbf97bcd
parent40dc82f8628f597548a39a31bddf2aaccc7fc38c (diff)
parent3a4ecfd0c9a58bcac565426df552cec0cfe77017 (diff)
Merge branch 'write-config-not-found' into 'master'
Prevent Gitaly WriteConfig log noise Closes gitaly#1221 See merge request gitlab-org/gitlab-ce!19375
-rw-r--r--lib/gitlab/git/repository.rb5
-rw-r--r--spec/lib/gitlab/git/repository_spec.rb12
2 files changed, 17 insertions, 0 deletions
diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb
index 4cbf20bfe76..7acf11e3c91 100644
--- a/lib/gitlab/git/repository.rb
+++ b/lib/gitlab/git/repository.rb
@@ -1397,6 +1397,11 @@ module Gitlab
def write_config(full_path:)
return unless full_path.present?
+ # This guard avoids Gitaly log/error spam
+ unless exists?
+ raise NoRepository, 'repository does not exist'
+ end
+
gitaly_migrate(:write_config) do |is_enabled|
if is_enabled
gitaly_repository_client.write_config(full_path: full_path)
diff --git a/spec/lib/gitlab/git/repository_spec.rb b/spec/lib/gitlab/git/repository_spec.rb
index 7a9621d9c78..20b0b2c53a0 100644
--- a/spec/lib/gitlab/git/repository_spec.rb
+++ b/spec/lib/gitlab/git/repository_spec.rb
@@ -2002,6 +2002,18 @@ describe Gitlab::Git::Repository, seed_helper: true do
expect(config).to include("fullpath = #{repository_path}")
end
end
+
+ context 'repository does not exist' do
+ it 'raises NoRepository and does not call Gitaly WriteConfig' do
+ repository = Gitlab::Git::Repository.new('default', 'does/not/exist.git', '')
+
+ expect(repository.gitaly_repository_client).not_to receive(:write_config)
+
+ expect do
+ repository.write_config(full_path: 'foo/bar.git')
+ end.to raise_error(Gitlab::Git::Repository::NoRepository)
+ end
+ end
end
context "when gitaly_write_config is enabled" do