diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-03 15:09:56 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-03 15:09:56 +0000 |
commit | c08d9c22569d1c9e7c7737e183969593394133d9 (patch) | |
tree | 8ce1722f852f8921656080e04f6c9e16fa71ddb5 /lib/gitlab/jira_import | |
parent | 546ddc3f6ac96fdf09934390a938bb391d07dc94 (diff) | |
download | gitlab-ce-c08d9c22569d1c9e7c7737e183969593394133d9.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/jira_import')
-rw-r--r-- | lib/gitlab/jira_import/issue_serializer.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/gitlab/jira_import/issue_serializer.rb b/lib/gitlab/jira_import/issue_serializer.rb index 0be5d22065a..cdcb62ac6e9 100644 --- a/lib/gitlab/jira_import/issue_serializer.rb +++ b/lib/gitlab/jira_import/issue_serializer.rb @@ -4,12 +4,14 @@ module Gitlab module JiraImport class IssueSerializer attr_reader :jira_issue, :project, :params, :formatter + attr_accessor :metadata def initialize(project, jira_issue, params = {}) @jira_issue = jira_issue @project = project @params = params @formatter = Gitlab::ImportFormatter.new + @metadata = [] end def execute @@ -36,6 +38,7 @@ module Gitlab body << formatter.author_line(jira_issue.reporter.displayName) body << formatter.assignee_line(jira_issue.assignee.displayName) if jira_issue.assignee body << jira_issue.description + body << add_metadata body.join end @@ -48,6 +51,50 @@ module Gitlab Issuable::STATE_ID_MAP[:opened] end end + + def add_metadata + add_field(%w(issuetype name), 'Issue type') + add_field(%w(priority name), 'Priority') + add_labels + 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 + + def add_field(keys, field_label) + value = fields.dig(*keys) + return if value.blank? + + metadata << "- #{field_label}: #{value}" + end + + def add_labels + return if fields['labels'].blank? + + metadata << "- Labels: #{fields['labels'].join(', ')}" + end + + def add_parent + parent_issue_key = fields.dig('parent', 'key') + return if parent_issue_key.blank? + + metadata << "- Parent issue: [#{parent_issue_key}] #{fields['parent']['fields']['summary']}" + end + + def add_versions + return if fields['fixVersions'].blank? + + metadata << "- Fix versions: #{fields['fixVersions'].map { |version| version['name'] }.join(', ')}" + end + + def fields + jira_issue.fields + end end end end |