diff options
author | Matija Čupić <matteeyah@gmail.com> | 2018-11-16 21:03:21 +0100 |
---|---|---|
committer | Matija Čupić <matteeyah@gmail.com> | 2018-12-08 19:28:55 +0100 |
commit | 96a0a8cfb62d9ea66ee2a22e09a116d64f333703 (patch) | |
tree | 411be34a39be9126682f1fbf18ad0f93cde4e7b2 | |
parent | 35b3392ef7511521653a984a9d9c6dbaf4e6dccb (diff) | |
download | gitlab-ce-96a0a8cfb62d9ea66ee2a22e09a116d64f333703.tar.gz |
Use strings instead of Gitlab::Git::Ref
-rw-r--r-- | app/models/project.rb | 17 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 38 |
2 files changed, 19 insertions, 36 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 22ce916a36c..e9fa9cfabc9 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1167,11 +1167,11 @@ class Project < ActiveRecord::Base if tag_exists && branch_exists nil elsif tag_exists - repository.find_tag(ref) + Gitlab::Git::TAG_REF_PREFIX + ref elsif branch_exists - repository.find_branch(ref) + Gitlab::Git::BRANCH_REF_PREFIX + ref else - repository.find_ref(ref) + ref end end @@ -1755,11 +1755,12 @@ class Project < ActiveRecord::Base resolved_ref = resolve_ref(ref) return false unless resolved_ref - case resolved_ref - when Gitlab::Git::Branch - ProtectedBranch.protected?(self, resolved_ref.name) - when Gitlab::Git::Tag - ProtectedTag.protected?(self, resolved_ref.name) + ref_name = Gitlab::Git.ref_name(resolved_ref) + + if Gitlab::Git.branch_ref?(resolved_ref) + ProtectedBranch.protected?(self, ref_name) + elsif Gitlab::Git.tag_ref?(resolved_ref) + ProtectedTag.protected?(self, ref_name) end end diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 204d611796b..cbc242308e8 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -2580,7 +2580,7 @@ describe Project do end context 'when the ref is not protected' do - let(:ref) { project.repository.find_branch('master') } + let(:ref) { 'refs/heads/master' } before do stub_application_setting( @@ -2593,7 +2593,7 @@ describe Project do end context 'when the ref is a protected branch' do - let(:ref) { project.repository.find_branch('master') } + let(:ref) { 'refs/heads/master' } before do create(:protected_branch, name: 'master', project: project) @@ -2605,7 +2605,7 @@ describe Project do end context 'when the ref is a protected tag' do - let(:ref) { project.repository.find_tag('v1.0.0') } + let(:ref) { 'refs/tags/v1.0.0' } before do create(:protected_tag, name: 'v1.0.0', project: project) @@ -2802,20 +2802,10 @@ describe Project do subject { project.resolve_ref(ref) } context 'when ref is full ref' do - context 'when ref exists' do - let(:ref) { 'refs/heads/master' } + let(:ref) { 'refs/heads/master' } - it 'returns a ref' do - is_expected.to be_a(Gitlab::Git::Ref) - end - end - - context 'when ref does not exist' do - let(:ref) { 'refs/tags/doesnotexist' } - - it 'returns nil' do - is_expected.to eq(nil) - end + it 'returns the ref' do + is_expected.to eq(ref) end end @@ -2838,12 +2828,8 @@ describe Project do project.repository.add_tag(project.creator, ref, 'master') end - it 'returns a tag' do - is_expected.to be_a(Gitlab::Git::Tag) - end - - it 'returns the correct tag' do - expect(subject.name).to eq(ref) + it 'returns the tag ref' do + is_expected.to eq("refs/tags/#{ref}") end end @@ -2852,12 +2838,8 @@ describe Project do project.repository.add_branch(project.creator, ref, 'master') end - it 'returns a branch' do - is_expected.to be_a(Gitlab::Git::Branch) - end - - it 'returns the correct branch' do - expect(subject.name).to eq(ref) + it 'returns the branch ref' do + is_expected.to eq("refs/heads/#{ref}") end end end |