lib/connectors/gitlab/custom_client.rb (32 lines of code) (raw):

# # Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one # or more contributor license agreements. Licensed under the Elastic License; # you may not use this file except in compliance with the Elastic License. # require 'faraday_middleware/response/follow_redirects' require 'connectors/base/custom_client' require 'utility/middleware/bearer_auth' require 'utility/middleware/basic_auth' require 'utility/middleware/restrict_hostnames' require 'app/config' module Connectors module GitLab DEFAULT_BASE_URL = 'https://gitlab.com/api/v4' class CustomClient < Connectors::Base::CustomClient attr_reader :api_token class ClientError < StandardError attr_reader :status_code, :endpoint, :api_token def initialize(status_code, endpoint) @status_code = status_code @endpoint = endpoint end end def initialize(base_url:, api_token:, ensure_fresh_auth: nil) @api_token = api_token super(:base_url => base_url || DEFAULT_BASE_URL, :ensure_fresh_auth => ensure_fresh_auth) end def additional_middleware [ ::FaradayMiddleware::FollowRedirects, [Utility::Middleware::RestrictHostnames, { :allowed_hosts => [base_url, DEFAULT_BASE_URL] }], [Utility::Middleware::BearerAuth, { :bearer_auth_token => api_token }] ] end end end end