Improves remote message when a developer is unable to push in an empty repository
This commit is contained in:
parent
21a511e47e
commit
65e5cf0ace
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Improve feedback when a developer is unable to push to an empty repository
|
||||
merge_request: 20519
|
||||
author:
|
||||
type: changed
|
|
@ -93,7 +93,7 @@ module Gitlab
|
|||
end
|
||||
else
|
||||
unless user_access.can_push_to_branch?(branch_name)
|
||||
raise GitAccess::UnauthorizedError, ERROR_MESSAGES[:push_protected_branch]
|
||||
raise GitAccess::UnauthorizedError, push_to_protected_branch_rejected_message
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -140,6 +140,29 @@ module Gitlab
|
|||
|
||||
private
|
||||
|
||||
def push_to_protected_branch_rejected_message
|
||||
if project.empty_repo?
|
||||
empty_project_push_message
|
||||
else
|
||||
ERROR_MESSAGES[:push_protected_branch]
|
||||
end
|
||||
end
|
||||
|
||||
def empty_project_push_message
|
||||
<<~MESSAGE
|
||||
|
||||
A default branch (e.g. master) does not yet exist for #{project.full_path}
|
||||
Ask a project Owner or Maintainer to create a default branch:
|
||||
|
||||
#{project_members_url}
|
||||
|
||||
MESSAGE
|
||||
end
|
||||
|
||||
def project_members_url
|
||||
Gitlab::Routing.url_helpers.project_project_members_url(project)
|
||||
end
|
||||
|
||||
def should_run_commit_validations?
|
||||
commit_check.validate_lfs_file_locks?
|
||||
end
|
||||
|
|
|
@ -132,6 +132,16 @@ describe Gitlab::Checks::ChangeAccess do
|
|||
expect { subject.exec }.to raise_error(Gitlab::GitAccess::UnauthorizedError, 'You are not allowed to push code to protected branches on this project.')
|
||||
end
|
||||
|
||||
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)
|
||||
|
||||
expect { subject.exec }.to raise_error(Gitlab::GitAccess::UnauthorizedError, /Ask a project Owner or Maintainer to create a default branch/)
|
||||
end
|
||||
end
|
||||
|
||||
context 'branch deletion' do
|
||||
let(:newrev) { '0000000000000000000000000000000000000000' }
|
||||
let(:ref) { 'refs/heads/feature' }
|
||||
|
|
Loading…
Reference in New Issue