Commit 0f65e204 authored by Sean McGivern's avatar Sean McGivern

Merge branch 'gitaly-call-kwargs' into 'master'

Fix confusing double usage of 'metadata'

See merge request gitlab-org/gitlab-ce!14871
parents 8aa6e7ef 57d34848
...@@ -70,15 +70,27 @@ module Gitlab ...@@ -70,15 +70,27 @@ module Gitlab
# All Gitaly RPC call sites should use GitalyClient.call. This method # All Gitaly RPC call sites should use GitalyClient.call. This method
# makes sure that per-request authentication headers are set. # makes sure that per-request authentication headers are set.
#
# This method optionally takes a block which receives the keyword
# arguments hash 'kwargs' that will be passed to gRPC. This allows the
# caller to modify or augment the keyword arguments. The block must
# return a hash.
#
# For example:
#
# GitalyClient.call(storage, service, rpc, request) do |kwargs|
# kwargs.merge(deadline: Time.now + 10)
# end
#
def self.call(storage, service, rpc, request) def self.call(storage, service, rpc, request)
enforce_gitaly_request_limits(:call) enforce_gitaly_request_limits(:call)
metadata = request_metadata(storage) kwargs = request_kwargs(storage)
metadata = yield(metadata) if block_given? kwargs = yield(kwargs) if block_given?
stub(service, storage).__send__(rpc, request, metadata) # rubocop:disable GitlabSecurity/PublicSend stub(service, storage).__send__(rpc, request, kwargs) # rubocop:disable GitlabSecurity/PublicSend
end end
def self.request_metadata(storage) def self.request_kwargs(storage)
encoded_token = Base64.strict_encode64(token(storage).to_s) encoded_token = Base64.strict_encode64(token(storage).to_s)
metadata = { metadata = {
'authorization' => "Bearer #{encoded_token}", 'authorization' => "Bearer #{encoded_token}",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment