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