Class: Terjira::IssueCLI
Constant Summary
OptionSupportable::OPTION_TO_SELECTOR
Instance Method Summary
collapse
Methods inherited from BaseCLI
banner, subcommand_prefix
#colorize_sprint_state, #render_sprint_detail, #render_sprints_summary, #sort_sprint_by_state, #summarise_sprint
#render_boards_summary
#redner_project_detail, #render_components_and_versions, #render_projects_summary
#render_divided_issues_by_status, #render_issue_detail, #render_issues, #summarise_issue
#formatted_date, #insert_new_line, #pastel, #render, #screen_width, #username_with_email
included, #resource_store, #suggest_options
Instance Method Details
#assign(*keys) ⇒ Object
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/terjira/issue_cli.rb', line 97
def assign(*keys)
issue = keys[0]
assignee = keys[1]
if assignee.nil?
issue = client_class.find(issue)
opts = suggest_options(required: [:assignee],
resouces: { issue: issue })
assignee = opts[:assignee]
end
client_class.assign(issue, assignee)
show(issue.key_value)
end
|
85
86
87
88
89
|
# File 'lib/terjira/issue_cli.rb', line 85
def (issue)
opts = suggest_options(required: [:comment])
issue = client_class.(issue, opts[:comment])
render_issue_detail(issue)
end
|
#edit(issue) ⇒ Object
75
76
77
78
79
80
81
|
# File 'lib/terjira/issue_cli.rb', line 75
def edit(issue)
return if options.blank?
issue = client_class.find(issue)
opts = suggest_options(resources: { issue: issue })
issue = client_class.update(issue, opts)
render_issue_detail(issue)
end
|
#list ⇒ Object
25
26
27
28
29
30
31
32
33
|
# File 'lib/terjira/issue_cli.rb', line 25
def list
opts = suggest_options
opts[:statusCategory] ||= %w(To\ Do In\ Progress) unless opts[:status]
opts[:assignee] ||= current_username
opts.delete(:assignee) if opts[:assignee] =~ /^all/i
issues = client_class.all(opts)
render_issues(issues)
end
|
#new ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/terjira/issue_cli.rb', line 60
def new
opts = suggest_options(required: [:project, :summary, :issuetype])
if opts[:issuetype].key_value.casecmp('epic').zero?
epic_name_field = Client::Field.epic_name
opts[epic_name_field.key] = write_epic_name
end
issue = client_class.create(opts)
render_issue_detail(issue)
end
|
#show(issue_key = nil) ⇒ Object
16
17
18
19
20
|
# File 'lib/terjira/issue_cli.rb', line 16
def show(issue_key = nil)
return invoke(:help) unless issue_key
issue = client_class.find(issue_key)
render_issue_detail(issue)
end
|
#take(issue) ⇒ Object
92
93
94
|
# File 'lib/terjira/issue_cli.rb', line 92
def take(issue)
assign(issue, current_username)
end
|
#trans(*args) ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/terjira/issue_cli.rb', line 37
def trans(*args)
issue = args.shift
raise 'must pass issue key or id' unless issue
status = args.join(' ') if args.present?
issue = client_class.find(issue, expand: 'transitions.fields')
transitions = issue.transitions
transition = transitions.find { |t| t.name.casecmp(status.to_s).zero? }
resources = if transition
{ status: transition, issue: issue }
else
{ statuses: transitions, issue: issue }
end
opts = suggest_options(required: [:status], resources: resources)
issue = client_class.trans(issue, opts)
render_issue_detail(issue)
end
|