module Gitlab::Configuration

Defines constants and methods related to configuration.

Constants

DEFAULT_USER_AGENT

The user agent that will be sent to the API endpoint if none is set.

VALID_OPTIONS_KEYS

An array of valid keys in the options hash when configuring a Gitlab::API.

Public Class Methods

extended(base) click to toggle source

Sets all configuration options to their default values when this module is extended.

# File lib/gitlab/configuration.rb, line 18
def self.extended(base)
  base.reset
end

Public Instance Methods

configure() { |self| ... } click to toggle source

Convenience method to allow configuration options to be set in a block.

# File lib/gitlab/configuration.rb, line 23
def configure
  yield self
end
options() click to toggle source

Creates a hash of options and their values.

# File lib/gitlab/configuration.rb, line 28
def options
  VALID_OPTIONS_KEYS.inject({}) do |option, key|
    option.merge!(key => send(key))
  end
end
reset() click to toggle source

Resets all configuration options to the defaults.

# File lib/gitlab/configuration.rb, line 35
def reset
  self.endpoint       = ENV['GITLAB_API_ENDPOINT']
  self.private_token  = ENV['GITLAB_API_PRIVATE_TOKEN'] || ENV['GITLAB_API_AUTH_TOKEN']
  self.httparty       = get_httparty_config(ENV['GITLAB_API_HTTPARTY_OPTIONS'])
  self.sudo           = nil
  self.user_agent     = DEFAULT_USER_AGENT
end

Private Instance Methods

get_httparty_config(options) click to toggle source

Allows HTTParty config to be specified in ENV using YAML hash.

# File lib/gitlab/configuration.rb, line 46
def get_httparty_config(options)
  return options if options.nil?

  httparty = Gitlab::CLI::Helpers.yaml_load(options)

  raise ArgumentError, "HTTParty config should be a Hash." unless httparty.is_a? Hash
  Gitlab::CLI::Helpers.symbolize_keys httparty
end