Skip to content

Draft: Extract integrations out of Project class

Fabio Pitino requested to merge scratch-extract-integrations-from-project into master

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.

Edited by Fabio Pitino

Merge request reports