@@ -16,7 +16,7 @@ There are several ways to import a project.
...
@@ -16,7 +16,7 @@ There are several ways to import a project.
### Importing via UI
### Importing via UI
The first option is to simply [import the Project tarball file via the GitLab UI](../user/project/settings/import_export.md#import-the-project):
The first option is to simply [import the Project tarball file via the GitLab UI](../user/project/settings/import_export.md#import-a-project-and-its-data):
1. Create the group `qa-perf-testing`
1. Create the group `qa-perf-testing`
1. Import the [GitLab FOSS project tarball](https://gitlab.com/gitlab-org/quality/performance-data/-/blob/master/projects_export/gitlabhq_export.tar.gz) into the Group.
1. Import the [GitLab FOSS project tarball](https://gitlab.com/gitlab-org/quality/performance-data/-/blob/master/projects_export/gitlabhq_export.tar.gz) into the Group.
Projects can be exported and imported only between versions of GitLab with matching Import/Export versions.
For example, 8.10.3 and 8.11 have the same Import/Export version (0.1.3)
and the exports between them are compatible.
## Between CE and EE
You can export projects from the [Community Edition to the Enterprise Edition](https://about.gitlab.com/install/ce-or-ee/) and vice versa.
1. On the top bar, select **Menu > Projects** and find your project.
This assumes [version history](#version-history) requirements are met.
1. On the left sidebar, select **Settings**.
1. Expand **Advanced**.
1. Select **Export project**.
1. After the export is generated, you should receive an email with a link to download the file.
1. Alternatively, you can come back to the project settings and download the file from there or
generate a new export. After the file is available, the page should show the **Download export**
button.
If you're exporting a project from the Enterprise Edition to the Community Edition, you may lose data that is retained only in the Enterprise Edition. For more information, see [downgrading from EE to CE](../../../index.md).
The export is generated in your configured `shared_path`, a temporary shared directory, and then
moved to your configured `uploads_directory`. Every 24 hours, a worker deletes these export files.
## Exported contents
### Items that are exported
The following items are exported:
The following items are exported:
- Project and wiki repositories
- Project and wiki repositories
- Project uploads
- Project uploads
- Project configuration, excluding integrations
- Project configuration, excluding integrations
- Issues with comments, merge requests with diffs and comments, labels, milestones, snippets, time tracking,
- Issues with comments, merge requests with diffs and comments, labels, milestones, snippets, time
and other project entities
tracking, and other project entities
- Design Management files and data
- Design Management files and data
- LFS objects
- LFS objects
- Issue boards
- Issue boards
- Pipelines history
- Pipelines history
- Push Rules
- Push Rules
- Awards
- Awards
- Group members are exported as project members, as long as the user has the Maintainer role in the
exported project's group, or is an administrator
The following items are **not** exported:
The following items are **not** exported:
...
@@ -140,6 +80,7 @@ The following items are **not** exported:
...
@@ -140,6 +80,7 @@ The following items are **not** exported:
- Any encrypted tokens
- Any encrypted tokens
- Merge Request Approvers
- Merge Request Approvers
- Repository size limits
- Repository size limits
- Deploy keys allowed to push to protected branches
These content rules also apply to creating projects from templates on the
These content rules also apply to creating projects from templates on the
[group](../../group/custom_project_templates.md)
[group](../../group/custom_project_templates.md)
...
@@ -150,87 +91,146 @@ NOTE:
...
@@ -150,87 +91,146 @@ NOTE:
For more details on the specific data persisted in a project export, see the
For more details on the specific data persisted in a project export, see the
all imported projects are given `Private` visibility.
> Default maximum import file size [changed](https://gitlab.com/gitlab-org/gitlab/-/issues/251106) from 50 MB to unlimited in GitLab 13.8.
Deploy keys aren't imported. To use deploy keys, you must enable them in your imported project and update protected branches.
WARNING:
### Import large projects **(FREE SELF)**
Only import projects from sources you trust. If you import a project from an untrusted source, it
may be possible for an attacker to steal your sensitive data.
1. The GitLab project import feature is the first import option when creating a
If you have a larger project, consider using a Rake task as described in the [developer documentation](../../../development/import_project.md#importing-via-a-rake-task).
new project. Select **GitLab export**:
![New project](img/import_export_new_project.png)
## Automate group and project import **(PREMIUM)**
1. Enter your project name and URL. Then select the file you exported previously:
For information on automating user, group, and project import API calls, see
[Automate group and project import](../import/index.md#automate-group-and-project-import).
![Select file](img/import_export_select_file.png)
## Maximum import file size
1. Select **Import project** to begin importing. Your newly imported project
Administrators can set the maximum import file size one of two ways:
page appears shortly.
NOTE:
- With the `max_import_size` option in the [Application settings API](../../../api/settings.md#change-application-settings).
If use of the `Internal` visibility level
- In the [Admin Area UI](../../admin_area/settings/account_and_limit_settings.md#max-import-size).
all imported projects are given the visibility of `Private`.
The maximum import file size can be set by the Administrator, and the default is `0` (unlimited).
The default is `0` (unlimited).
As an administrator, you can modify the maximum import file size. To do so, use the `max_import_size` option in the [Application settings API](../../../api/settings.md#change-application-settings) or the [Admin Area UI](../../admin_area/settings/account_and_limit_settings.md).
### Project import status
## Map users for import
You can query an import through the [Project import/export API](../../../api/project_import_export.md#import-status).
Imported users can be mapped by their public email addresses on self-managed instances, if an administrator (not an owner) does the import.
As described in the API documentation, the query may return an import error or exceptions.
### Import large projects **(FREE SELF)**
- Public email addresses are not set by default. Users must
[set it in their profiles](../../profile/index.md#set-your-public-email)
for mapping to work correctly.
- For contributions to be mapped correctly, users must be an existing member of the namespace,
or they can be added as a member of the project. Otherwise, a supplementary comment is left to mention that the original author and the MRs, notes, or issues that are owned by the importer.
If you have a larger project, consider using a Rake task, as described in our [developer documentation](../../../development/import_project.md#importing-via-a-rake-task).
For project migration imports performed over GitLab.com groups, preserving author information is
possible through a [professional services engagement](https://about.gitlab.com/services/migration/).
## Rate Limits
## Rate Limits
To help avoid abuse, by default, users are rate limited to:
To help avoid abuse, by default, users are rate limited to: