Class: PredictabilityEngine::Config
- Inherits:
-
Object
- Object
- PredictabilityEngine::Config
- Defined in:
- lib/predictability_engine/config.rb
Overview
Configuration management for the predictability engine.
Constant Summary collapse
- CONFIG_FILE =
'.predictability_engine.yml'
Class Method Summary collapse
- .jira(profile_name = nil) ⇒ Object
- .jira_client(profile = nil) ⇒ Object
- .jira_credentials_file ⇒ Object
- .load_yaml_file(path) ⇒ Object
- .validate_jira!(config) ⇒ Object
Class Method Details
.jira(profile_name = nil) ⇒ Object
21 22 23 |
# File 'lib/predictability_engine/config.rb', line 21 def self.jira(profile_name = nil) load_jira_config(profile_name) end |
.jira_client(profile = nil) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/predictability_engine/config.rb', line 25 def self.jira_client(profile = nil) require 'jira-ruby' instrument_jira_http! unless ::JIRA::HttpClient.ancestors.include?(JiraHttpLogger) config = jira(profile) validate_jira!(config) origin, derived_path = split_jira_site(config[:site]) base = { site: origin, context_path: config[:context_path] || derived_path, default_headers: {} } auth = JiraAuth.build(config) = auth.(base) [:http_debug] = true if jira_http_debug? client = ::JIRA::Client.new() auth.post_init(client) client end |
.jira_credentials_file ⇒ Object
126 127 128 |
# File 'lib/predictability_engine/config.rb', line 126 def self.jira_credentials_file File.('~/.config/jira/jira_credentials.yml') end |
.load_yaml_file(path) ⇒ Object
138 139 140 141 142 |
# File 'lib/predictability_engine/config.rb', line 138 def self.load_yaml_file(path) YAML.load_file(path) rescue Psych::SyntaxError => e raise Error, "Invalid YAML in #{path}: #{e.}" end |
.validate_jira!(config) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/predictability_engine/config.rb', line 78 def self.validate_jira!(config) raise_missing(config, :site) case config[:auth_mode].to_s when 'bearer' raise_missing(config, :bearer_token) when 'cookie' raise_missing(config, :auth_cookie) when 'mfa_api' %i[email password totp_secret mfa_login_url].each { |k| raise_missing(config, k) } when 'mfa_browser' raise_missing(config, :idp_login_url) else raise_missing(config, :email) raise_missing(config, :token) end end |