Module: Legion::Extensions::Jira::Issues::Runners::Issues
- Includes:
- Helpers::Lex, Helpers::Client
- Included in:
- Client
- Defined in:
- lib/legion/extensions/jira/issues/runners/issues.rb
Instance Method Summary
collapse
-
#bulk_create_issues(issues:) ⇒ Object
-
#create_issue(project_key:, summary:, issue_type: 'Task', description: nil, assignee: nil, priority: nil, labels: nil) ⇒ Object
-
#delete_issue(issue_key:, delete_subtasks: false) ⇒ Object
-
#get_issue(issue_key:, fields: nil, expand: nil) ⇒ Object
-
#get_issue_changelog(issue_key:, start_at: 0, max_results: 100) ⇒ Object
-
#update_issue(issue_key:, summary: nil, description: nil, assignee: nil, priority: nil) ⇒ Object
#connection, #upload_connection
Instance Method Details
#bulk_create_issues(issues:) ⇒ Object
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/legion/extensions/jira/issues/runners/issues.rb', line 57
def bulk_create_issues(issues:, **)
issue_updates = issues.map do |i|
{
fields: {
project: { key: i[:project_key] },
summary: i[:summary],
issuetype: { name: i[:issue_type] || 'Task' }
}
}
end
resp = connection(**).post('/rest/api/3/issue/bulk', { issueUpdates: issue_updates })
{ issues: resp.body }
end
|
#create_issue(project_key:, summary:, issue_type: 'Task', description: nil, assignee: nil, priority: nil, labels: nil) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/legion/extensions/jira/issues/runners/issues.rb', line 13
def create_issue(project_key:, summary:, issue_type: 'Task', description: nil,
assignee: nil, priority: nil, labels: nil, **)
body = {
fields: {
project: { key: project_key },
summary: summary,
issuetype: { name: issue_type }
}
}
body[:fields][:description] = description if description
body[:fields][:assignee] = { accountId: assignee } if assignee
body[:fields][:priority] = { name: priority } if priority
body[:fields][:labels] = labels if labels
resp = connection(**).post('/rest/api/3/issue', body)
{ issue: resp.body }
end
|
#delete_issue(issue_key:, delete_subtasks: false) ⇒ Object
48
49
50
51
52
53
54
55
|
# File 'lib/legion/extensions/jira/issues/runners/issues.rb', line 48
def delete_issue(issue_key:, delete_subtasks: false, **)
params = {}
params[:deleteSubtasks] = true if delete_subtasks
resp = connection(**).delete("/rest/api/3/issue/#{issue_key}") do |req|
req.params = params
end
{ deleted: resp.status == 204, issue_key: issue_key }
end
|
#get_issue(issue_key:, fields: nil, expand: nil) ⇒ Object
30
31
32
33
34
35
36
|
# File 'lib/legion/extensions/jira/issues/runners/issues.rb', line 30
def get_issue(issue_key:, fields: nil, expand: nil, **)
params = {}
params[:fields] = fields if fields
params[:expand] = expand if expand
resp = connection(**).get("/rest/api/3/issue/#{issue_key}", params)
{ issue: resp.body }
end
|
#get_issue_changelog(issue_key:, start_at: 0, max_results: 100) ⇒ Object
71
72
73
74
75
|
# File 'lib/legion/extensions/jira/issues/runners/issues.rb', line 71
def get_issue_changelog(issue_key:, start_at: 0, max_results: 100, **)
params = { startAt: start_at, maxResults: max_results }
resp = connection(**).get("/rest/api/3/issue/#{issue_key}/changelog", params)
{ changelog: resp.body }
end
|
#update_issue(issue_key:, summary: nil, description: nil, assignee: nil, priority: nil) ⇒ Object
38
39
40
41
42
43
44
45
46
|
# File 'lib/legion/extensions/jira/issues/runners/issues.rb', line 38
def update_issue(issue_key:, summary: nil, description: nil, assignee: nil, priority: nil, **)
fields = {}
fields[:summary] = summary if summary
fields[:description] = description if description
fields[:assignee] = { accountId: assignee } if assignee
fields[:priority] = { name: priority } if priority
resp = connection(**).put("/rest/api/3/issue/#{issue_key}", { fields: fields })
{ updated: resp.status == 204, issue_key: issue_key }
end
|