Class: Terjira::IssueCLI
Constant Summary
Terjira::IssuePresenter::COMMENTS_SIZE
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
#comments_template, #issue_detail_template, #render_divided_issues_by_status, #render_issue_detail, #render_issues, #summarise_issue
#dim_none, #formatted_date, #insert_new_line, #pastel, #render, #screen_width, #username
included, #resource_store, #suggest_options, #suggest_related_value_options
Instance Method Details
#assign(*keys) ⇒ Object
133
134
135
136
137
138
139
140
141
142
143
144
|
# File 'lib/terjira/issue_cli.rb', line 133
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
|
#attach_file(issue, file) ⇒ Object
122
123
124
125
|
# File 'lib/terjira/issue_cli.rb', line 122
def attach_file(issue, file)
issue = client_class.attach_file(issue, file)
render_issue_detail(issue)
end
|
89
90
91
92
93
|
# File 'lib/terjira/issue_cli.rb', line 89
def (issue)
opts = suggest_options(required: [:comment])
issue = client_class.(issue, opts[:comment])
render_issue_detail(issue)
end
|
#delete(issue) ⇒ Object
82
83
84
85
|
# File 'lib/terjira/issue_cli.rb', line 82
def delete(issue)
client_class.delete(issue)
render("Deleted")
end
|
#edit(issue) ⇒ Object
71
72
73
74
75
76
77
78
79
|
# File 'lib/terjira/issue_cli.rb', line 71
def edit(issue)
return puts "Pass options to be updated. Use 'jira issue help edit' for the options." if options.blank?
issue = client_class.find(issue)
opts = suggest_options(resources: { issue: issue })
suggest_related_value_options(opts)
issue = client_class.update(issue, opts)
render_issue_detail(issue)
end
|
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
# File 'lib/terjira/issue_cli.rb', line 99
def (issue, = '')
opts = suggest_options(
resources: { issue: issue, comment_id: },
required: [:editable_comment]
)
if opts['editable_comment'].present?
= opts['editable_comment']['selected_comment']
new_content = opts['editable_comment']['new_content']
issue = client_class.(
issue,
.id,
new_content
)
render_issue_detail(issue)
else
render("You don't have any editable comment.")
end
end
|
#jql(*query) ⇒ Object
51
52
53
54
|
# File 'lib/terjira/issue_cli.rb', line 51
def jql(*query)
jql = query.join(" ")
render_issues Client::Issue.jql(jql)
end
|
#list ⇒ Object
38
39
40
41
42
43
44
45
|
# File 'lib/terjira/issue_cli.rb', line 38
def list
opts = suggest_options
opts[:statusCategory] ||= default_status_categories unless opts[:status]
opts[:assignee] ||= current_username
issues = client_class.all(opts)
render_issues(issues)
end
|
#new ⇒ Object
59
60
61
62
63
64
65
66
|
# File 'lib/terjira/issue_cli.rb', line 59
def new
opts = suggest_options(required: [:project, :summary, :issuetype])
suggest_related_value_options(opts)
issue = client_class.create(opts)
render_issue_detail(issue)
end
|
#open(issue) ⇒ Object
26
27
28
|
# File 'lib/terjira/issue_cli.rb', line 26
def open(issue)
open_url(issue_url(issue))
end
|
#search(*keys) ⇒ Object
147
148
149
150
|
# File 'lib/terjira/issue_cli.rb', line 147
def search(*keys)
search_term = client_class.search(summary: keys[0])
render_issues(search_term)
end
|
#show(issue = nil) ⇒ Object
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/terjira/issue_cli.rb', line 14
def show(issue = nil)
return invoke(:help) unless issue
issue = client_class.find(issue)
if issue.issuetype.name.casecmp('epic').zero?
epic_issues = client_class.all_epic_issues(issue)
render_issue_detail(issue, epic_issues)
else
render_issue_detail(issue)
end
end
|
#take(issue) ⇒ Object
128
129
130
|
# File 'lib/terjira/issue_cli.rb', line 128
def take(issue)
assign(issue, current_username)
end
|
#trans(*args) ⇒ Object
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
# File 'lib/terjira/issue_cli.rb', line 154
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
|
#url(issue) ⇒ Object
31
32
33
|
# File 'lib/terjira/issue_cli.rb', line 31
def url(issue)
puts issue_url(issue)
end
|