diff options
-rw-r--r-- | lib/gitlab/checks/branch_check.rb | 4 | ||||
-rw-r--r-- | spec/lib/gitlab/checks/branch_check_spec.rb | 39 |
2 files changed, 24 insertions, 19 deletions
diff --git a/lib/gitlab/checks/branch_check.rb b/lib/gitlab/checks/branch_check.rb index 75b337a14cc..ad926739752 100644 --- a/lib/gitlab/checks/branch_check.rb +++ b/lib/gitlab/checks/branch_check.rb @@ -46,7 +46,9 @@ module Gitlab end end - if creation? && protected_branch_creation_enabled? && !project.empty_repo? + if project.empty_repo? + protected_branch_push_checks + elsif creation? && protected_branch_creation_enabled? protected_branch_creation_checks elsif deletion? protected_branch_deletion_checks diff --git a/spec/lib/gitlab/checks/branch_check_spec.rb b/spec/lib/gitlab/checks/branch_check_spec.rb index 1a672f9d80a..12beeecd470 100644 --- a/spec/lib/gitlab/checks/branch_check_spec.rb +++ b/spec/lib/gitlab/checks/branch_check_spec.rb @@ -48,10 +48,28 @@ describe Gitlab::Checks::BranchCheck do context 'when project repository is empty' do let(:project) { create(:project) } - it 'raises an error if the user is not allowed to push to protected branches' do - expect(user_access).to receive(:can_push_to_branch?).and_return(false) + context 'user is not allowed to push to protected branches' do + before do + allow(user_access) + .to receive(:can_push_to_branch?) + .and_return(false) + end + + it 'raises an error' do + expect { subject.validate! }.to raise_error(Gitlab::GitAccess::UnauthorizedError, /Ask a project Owner or Maintainer to create a default branch/) + end + end + + context 'user is allowed to push to protected branches' do + before do + allow(user_access) + .to receive(:can_push_to_branch?) + .and_return(true) + end - expect { subject.validate! }.to raise_error(Gitlab::GitAccess::UnauthorizedError, /Ask a project Owner or Maintainer to create a default branch/) + it 'allows branch creation' do + expect { subject.validate! }.not_to raise_error + end end end @@ -116,21 +134,6 @@ describe Gitlab::Checks::BranchCheck do .and_return(['branch']) end - context "when repo is empty" do - let(:project) { create(:project, :empty_repo) } - let(:ref) { 'refs/heads/master' } - - before do - allow(user_access) - .to receive(:can_push_to_branch?) - .and_return(true) - end - - it 'allows branch creation' do - expect { subject.validate! }.not_to raise_error - end - end - context "newrev isn't in any protected branches" do before do allow(ProtectedBranch) |