summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatija Čupić <matteeyah@gmail.com>2018-11-30 11:34:59 +0100
committerMatija Čupić <matteeyah@gmail.com>2018-12-08 19:28:57 +0100
commit0f00c7818bf09e800c4ac6652077fffe7976ed6b (patch)
tree6b960034e449444eb5afbf30e327ca454f4afdfd
parent08942de9b6a3ad361cbae8a83a8e8b7c7e4768ec (diff)
downloadgitlab-ce-0f00c7818bf09e800c4ac6652077fffe7976ed6b.tar.gz
Remove resolving conditional from protected_for
-rw-r--r--app/models/project.rb9
-rw-r--r--spec/models/project_spec.rb22
2 files changed, 24 insertions, 7 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 9a9ef5c2fa9..f71bf65f417 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -1740,13 +1740,8 @@ class Project < ActiveRecord::Base
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
- ref_name = Gitlab::Git.ref_name(ref)
- else
- resolved_ref = repository.expand_ref(ref)
- ref_name = ref
- end
+ resolved_ref = repository.expand_ref(ref)
+ ref_name = Gitlab::Git.ref_name(resolved_ref)
if Gitlab::Git.branch_ref?(resolved_ref)
ProtectedBranch.protected?(self, ref_name)
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index a106642c3e5..75f1f779bb0 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -2624,6 +2624,28 @@ describe Project do
is_expected.to be_truthy
end
end
+
+ context 'when ref name is a full branch ref' do
+ let(:ref) { 'refs/tags/something' }
+
+ before do
+ project.repository.add_branch(project.creator, ref, 'master')
+ end
+
+ it 'returns false' do
+ is_expected.to be_falsey
+ end
+
+ context 'when ref is a protected branch' do
+ before do
+ create(:protected_branch, name: 'refs/tags/something', project: project)
+ end
+
+ it 'returns true' do
+ is_expected.to be_truthy
+ end
+ end
+ end
end
describe '#update_project_statistics' do