Skip to content

Add external pull requests to Project Migration

What does this MR do and why?

Mentions #339409 (closed)

this feature is behind bulk_import_projects feature flag that is currently off by default (and disabled on .com).

This MR adds External Pull Requests migration when using Group Migration that includes projects (https://docs.gitlab.com/ee/user/group/import/). It's doing exactly the same thing as file-based Import/Export by using it's RelationFactory within NdjsonPipeline which is an Import/Export class.

It's also similar to our other BulkImports pipelines, like merge requests, issues, labels

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

  1. Feature.enable(:bulk_import)
  2. Feature.enable(:bulk_import_projects)
  3. Create a top level group and project in it
  4. Create external pull request (I am not entirely sure how to do that)
  5. Go to /groups/new#import-group-pane page and enter instance url and access token (needs to be api & read_repository scope)
  6. Select newly created group and click Import
  7. Wait for Group import to complete and verify imported project's external pull requests

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 George Koltsov

Merge request reports