Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/atlassian/jira_connect/serializers/pull_request_entity.rb')
-rw-r--r--lib/atlassian/jira_connect/serializers/pull_request_entity.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/atlassian/jira_connect/serializers/pull_request_entity.rb b/lib/atlassian/jira_connect/serializers/pull_request_entity.rb
new file mode 100644
index 00000000000..0ddfcbf52ea
--- /dev/null
+++ b/lib/atlassian/jira_connect/serializers/pull_request_entity.rb
@@ -0,0 +1,42 @@
+# frozen_string_literal: true
+
+module Atlassian
+ module JiraConnect
+ module Serializers
+ class PullRequestEntity < BaseEntity
+ STATUS_MAPPING = {
+ 'opened' => 'OPEN',
+ 'locked' => 'OPEN',
+ 'merged' => 'MERGED',
+ 'closed' => 'DECLINED'
+ }.freeze
+
+ expose :id, format_with: :string
+ expose :issueKeys do |mr|
+ JiraIssueKeyExtractor.new(mr.title, mr.description).issue_keys
+ end
+ expose :displayId do |mr|
+ mr.to_reference(full: true)
+ end
+ expose :title
+ expose :author, using: JiraConnect::Serializers::AuthorEntity
+ expose :user_notes_count, as: :commentCount
+ expose :source_branch, as: :sourceBranch
+ expose :target_branch, as: :destinationBranch
+ expose :lastUpdate do |mr|
+ mr.last_edited_at || mr.created_at
+ end
+ expose :status do |mr|
+ STATUS_MAPPING[mr.state] || 'UNKNOWN'
+ end
+
+ expose :sourceBranchUrl do |mr|
+ project_commits_url(mr.project, mr.source_branch)
+ end
+ expose :url do |mr|
+ merge_request_url(mr)
+ end
+ end
+ end
+ end
+end