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?
-
Changelog entry added, if necessary -
Documentation created/updated via this MR -
Documentation reviewed by technical writer or follow-up review issue created -
Tests added for this feature/bug -
Tested in all supported browsers -
Conforms to the code review guidelines -
Conforms to the merge request performance guidelines -
Conforms to the style guides -
Conforms to the database guides -
Link to e2e tests MR added if this MR has Requires e2e tests label. See the Test Planning Process. -
Security reports checked/validated by reviewer
Edited by Nikola Bozic