summaryrefslogtreecommitdiff
path: root/spec/models/project_spec.rb
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@vanlanduyt.co>2018-05-15 12:25:51 +0200
committerBob Van Landuyt <bob@vanlanduyt.co>2018-06-11 17:35:13 +0200
commit698515313fe38fb3f85fdeec1efa15e2c8b54cfd (patch)
treef48e87c94ddbd458319168056596e993f38e76b2 /spec/models/project_spec.rb
parent75797ac3d2b534a1deda48c8450027055a7c721b (diff)
downloadgitlab-ce-698515313fe38fb3f85fdeec1efa15e2c8b54cfd.tar.gz
Fixes rejected pushes from maintainersbvl-fix-maintainer-push-rejected
Before the push git would make a call to `/:namespace/:project/git-receive-pack`. This would perform an access check without a ref. So the `Project#branch_allows_maintainer_push?` would return false. This adjusts `Project#branch_allows_maintainer_push?` to return true when passing no branch name if there are merge requests open that would allow the user to push. The actual check then happens when a call to `/api/v4/internal/allowed` is made from a git hook.
Diffstat (limited to 'spec/models/project_spec.rb')
-rw-r--r--spec/models/project_spec.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index b9a9c4ebf42..58928465f95 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -3658,6 +3658,11 @@ describe Project do
.to be_truthy
end
+ it 'allows access when there are merge requests open but no branch name is given' do
+ expect(project.branch_allows_collaboration?(user, nil))
+ .to be_truthy
+ end
+
it 'does not allow guest users access' do
guest = create(:user)
target_project.add_guest(guest)