Import multiple repositories by uploading a manifest file
- Introduced in GitLab 11.2.
- Ability to re-import projects introduced in GitLab 15.9.
GitLab allows you to import all the required Git repositories based on a manifest file like the one used by the Android repository. Use the manifest to import a project with many repositories like the Android Open Source Project (AOSP).
- GitLab must use PostgreSQL for its database, because subgroups are needed for the manifest import to work. Read more about the database requirements.
- At least the Maintainer role on the destination group to import to. Using the Developer role for this purpose was deprecated in GitLab 15.8 and will be removed in GitLab 16.0.
A manifest must be an XML file. There must be one
remote tag with a
attribute that contains a URL to a Git server, and each
project tag must have
path attribute. GitLab then builds the URL to the repository
by combining the URL from the
remote tag with a project name.
A path attribute is used to represent the project path in GitLab.
Below is a valid example of a manifest file:
<manifest> <remote review="https://android.googlesource.com/" /> <project path="build/make" name="platform/build" /> <project path="build/blueprint" name="platform/build/blueprint" /> </manifest>
As a result, the following projects are created:
Import the repositories
To start the import:
- From your GitLab dashboard select New project.
- Switch to the Import project tab.
- Select Manifest file.
- Provide GitLab with a manifest XML file.
- Select a group you want to import to (you need to create a group first if you don’t have one).
- Select List available repositories. At this point, you are redirected to the import status page with projects list based on the manifest file.
- To import:
- All projects for the first time: Select Import all repositories.
- Individual projects again: Select Re-import. Specify a new name and select Re-import again. Re-importing creates a new copy of the source project.