Avoid encoding errors for MergeToRefService

This commit is contained in:
Oswaldo Ferreira 2019-06-10 15:41:42 -03:00
parent 50063f4a85
commit 8d7fb292d2
3 changed files with 24 additions and 1 deletions

View File

@ -0,0 +1,5 @@
---
title: Handle encoding errors for MergeToRefService
merge_request: 29440
author:
type: fixed

View File

@ -107,7 +107,7 @@ module Gitlab
branch: encode_binary(branch),
target_ref: encode_binary(target_ref),
user: Gitlab::Git::User.from_gitlab(user).to_gitaly,
message: message
message: encode_binary(message)
)
response = GitalyClient.call(@repository.storage, :operation_service, :user_merge_to_ref, request)

View File

@ -78,6 +78,24 @@ describe Gitlab::GitalyClient::OperationService do
subject
end
describe '#user_merge_to_ref' do
let(:branch) { 'my-branch' }
let(:source_sha) { 'cfe32cf61b73a0d5e9f13e774abde7ff789b1660' }
let(:ref) { 'refs/merge-requests/x/merge' }
let(:message) { 'validación' }
let(:response) { Gitaly::UserMergeToRefResponse.new(commit_id: 'new-commit-id') }
subject { client.user_merge_to_ref(user, source_sha, branch, ref, message) }
it 'sends a user_merge_to_ref message' do
expect_any_instance_of(Gitaly::OperationService::Stub)
.to receive(:user_merge_to_ref).with(kind_of(Gitaly::UserMergeToRefRequest), kind_of(Hash))
.and_return(response)
subject
end
end
context "when pre_receive_error is present" do
let(:response) do
Gitaly::UserUpdateBranchResponse.new(pre_receive_error: "GitLab: something failed")