Draft: Extract integrations out of Project class
What does this MR do and why?
It's just some throw away refactoring that we could reimplement properly. I think Project
is overloaded of responsibilities and we should ideally have it stripped to its core and have other domains referencing it through project_id
with behavior implemented in each domain.
Today it's more like this:
flowchart LR
p[Project] --> i[Integrations]
p --> c[Ci]
p --> mr[MergeRequests]
p --> r[Repositories]
Instead a better way would be:
flowchart LR
Integrations --> Project
Ci --> Project
MergeRequests --> Project
Repositories --> Project
This MR attempts to move part of the integrations behavior into Integrations::
domain.
Screenshots or screen recordings
These are strongly recommended to assist reviewers and reduce the time to merge your change.
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Fabio Pitino