Skip to content

Split Gitea and Github Importers to have separate importing flow

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Problem statement

When #235770 is complete & Gitea and Github importers will share the same Gitlab::GithubImport::ParallelImporter (after !37934 (closed) is merged) due to Gitea being (mostly) Github API compatible (with few minor differences).

https://gitlab.com/gitlab-org/gitlab/blob/georgekoltsov/gitea-parallel-importer/lib/gitlab/import_sources.rb#L14

This allows faster change that affects both Importers but can cause unexpected problems when individual importer needs to be tweaked without changing behaviour in other.

Proposed solution

For this reason, split up Gitea and Github to have separate importers. A lot of Github Importer's code can still be reused, without introducing duplication.

Github Import process is composed of a set of workers and importers that are going to be ran in a specific sequence.

E.g.

  • Import base repo
  • Import labels, milestones
  • Import MRs, issues

https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/github_import/parallel_importer.rb#L7-7

Add similar to Github importer for Gitea, reusing representation, importer classes but having a separate Importing flow, to allow alternations to the import process, given each individual vendor limitation (for example, Gitea Importer does not import diff notes on MRs, and currently the importer class execution is skipped with a conditional, which is not ideal !37934 (diffs))

Edited by 🤖 GitLab Bot 🤖