class Speedflow::Plugin::Jira::Plugin

JIRA Plugin

Attributes

client[W]

@return [Client] Plugin client.

prompt[W]

@return [Prompt] Plugin prompt.

Public Class Methods

new(config, _) click to toggle source

Public: Constructor

config - Speedflow::Plugin::Configuration object. prompt - Speedflow::Plugin::Prompt object.

Examples

Manager.new(
  <Speedflow::Plugin::Configuration.new({})>,
  <Speedflow::Plugin::Prompt.new>)
# => <Speedflow::Plugin::Abstract>

Returns nothing.

Calls superclass method
# File lib/speedflow/plugin/jira/plugin.rb, line 25
def initialize(config, _)
  super(config, Prompt.new)
end

Public Instance Methods

action_change_issue_assignee() click to toggle source

Public: Change issue assignee.

Returns Hash.

# File lib/speedflow/plugin/jira/plugin.rb, line 69
def action_change_issue_assignee
  issue_key     = @config.by_input('issue')
  assignee_name = @config.by_input('assignee')

  issue_key = action_search_issue['issue']['key'] if issue_key.empty?

  client.update_issue_assignee(issue_key, assignee_name)

  prompt.ok "[JIRA] Issue assignee changed to: #{assignee_name}"

  { 'issue' => { 'key' => issue_key, 'assignee' => assignee_name } }
end
action_change_issue_transition() click to toggle source

Public: Change issue transition.

Returns Hash.

# File lib/speedflow/plugin/jira/plugin.rb, line 85
def action_change_issue_transition
  issue_key     = config.by_input('issue')
  transition_id = config.by_input('transition')

  issue_key = action_search_issue['issue']['key'] if issue_key.empty?

  if transition_id.empty?
    transition_id = prompt.transition(client.issue_trans(issue_key))
  end

  client.update_issue_transition(issue_key, transition_id)

  prompt.ok "[JIRA] Issue transition changed to: #{transition_id}"

  { 'issue' => { 'key' => issue_key, 'transition' => transition_id } }
end
action_create_issue() click to toggle source

Public: Create issue.

Returns Hash of issue.

# File lib/speedflow/plugin/jira/plugin.rb, line 32
def action_create_issue
  title = @config.by_input('title')
  title = @prompt.title if title.empty?

  project_key = @config.by_input('project')
  project_key = @prompt.project(client.projects) if project_key.empty?

  issue_type_id = @config.by_input('type')
  if issue_type_id.empty?
    issue_type_id = @prompt.issue_type(client.issue_types)
  end

  issue = client.create_issue(project_key, title, issue_type_id)

  client.issue_output_format(issue)
end
action_search_issue() click to toggle source

Public: Search issue.

Returns Hash.

# File lib/speedflow/plugin/jira/plugin.rb, line 52
def action_search_issue
  limit   = config.by_input('limit', 20)
  project = config.by_input('project')
  project = prompt.project(client.projects) if project.empty?

  issue_key = prompt.issue do |title|
    client.search_issue(project, title).take(limit.to_i)
  end

  prompt.ok "[JIRA] Issue found: #{issue_key}"

  { 'issue' => { 'key' => issue_key } }
end
client() click to toggle source

Public: Plugin client.

Returns Client instance.

# File lib/speedflow/plugin/jira/plugin.rb, line 105
def client
  @client ||= Client.new(@config, @prompt)
end