diff --git a/internal/service/operations/commit_files.go b/internal/service/operations/commit_files.go index 310f60a434713d7ced5e6b019906f4c8a4b5188a..8020d1a1fd34720c87462d75e455c5e81fff8286 100644 --- a/internal/service/operations/commit_files.go +++ b/internal/service/operations/commit_files.go @@ -74,8 +74,5 @@ func validateUserCommitFilesHeader(header *pb.UserCommitFilesRequestHeader) erro if len(header.GetCommitMessage()) == 0 { return fmt.Errorf("empty CommitMessage") } - if len(header.GetBranchName()) == 0 { - return fmt.Errorf("empty BranchName") - } return nil } diff --git a/internal/service/operations/commit_files_test.go b/internal/service/operations/commit_files_test.go index c5816e7c0bd68504883baf8623145b04068ae18f..0dbaccc3d5bf8b7fc0942e03557fef05c468d58d 100644 --- a/internal/service/operations/commit_files_test.go +++ b/internal/service/operations/commit_files_test.go @@ -276,10 +276,6 @@ func TestFailedUserCommitFilesRequest(t *testing.T) { desc: "empty User", req: headerRequest(testRepo, nil, branchName, commitFilesMessage, nil, nil), }, - { - desc: "empty BranchName", - req: headerRequest(testRepo, user, "", commitFilesMessage, nil, nil), - }, { desc: "empty CommitMessage", req: headerRequest(testRepo, user, branchName, nil, nil, nil), diff --git a/ruby/lib/gitlab/git/operation_service.rb b/ruby/lib/gitlab/git/operation_service.rb index 99ee18166d3c7bc65e0e2ce21340d5a4208284fa..2844e84e3df4da415b41edb4cc1e084c70df93f1 100644 --- a/ruby/lib/gitlab/git/operation_service.rb +++ b/ruby/lib/gitlab/git/operation_service.rb @@ -119,13 +119,17 @@ module Gitlab raise Gitlab::Git::CommitError.new('Failed to create commit') end - branch = repository.find_branch(branch_name) - oldrev = find_oldrev_from_branch(newrev, branch) - - ref = Gitlab::Git::BRANCH_REF_PREFIX + branch_name - update_ref_in_hooks(ref, newrev, oldrev) + branch_created = was_empty + if branch_name.present? + branch = repository.find_branch(branch_name) + oldrev = find_oldrev_from_branch(newrev, branch) + branch_created ||= Gitlab::Git.blank_ref?(oldrev) + + ref = Gitlab::Git::BRANCH_REF_PREFIX + branch_name + update_ref_in_hooks(ref, newrev, oldrev) + end - BranchUpdate.new(newrev, was_empty, was_empty || Gitlab::Git.blank_ref?(oldrev)) + BranchUpdate.new(newrev, was_empty, branch_created) end def find_oldrev_from_branch(newrev, branch)