class Dude::Setup::Jira

Attributes

prompt[R]

rubocop:enable Metrics/AbcSize

Public Class Methods

new(prompt) click to toggle source
# File lib/dude/setup/jira.rb, line 6
def initialize(prompt)
  @prompt = prompt
end

Public Instance Methods

call(settings:) click to toggle source

rubocop:disable Metrics/AbcSize

# File lib/dude/setup/jira.rb, line 11
def call(settings:)
  settings[:jira][:email] = setup_email
  settings[:jira][:token] = setup_token
  settings[:jira][:project][:url] = setup_project_url
  settings[:jira][:project][:key] = setup_project_key
  settings[:jira][:board_id] = setup_board_id
  settings
end

Private Instance Methods

setup_board_id() click to toggle source
# File lib/dude/setup/jira.rb, line 58
def setup_board_id
  puts 'Just open your atlassian main board and copy id from the url after rapidView=ID part.'
  prompt.ask(Dude::Config.style_prompt('Board ID:'), required: true)
end
setup_email() click to toggle source
# File lib/dude/setup/jira.rb, line 25
def setup_email
  prompt.ask(Dude::Config.style_prompt('Jira user email:'), required: true)
end
setup_project_key() click to toggle source
# File lib/dude/setup/jira.rb, line 52
def setup_project_key
  prompt.ask(Dude::Config.style_prompt('KEY of your project (If your issues have id BT-123 - BT is the key):'), {
    required: true
  })
end
setup_project_url() click to toggle source
# File lib/dude/setup/jira.rb, line 46
def setup_project_url
  prompt.ask(Dude::Config.style_prompt('URL of your project (Example: https://example.atlassian.net):'), {
    required: true
  })
end
setup_token() click to toggle source
# File lib/dude/setup/jira.rb, line 29
      def setup_token
        puts <<~HEREDOC
          You need to create personal token

          #{'1.'.bold} Log in to https://id.atlassian.com/manage/api-tokens
          #{'2.'.bold} Click 'Create API token.'
          #{'3.'.bold} From the dialog that appears, enter a memorable and concise 'Label' for your token and click 'Create.'
          #{'4.'.bold} Use 'Copy to clipboard' and paste the token below
        HEREDOC

        if prompt.yes?(Dude::Config.style_prompt('Open Atlassian token creation page in your browser?'))
          `open https://id.atlassian.com/manage-profile/security/api-tokens`
        end

        prompt.ask(Dude::Config.style_prompt('Jira token:'), required: true)
      end