Make sure we're passing ASCII-8BIT to Gitaly
when counting commit count.
This commit is contained in:
parent
b472411efb
commit
b33e7281ff
3 changed files with 30 additions and 2 deletions
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fix encoding issue when counting commit count
|
||||
merge_request: 16637
|
||||
author:
|
||||
type: fixed
|
|
@ -125,11 +125,11 @@ module Gitlab
|
|||
def commit_count(ref, options = {})
|
||||
request = Gitaly::CountCommitsRequest.new(
|
||||
repository: @gitaly_repo,
|
||||
revision: ref
|
||||
revision: encode_binary(ref)
|
||||
)
|
||||
request.after = Google::Protobuf::Timestamp.new(seconds: options[:after].to_i) if options[:after].present?
|
||||
request.before = Google::Protobuf::Timestamp.new(seconds: options[:before].to_i) if options[:before].present?
|
||||
request.path = options[:path] if options[:path].present?
|
||||
request.path = encode_binary(options[:path]) if options[:path].present?
|
||||
request.max_count = options[:max_count] if options[:max_count].present?
|
||||
|
||||
GitalyClient.call(@repository.storage, :commit_service, :count_commits, request, timeout: GitalyClient.medium_timeout).count
|
||||
|
|
|
@ -131,6 +131,29 @@ describe Gitlab::GitalyClient::CommitService do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#commit_count' do
|
||||
before do
|
||||
expect_any_instance_of(Gitaly::CommitService::Stub)
|
||||
.to receive(:count_commits)
|
||||
.with(gitaly_request_with_path(storage_name, relative_path),
|
||||
kind_of(Hash))
|
||||
.and_return([])
|
||||
end
|
||||
|
||||
it 'sends a commit_count message' do
|
||||
client.commit_count(revision)
|
||||
end
|
||||
|
||||
context 'with UTF-8 params strings' do
|
||||
let(:revision) { "branch\u011F" }
|
||||
let(:path) { "foo/\u011F.txt" }
|
||||
|
||||
it 'handles string encodings correctly' do
|
||||
client.commit_count(revision, path: path)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#find_commit' do
|
||||
let(:revision) { '4b825dc642cb6eb9a060e54bf8d69288fbee4904' }
|
||||
it 'sends an RPC request' do
|
||||
|
|
Loading…
Reference in a new issue