Class: Gitlab::HookData::IssueBuilder
Constant Summary
Constants inherited
from BaseBuilder
BaseBuilder::MARKDOWN_SIMPLE_IMAGE
Instance Attribute Summary
Attributes inherited from BaseBuilder
#object
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from BaseBuilder
#initialize
Class Method Details
.safe_hook_attributes ⇒ Object
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
|
# File 'lib/gitlab/hook_data/issue_builder.rb', line 17
def self.safe_hook_attributes
%i[
assignee_id
author_id
closed_at
confidential
created_at
description
discussion_locked
due_date
id
iid
last_edited_at
last_edited_by_id
milestone_id
moved_to_id
duplicated_to_id
project_id
relative_position
state_id
time_estimate
title
updated_at
updated_by_id
].freeze
end
|
.safe_hook_relations ⇒ Object
6
7
8
9
10
11
12
13
14
15
|
# File 'lib/gitlab/hook_data/issue_builder.rb', line 6
def self.safe_hook_relations
%i[
assignees
labels
total_time_spent
time_change
severity
escalation_status
].freeze
end
|
Instance Method Details
#build ⇒ Object
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/gitlab/hook_data/issue_builder.rb', line 46
def build
attrs = {
description: absolute_image_urls(issue.description),
url: Gitlab::UrlBuilder.build(issue),
total_time_spent: issue.total_time_spent,
time_change: issue.time_change,
human_total_time_spent: issue.human_total_time_spent,
human_time_change: issue.human_time_change,
human_time_estimate: issue.human_time_estimate,
assignee_ids: issue.assignee_ids,
assignee_id: issue.assignee_ids.first, labels: issue.labels_hook_attrs,
state: issue.state,
severity: issue.severity
}
if issue.supports_escalation? && issue.escalation_status
attrs[:escalation_status] = issue.escalation_status.status_name
end
issue.attributes.with_indifferent_access.slice(*self.class.safe_hook_attributes)
.merge!(attrs)
end
|