33 lines
904 B
Ruby
33 lines
904 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Atlassian
|
||
|
module JiraConnect
|
||
|
module Serializers
|
||
|
class BranchEntity < BaseEntity
|
||
|
expose :id do |branch|
|
||
|
Digest::SHA256.hexdigest(branch.name)
|
||
|
end
|
||
|
expose :issueKeys do |branch|
|
||
|
JiraIssueKeyExtractor.new(branch.name).issue_keys
|
||
|
end
|
||
|
expose :name
|
||
|
expose :lastCommit, using: JiraConnect::Serializers::CommitEntity do |branch, options|
|
||
|
options[:project].commit(branch.dereferenced_target)
|
||
|
end
|
||
|
|
||
|
expose :url do |branch, options|
|
||
|
project_commits_url(options[:project], branch.name)
|
||
|
end
|
||
|
expose :createPullRequestUrl do |branch, options|
|
||
|
project_new_merge_request_url(
|
||
|
options[:project],
|
||
|
merge_request: {
|
||
|
source_branch: branch.name
|
||
|
}
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|