Class: SupportOps::GitLab::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/support_ops_gitlab/gitlab/client.rb

Overview

Defines the class Client within the module SupportOps::GitLab.

Author:

  • Jason Colyer

Since:

  • 1.0.0

Defined Under Namespace

Classes: Error, RequestError, ResourceNotFound

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = SupportOps::GitLab::Configuration.new) ⇒ Client

Returns a new instance of Client.

Since:

  • 1.0.0



19
20
21
22
23
24
# File 'lib/support_ops_gitlab/gitlab/client.rb', line 19

def initialize(config = SupportOps::GitLab::Configuration.new)
  if config[:token].nil? && config[:job_token].nil?
    raise 'No authentication token provided'
  end
  @connection = generate_connection(config)
end

Instance Attribute Details

#connectionObject (readonly)

Since:

  • 1.0.0



17
18
19
# File 'lib/support_ops_gitlab/gitlab/client.rb', line 17

def connection
  @connection
end

Instance Method Details

#generate_connection(config) ⇒ Object

Since:

  • 1.0.0



36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/support_ops_gitlab/gitlab/client.rb', line 36

def generate_connection(config)
  Faraday.new(config[:url]) do |c|
    c.request :retry, retry_options(config)
    c.adapter Faraday.default_adapter
    c.headers['Content-Type'] = 'application/json'
    unless config[:token].nil?
      c.headers['Authorization'] = "Bearer #{config[:token]}"
    end
    unless config[:job_token].nil?
      c.headers['JOB-TOKEN'] = config[:job_token]
    end
  end
end

#retry_options(config) ⇒ Object

Since:

  • 1.0.0



26
27
28
29
30
31
32
33
34
# File 'lib/support_ops_gitlab/gitlab/client.rb', line 26

def retry_options(config)
  {
    max: config[:retry_max],
    interval: config[:retry_interval],
    interval_randomness: config[:retry_randomness],
    backoff_factor: config[:retry_backoff],
    exceptions: config[:retry_exceptions]
  }
end