summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/project.rb3
-rw-r--r--app/models/repository.rb1
-rw-r--r--spec/models/project_spec.rb4
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