Decouple code for mirroring, forking and importing
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=216107) </details> <!--IssueSummary end--> ## Summary Mirroring, forking and importing are different features but they are re-using some code to function. ## Improvements The flow of code should be clearer given that we won't need to re-use models and methods. It'll be easier to read and understand. ## Risks - The mentioned features may break. - Increase in DB size as this may involve having separate `import_states` stable for each feature. ## Involved components - `app/models/project.rb` - `app/models/project_import_state.rb` - `ee/app/models/ee/project.rb` - `ee/app/models/ee/project_import_state.rb`
issue