summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOswaldo Ferreira <oswaldo@gitlab.com>2018-07-16 17:27:53 -0300
committerOswaldo Ferreira <oswaldo@gitlab.com>2018-07-16 17:28:03 -0300
commite2388cc220606fa4b098134737a41315282a4159 (patch)
treea9609aabfd4f7c2fd5ff143c03e7d8648adb46ae
parent9f524bbe534208f552b6689ecc103ae7094e99b8 (diff)
downloadgitlab-ce-osw-diff-numstat-client.tar.gz
Create wrapper to use Gitaly DiffNumStat RPCosw-diff-numstat-client
-rw-r--r--changelogs/unreleased/osw-diff-numstat-client.yml5
-rw-r--r--lib/gitlab/gitaly_client/commit_service.rb14
-rw-r--r--spec/lib/gitlab/gitaly_client/commit_service_spec.rb16
3 files changed, 35 insertions, 0 deletions
diff --git a/changelogs/unreleased/osw-diff-numstat-client.yml b/changelogs/unreleased/osw-diff-numstat-client.yml
new file mode 100644
index 00000000000..309fdc2c290
--- /dev/null
+++ b/changelogs/unreleased/osw-diff-numstat-client.yml
@@ -0,0 +1,5 @@
+---
+title: Create wrapper to use Gitaly DiffNumStat RPC
+merge_request:
+author:
+type: added
diff --git a/lib/gitlab/gitaly_client/commit_service.rb b/lib/gitlab/gitaly_client/commit_service.rb
index 6a97cd8ed17..dac6ab7ea5f 100644
--- a/lib/gitlab/gitaly_client/commit_service.rb
+++ b/lib/gitlab/gitaly_client/commit_service.rb
@@ -268,6 +268,20 @@ module Gitlab
GitalyClient.call(@repository.storage, :commit_service, :commit_stats, request, timeout: GitalyClient.medium_timeout)
end
+ def diff_num_stats(left_commit_id, right_commit_id)
+ request = Gitaly::DiffNumStatRequest.new(repository: @gitaly_repo,
+ left_commit_id: left_commit_id,
+ right_commit_id: right_commit_id)
+
+ response = GitalyClient.call(@repository.storage,
+ :diff_service,
+ :diff_num_stat,
+ request,
+ timeout: GitalyClient.medium_timeout)
+
+ response.flat_map { |message| message.num_stats }
+ end
+
def find_commits(options)
request = Gitaly::FindCommitsRequest.new(
repository: @gitaly_repo,
diff --git a/spec/lib/gitlab/gitaly_client/commit_service_spec.rb b/spec/lib/gitlab/gitaly_client/commit_service_spec.rb
index 54f2ea33f90..293a6048c11 100644
--- a/spec/lib/gitlab/gitaly_client/commit_service_spec.rb
+++ b/spec/lib/gitlab/gitaly_client/commit_service_spec.rb
@@ -104,6 +104,22 @@ describe Gitlab::GitalyClient::CommitService do
end
end
+ describe '#diff_num_stats' do
+ let(:left_commit_id) { 'master' }
+ let(:right_commit_id) { 'cfe32cf61b73a0d5e9f13e774abde7ff789b1660' }
+
+ it 'sends a RPC request' do
+ request = Gitaly::DiffNumStatRequest.new(repository: repository_message,
+ left_commit_id: left_commit_id,
+ right_commit_id: right_commit_id)
+
+ expect_any_instance_of(Gitaly::DiffService::Stub).to receive(:diff_num_stat)
+ .with(request, kind_of(Hash)).and_return([])
+
+ described_class.new(repository).diff_num_stats(left_commit_id, right_commit_id)
+ end
+ end
+
describe '#tree_entries' do
let(:path) { '/' }