Skip to content

Refactor SystemHooksService (Decrease CyclomaticComplexity)

What does this MR do?

This MR reduces the Cyclomatic Complexity in SystemHooksService class as listed here.
All event-data logic has been extracted into a set of smaller focused classes, which share behaviour in EventInfos::Base class and each adding own specific data, thereby avoiding big conditionals.
Specs have been just slightly updated - not to rely on a private method (build_event_name), but rather on the result of the new object.
The specs in spec/services/system_hooks_service_spec.rb should also be refactored since they basically just test event data assembly

What are the relevant issue numbers?

https://gitlab.com/gitlab-org/gitlab-ce/issues/31362

Does this MR meet the acceptance criteria?

Edited by Nikola Bozic

Merge request reports