diff options
author | Matija Čupić <matteeyah@gmail.com> | 2018-11-28 15:43:58 +0100 |
---|---|---|
committer | Matija Čupić <matteeyah@gmail.com> | 2018-12-08 19:28:57 +0100 |
commit | 08942de9b6a3ad361cbae8a83a8e8b7c7e4768ec (patch) | |
tree | c9dd1e2984386fcb6a963c1ac8bebd4f5c5abad9 | |
parent | dfe7f57eef0c5c2319c5c9898ba0721b6a1c9913 (diff) | |
download | gitlab-ce-08942de9b6a3ad361cbae8a83a8e8b7c7e4768ec.tar.gz |
Raise an error on ambiguous refs
-rw-r--r-- | app/models/project.rb | 3 | ||||
-rw-r--r-- | app/models/repository.rb | 1 | ||||
-rw-r--r-- | 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 |