Reduce the amount of duplication across BulkImport codebase
<!--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=324063)
</details>
<!--IssueSummary end-->
Suggestion from https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56018#note_526104862
## Problem
We have a fair amount of duplication in BulkImport codebase (e.g. compare https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56018 & https://gitlab.com/gitlab-org/gitlab/-/merge_requests/55981) as well as in the tests. Any change in shared functionality can trigger a need in updating a lot of test and a lot of pipelines.
Identify common patterns, behaviours and shared examples that can be extracted in order to reduce the amount of duplication throughout BulkImport codebase.
issue