class JiraCommand::Command::Transition

Public Instance Methods

exec() click to toggle source
# File lib/jira_command/command/transition.rb, line 12
def exec
  config = JiraCommand::Config.new.read

  jira = JiraCommand::Jira::Transition.new(config)
  res = jira.list(issue_key: options['issue'])

  prompt = TTY::Prompt.new

  target_transition_id = prompt.select('Which status do you want to transite?') do |menu|
    res.each do |transition|
      menu.choice name: transition[:name], value: transition[:id]
    end
  end

  jira.transite(issue_key: options['issue'], target_transition_id: target_transition_id)
end
issue() click to toggle source
# File lib/jira_command/command/transition.rb, line 32
def issue
  jql = []
  jql << 'sprint in openSprints()' unless options['current'].nil?
  jql << 'assignee=currentUser()' unless options['mine'].nil?

  config = JiraCommand::Config.new.read

  list = JiraCommand::Jira::List.new(config)
  issues_list = list.list({ fields: 'key,status,assignee,summary',
                            jql: jql.join('&') })

  prompt = TTY::Prompt.new

  issue_key = prompt.select('Which issue do you want to transite?') do |menu|
    issues_list['issues'].map do |i|
      assignee = i['fields']['assignee']
      menu.choice(name: "#{assignee.nil? ? 'not assigned' : assignee['displayName']}: #{i['fields']['summary']}(#{i['fields']['status']['name']})",
                  value: i['key'])
    end
  end

  jira = JiraCommand::Jira::Transition.new(config)
  res = jira.list(issue_key: issue_key)

  target_transition_id = prompt.select('Which status do you want to transite?') do |menu|
    res.each do |transition|
      menu.choice name: transition[:name], value: transition[:id]
    end
  end

  jira.transite(issue_key: issue_key, target_transition_id: target_transition_id)
end