blob: 4551f38ba9806435eca80478313bf2896551ca08 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# frozen_string_literal: true
module Gitlab
module JiraImport
class MetadataCollector
attr_accessor :jira_issue, :metadata
def initialize(jira_issue)
@jira_issue = jira_issue
@metadata = []
end
def execute
add_field(%w(issuetype name), 'Issue type')
add_field(%w(priority name), 'Priority')
add_field('environment', 'Environment')
add_field('duedate', 'Due date')
add_parent
add_versions
return if metadata.empty?
metadata.join("\n").prepend("\n\n---\n\n**Issue metadata**\n\n")
end
private
def add_field(keys, field_label)
value = fields.dig(*keys)
return if value.blank?
metadata << "- #{field_label}: #{value}"
end
def add_parent
parent_issue_key = fields.dig('parent', 'key')
return if parent_issue_key.blank?
parent_summary_key = fields.dig('parent', 'fields', 'summary')
metadata << "- Parent issue: [#{parent_issue_key}] #{parent_summary_key}".strip
end
def add_versions
return if fields['fixVersions'].blank? || !fields['fixVersions'].is_a?(Array)
versions = fields['fixVersions'].map { |version| version['name'] }.compact.join(', ')
metadata << "- Fix versions: #{versions}"
end
def fields
jira_issue.fields
end
end
end
end
|