# frozen_string_literal: true module BitBucket module Configuration VALID_OPTIONS_KEYS = %i[ adapter client_id client_secret new_access_token oauth_token oauth_secret endpoint mime_type user_agent connection_options repo user login password basic_auth ].freeze # Other adapters are :typhoeus, :patron, :em_synchrony, :excon, :test DEFAULT_ADAPTER = :net_http # By default, don't set an application key DEFAULT_CLIENT_ID = nil # By default, don't set an application secret DEFAULT_CLIENT_SECRET = nil # By default, don't set an access token DEFAULT_ACCESS_TOKEN = nil # By default, don't set a user oauth access token DEFAULT_OAUTH_TOKEN = nil # By default, don't set a user oauth access token secret DEFAULT_OAUTH_SECRET = nil # By default, don't set a user login name DEFAULT_LOGIN = nil # By default, don't set a user password DEFAULT_PASSWORD = nil # By default, don't set a user basic authentication DEFAULT_BASIC_AUTH = nil # The endpoint used to connect to BitBucket if none is set, in the event that BitBucket is ever available on location DEFAULT_ENDPOINT = 'https://api.bitbucket.org' # The value sent in the http header for 'User-Agent' if none is set DEFAULT_USER_AGENT = "BitBucket Ruby Gem #{BitBucket::VERSION::STRING}" # By default the Accept header will make a request for JSON DEFAULT_MIME_TYPE = :json # By default uses the Faraday connection options if none is set DEFAULT_CONNECTION_OPTIONS = {}.freeze # By default, don't set user name DEFAULT_USER = nil # By default, don't set repository name DEFAULT_REPO = nil attr_accessor *VALID_OPTIONS_KEYS # Convenience method to allow for global setting of configuration options def configure yield self end def self.extended(base) base.set_defaults end def options options = {} VALID_OPTIONS_KEYS.each { |k| options[k] = send(k) } options end def set_defaults self.adapter = DEFAULT_ADAPTER self.client_id = DEFAULT_CLIENT_ID self.client_secret = DEFAULT_CLIENT_SECRET self.new_access_token = DEFAULT_ACCESS_TOKEN self.oauth_token = DEFAULT_OAUTH_TOKEN self.oauth_secret = DEFAULT_OAUTH_SECRET self.endpoint = DEFAULT_ENDPOINT self.user_agent = DEFAULT_USER_AGENT self.connection_options = DEFAULT_CONNECTION_OPTIONS self.mime_type = DEFAULT_MIME_TYPE self.user = DEFAULT_USER self.repo = DEFAULT_REPO self.login = DEFAULT_LOGIN self.password = DEFAULT_PASSWORD self.basic_auth = DEFAULT_BASIC_AUTH self end end # Configuration end # BitBucket