Module: NotificationBranchSelection
- Extended by:
- ActiveSupport::Concern
- Included in:
- ChatNotificationService, EmailsOnPushService, PipelinesEmailService
- Defined in:
- app/models/concerns/notification_branch_selection.rb
Overview
Concern handling functionality around deciding whether to send notification for activities on a specified branch or not. Will be included in ChatNotificationService and PipelinesEmailService classes.
Instance Method Summary collapse
Instance Method Details
#branch_choices ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'app/models/concerns/notification_branch_selection.rb', line 9 def branch_choices [ [_('All branches'), 'all'].freeze, [_('Default branch'), 'default'].freeze, [_('Protected branches'), 'protected'].freeze, [_('Default branch and protected branches'), 'default_and_protected'].freeze ].freeze end |
#notify_for_branch?(data) ⇒ Boolean
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/models/concerns/notification_branch_selection.rb', line 18 def notify_for_branch?(data) ref = if data[:ref] Gitlab::Git.ref_name(data[:ref]) else data.dig(:object_attributes, :ref) end is_default_branch = ref == project.default_branch is_protected_branch = ProtectedBranch.protected?(project, ref) case branches_to_be_notified when "all" true when "default" is_default_branch when "protected" is_protected_branch when "default_and_protected" is_default_branch || is_protected_branch else false end end |