Skip to content

Add designs repository export to relations export API

What does this MR do and why?

This MR adds project designs repository bundle export to the file of relations that are exported as part of Project Relations Export API (https://docs.gitlab.com/ee/api/project_relations_export.html).

It's going to be used in GitLab Migration (which includes groups and projects when bulk_import_projects feature flag is enabled) feature in order to import project repository from one GitLab instance to another.

Change is identical to !87824 (merged) and what is happening in file-based Project Export's DesignRepoSaver

Mentions #339421 (closed)

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. Create a project
  2. Create an issue and add some designs to it
  3. Start relations export for a project curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/<project_id>/export_relations"
  4. Verify designs bundle export is finished using https://gitlab.example.com/api/v4/projects/<project_id>/export_relations/status endpoint. Status should become 1
  5. Download exported bundle using https://gitlab.example.com/api/v4/projects/<project_id>/export_relations/download?relation=design. It should start download of design.tar.gz file

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