Class: ProtectedBranches::DestroyService
- Inherits:
-
BaseService
- Object
- BaseService
- BaseService
- ProtectedBranches::DestroyService
- Defined in:
- app/services/protected_branches/destroy_service.rb
Constant Summary
Constants inherited from BaseService
BaseService::UnauthorizedError
Instance Attribute Summary
Attributes inherited from BaseService
Attributes inherited from BaseService
#current_user, #params, #project
Instance Method Summary collapse
Methods inherited from BaseService
#after_execute, #initialize, #refresh_cache
Methods inherited from BaseService
Methods included from BaseServiceUtility
#deny_visibility_level, #event_service, #log_error, #log_info, #notification_service, #system_hook_service, #todo_service, #visibility_level
Methods included from Gitlab::Allowable
Constructor Details
This class inherits a constructor from ProtectedBranches::BaseService
Instance Method Details
#execute(protected_branch) ⇒ Object
5 6 7 8 9 10 11 12 |
# File 'app/services/protected_branches/destroy_service.rb', line 5 def execute(protected_branch) raise Gitlab::Access::AccessDeniedError unless can?(current_user, :destroy_protected_branch, protected_branch) protected_branch.destroy.tap do refresh_cache publish_deleted_event end end |
#publish_deleted_event ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/services/protected_branches/destroy_service.rb', line 14 def publish_deleted_event parent_type = if project_or_group.is_a?(Project) ::Repositories::ProtectedBranchDestroyedEvent::PARENT_TYPES[:project] else ::Repositories::ProtectedBranchDestroyedEvent::PARENT_TYPES[:group] end ::Gitlab::EventStore.publish( ::Repositories::ProtectedBranchDestroyedEvent.new(data: { parent_id: project_or_group.id, parent_type: parent_type }) ) end |