diff options
author | Robert Speicher <rspeicher@gmail.com> | 2019-06-10 20:42:41 +0000 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2019-06-10 20:42:41 +0000 |
commit | d759da763279344953f206c2fbced1e2fdba99b3 (patch) | |
tree | 3a31ebe05c88c9035013351d753e99496999e99d | |
parent | e5dcd1101b027d35ca23123c0712a483629b9bf6 (diff) | |
parent | 8d7fb292d2e280cb5e41c54b34470c83369d7bd4 (diff) | |
download | gitlab-ce-62183-update-response-code-for-bulk-delete-api-for-container-registry-2.tar.gz |
Merge branch 'osw-avoid-encoding-errors-on-merge-to-ref-service' into 'master'62183-update-response-code-for-bulk-delete-api-for-container-registry-2
Handle encoding errors for MergeToRefService
See merge request gitlab-org/gitlab-ce!29440
3 files changed, 24 insertions, 1 deletions
diff --git a/changelogs/unreleased/osw-avoid-encoding-errors-on-merge-to-ref-service.yml b/changelogs/unreleased/osw-avoid-encoding-errors-on-merge-to-ref-service.yml new file mode 100644 index 00000000000..176c8bf36f7 --- /dev/null +++ b/changelogs/unreleased/osw-avoid-encoding-errors-on-merge-to-ref-service.yml @@ -0,0 +1,5 @@ +--- +title: Handle encoding errors for MergeToRefService +merge_request: 29440 +author: +type: fixed diff --git a/lib/gitlab/gitaly_client/operation_service.rb b/lib/gitlab/gitaly_client/operation_service.rb index e4a59ee3f9b..b42e6cbad8d 100644 --- a/lib/gitlab/gitaly_client/operation_service.rb +++ b/lib/gitlab/gitaly_client/operation_service.rb @@ -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) diff --git a/spec/lib/gitlab/gitaly_client/operation_service_spec.rb b/spec/lib/gitlab/gitaly_client/operation_service_spec.rb index 7579a6577b9..18663a72fcd 100644 --- a/spec/lib/gitlab/gitaly_client/operation_service_spec.rb +++ b/spec/lib/gitlab/gitaly_client/operation_service_spec.rb @@ -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") |