Problem to solve
I have two self-managed GitLab instances, each on a separate air-gapped network. I am leading a project to transfer projects periodically from the GitLab on network A to the GitLab on network B. I am using the GitLab API to create an export archive on GitLab A that is then transferred to network B and imported into GibLab B, also via the GitLab API. Some of these projects are very large, and I would like to minimize the size of the export archive file that is used by the projects/import-relation API for relation updates. I would like to achieve this by culling the export archive file from GitLab A before transferring it to network B. I’m OK with generating a full export archive from GibLab on network A, but I would like to minimize the size of the actual transfer file to network B.
Describe your question in as much detail as possible:
What is the minimal content required for an import-relation API call to succeed? For example, for an “issues” import-relation to succeed, can I simply provide an export archive file with only the issues.ndjson file at the expected location in the archive (having removed everything else), or does the import-relation API expect additional content?
A follow on question: How would projects/import-relations handle changes in the target project between imports? For example, what is the expected behavior during the projects/import-relation of issues to GibLab B from GitLab A if there have been issues added to GitLab B since the last import?
Versions
16.11
Please select whether options apply, and add the version information.
- Self-managed
- GitLab.com SaaS