Class: Gitlab::HookData::MergeRequestBuilder
- Inherits:
-
BaseBuilder
- Object
- BaseBuilder
- Gitlab::HookData::MergeRequestBuilder
- Defined in:
- lib/gitlab/hook_data/merge_request_builder.rb
Constant Summary
Constants inherited from BaseBuilder
BaseBuilder::MARKDOWN_SIMPLE_IMAGE
Instance Attribute Summary
Attributes inherited from BaseBuilder
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from BaseBuilder
Constructor Details
This class inherits a constructor from Gitlab::HookData::BaseBuilder
Class Method Details
.safe_hook_attributes ⇒ Object
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 |
# File 'lib/gitlab/hook_data/merge_request_builder.rb', line 6 def self.safe_hook_attributes %i[ assignee_id author_id blocking_discussions_resolved created_at description draft head_pipeline_id id iid last_edited_at last_edited_by_id merge_commit_sha merge_error merge_params merge_status merge_user_id merge_when_pipeline_succeeds milestone_id reviewer_ids source_branch source_project_id state_id target_branch target_project_id time_estimate title updated_at updated_by_id ].freeze end |
.safe_hook_relations ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/gitlab/hook_data/merge_request_builder.rb', line 39 def self.safe_hook_relations %i[ assignees labels reviewers total_time_spent time_change ].freeze end |
Instance Method Details
#build ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/gitlab/hook_data/merge_request_builder.rb', line 51 def build attrs = { description: absolute_image_urls(merge_request.description), url: Gitlab::UrlBuilder.build(merge_request), source: merge_request.source_project.try(:hook_attrs), target: merge_request.target_project.hook_attrs, last_commit: merge_request.diff_head_commit&.hook_attrs, work_in_progress: merge_request.draft?, draft: merge_request.draft?, total_time_spent: merge_request.total_time_spent, time_change: merge_request.time_change, human_total_time_spent: merge_request.human_total_time_spent, human_time_change: merge_request.human_time_change, human_time_estimate: merge_request.human_time_estimate, assignee_ids: merge_request.assignee_ids, assignee_id: merge_request.assignee_ids.first, # This key is deprecated reviewer_ids: merge_request.reviewer_ids, labels: merge_request.labels_hook_attrs, state: merge_request.state, blocking_discussions_resolved: merge_request.mergeable_discussions_state?, first_contribution: merge_request.first_contribution?, detailed_merge_status: detailed_merge_status } merge_request.attributes.with_indifferent_access.slice(*self.class.safe_hook_attributes) .merge!(attrs) end |