From 08942de9b6a3ad361cbae8a83a8e8b7c7e4768ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matija=20=C4=8Cupi=C4=87?= Date: Wed, 28 Nov 2018 15:43:58 +0100 Subject: Raise an error on ambiguous refs --- app/models/project.rb | 3 ++- app/models/repository.rb | 1 + spec/models/project_spec.rb | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/models/project.rb b/app/models/project.rb index a8bef70f505..9a9ef5c2fa9 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1737,7 +1737,8 @@ class Project < ActiveRecord::Base end def protected_for?(ref) - return false if ref.nil? || repository.ambiguous_ref?(ref) + return false if ref.nil? + raise Repository::AmbiguousRefError if repository.ambiguous_ref?(ref) if Gitlab::Git.branch_ref?(ref) || Gitlab::Git.tag_ref?(ref) resolved_ref = ref diff --git a/app/models/repository.rb b/app/models/repository.rb index 7352386d9d5..c685752c294 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -26,6 +26,7 @@ class Repository delegate :bundle_to_disk, to: :raw_repository CreateTreeError = Class.new(StandardError) + AmbiguousRefError = Class.new(StandardError) # Methods that cache data from the Git repository. # diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 18ad69a1bda..a106642c3e5 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -2583,8 +2583,8 @@ describe Project do project.repository.add_tag(project.creator, ref, 'master') end - it 'returns false' do - is_expected.to be_falsey + it 'raises an error' do + expect { subject }.to raise_error(Repository::AmbiguousRefError) end end -- cgit v1.2.1