Method: Gitlab::Workhorse.send_dependency

Defined in:
lib/gitlab/workhorse.rb

.send_dependency(headers, url, allow_localhost: true, upload_config: {}, response_headers: {}, ssrf_filter: false, allowed_endpoints: [], restrict_forwarded_response_headers: {}) ⇒ Object



250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
# File 'lib/gitlab/workhorse.rb', line 250

def send_dependency(
  headers,
  url,
  allow_localhost: true,
  upload_config: {},
  response_headers: {},
  ssrf_filter: false,
  allowed_endpoints: [],
  restrict_forwarded_response_headers: {})
  params = {
    'AllowLocalhost' => allow_localhost,
    'AllowedEndpoints' => allowed_endpoints,
    'Headers' => headers.transform_values { |v| Array.wrap(v) },
    'ResponseHeaders' => response_headers.transform_values { |v| Array.wrap(v) },
    'SSRFFilter' => ssrf_filter,
    'Url' => url,
    'UploadConfig' => {
      'Method' => upload_config[:method],
      'Url' => upload_config[:url],
      'Headers' => (upload_config[:headers] || {}).transform_values { |v| Array.wrap(v) },
      'AuthorizedUploadResponse' => upload_config[:authorized_upload_response] || {}
    }.compact_blank!
  }.merge(restrict_forwarded_response_headers_params(restrict_forwarded_response_headers))
  params.compact_blank!
  [
    SEND_DATA_HEADER,
    "send-dependency:#{encode(params)}"
  ]
end