Module: PredictabilityEngine::JiraConfigPrompter

Included in:
Cli
Defined in:
lib/predictability_engine/jira_config_prompter.rb

Overview

Mixin providing interactive credential prompts for ‘jira_config –auth-mode`. Relies on `ask` / `ask_secret` being defined by the including class (Thor).

Instance Method Summary collapse

Instance Method Details

#build_profile_data(site, context_path, mode) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/predictability_engine/jira_config_prompter.rb', line 7

def build_profile_data(site, context_path, mode)
  data = { 'site' => site }
  data['context_path'] = context_path unless context_path.strip.empty?
  data['auth_mode'] = mode unless mode == 'basic'
  data.merge!(prompt_auth_fields(mode))
  data
end

#prompt_auth_fields(mode) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/predictability_engine/jira_config_prompter.rb', line 15

def prompt_auth_fields(mode)
  case mode
  when 'bearer'
    { 'bearer_token' => ask_secret('Bearer token:') }
  when 'cookie'
    { 'auth_cookie' => ask_secret('Session cookie (e.g., JSESSIONID=abc; crowd.token_key=xyz):') }
  when 'mfa_api'
    prompt_mfa_api_fields
  when 'mfa_browser'
    prompt_mfa_browser_fields
  else
    { 'email' => ask('Jira email:'), 'token' => ask_secret('Jira API token:') }
  end
end