diff options
Diffstat (limited to 'doc/user/project/import')
-rw-r--r-- | doc/user/project/import/bitbucket.md | 11 | ||||
-rw-r--r-- | doc/user/project/import/bitbucket_server.md | 7 | ||||
-rw-r--r-- | doc/user/project/import/fogbugz.md | 5 | ||||
-rw-r--r-- | doc/user/project/import/gitea.md | 11 | ||||
-rw-r--r-- | doc/user/project/import/github.md | 28 | ||||
-rw-r--r-- | doc/user/project/import/gitlab_com.md | 7 | ||||
-rw-r--r-- | doc/user/project/import/index.md | 25 | ||||
-rw-r--r-- | doc/user/project/import/manifest.md | 9 | ||||
-rw-r--r-- | doc/user/project/import/phabricator.md | 6 | ||||
-rw-r--r-- | doc/user/project/import/repo_by_url.md | 5 | ||||
-rw-r--r-- | doc/user/project/import/svn.md | 2 |
11 files changed, 81 insertions, 35 deletions
diff --git a/doc/user/project/import/bitbucket.md b/doc/user/project/import/bitbucket.md index 98b46650b42..29d29c12536 100644 --- a/doc/user/project/import/bitbucket.md +++ b/doc/user/project/import/bitbucket.md @@ -31,11 +31,12 @@ When importing: - Repository public access is retained. If a repository is private in Bitbucket, it's created as private in GitLab as well. -## Prerequisite for GitLab self-managed +## Prerequisites -To import your projects from Bitbucket Cloud, the [Bitbucket Cloud integration](../../../integration/bitbucket.md) -must be enabled. If it isn't enabled, ask your GitLab administrator to enable it. By default it's -enabled on GitLab.com. +- [Bitbucket Cloud integration](../../../integration/bitbucket.md) must be enabled. If that integration is not enabled, ask your GitLab administrator + to enable it. The Bitbucket Cloud integration is enabled by default on GitLab.com. +- At least the Maintainer role on the destination group to import to. Using the Developer role for this purpose was + [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/387891) in GitLab 15.8 and will be removed in GitLab 16.0. ## How it works @@ -102,7 +103,7 @@ Bitbucket username after connecting their Bitbucket account in the To fix this, the user must verify that their Bitbucket external UID in the GitLab database matches their current Bitbucket public name, and reconnect if there's a mismatch: -1. [Use the API to get the currently authenticated user](../../../api/users.md#for-normal-users-1). +1. [Use the API to get the currently authenticated user](../../../api/users.md#for-non-administrator-users-1). 1. In the API response, the `identities` attribute contains the Bitbucket account that exists in the GitLab database. If the `extern_uid` doesn't match the current Bitbucket public name, the diff --git a/doc/user/project/import/bitbucket_server.md b/doc/user/project/import/bitbucket_server.md index d7fa1338c55..db2a1d956ab 100644 --- a/doc/user/project/import/bitbucket_server.md +++ b/doc/user/project/import/bitbucket_server.md @@ -24,10 +24,11 @@ created as private in GitLab as well. ## Import your Bitbucket repositories -Prerequisite: +Prerequisites: -- An administrator must have enabled the **Bitbucket Server** in - **Admin > Settings > General > Visibility and access controls > Import sources**. +- An administrator must enable **Bitbucket Server** in **Admin > Settings > General > Visibility and access controls > Import sources**. +- At least the Maintainer role on the destination group to import to. Using the Developer role for this purpose was + [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/387891) in GitLab 15.8 and will be removed in GitLab 16.0. To import your Bitbucket repositories: diff --git a/doc/user/project/import/fogbugz.md b/doc/user/project/import/fogbugz.md index f6395fd9234..08ee4c70dda 100644 --- a/doc/user/project/import/fogbugz.md +++ b/doc/user/project/import/fogbugz.md @@ -14,6 +14,11 @@ The importer imports all of your cases and comments with the original case numbers and timestamps. You can also map FogBugz users to GitLab users. +Prerequisite: + +- At least the Maintainer role on the destination group to import to. Using the Developer role for this purpose was + [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/387891) in GitLab 15.8 and will be removed in GitLab 16.0. + To import your project from FogBugz: 1. Sign in to GitLab. diff --git a/doc/user/project/import/gitea.md b/doc/user/project/import/gitea.md index 46e6b6d377d..fb64c902b38 100644 --- a/doc/user/project/import/gitea.md +++ b/doc/user/project/import/gitea.md @@ -6,11 +6,18 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Import your project from Gitea to GitLab **(FREE)** +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/381902) in GitLab 15.8, GitLab no longer automatically creates namespaces or groups that don't exist. GitLab also no longer falls back to using the user's personal namespace if the namespace or group name is taken. + Import your projects from Gitea to GitLab with minimal effort. NOTE: This requires Gitea `v1.0.0` or later. +Prerequisite: + +- At least the Maintainer role on the destination group to import to. Using the Developer role for this purpose was + [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/387891) in GitLab 15.8 and will be removed in GitLab 16.0. + The Gitea importer can import: - Repository description @@ -30,10 +37,6 @@ in your GitLab instance. This means the project creator (usually the user that started the import process) is set as the author. A reference, however, is kept on the issue about the original Gitea author. -The importer creates any new namespaces (groups) if they don't exist. If the -namespace is taken, the repository is imported under the user's namespace -that started the import process. - ## Import your Gitea repositories The importer page is visible when you create a new project. diff --git a/doc/user/project/import/github.md b/doc/user/project/import/github.md index c1297cbf554..da3637541d9 100644 --- a/doc/user/project/import/github.md +++ b/doc/user/project/import/github.md @@ -7,6 +7,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Import your project from GitHub to GitLab **(FREE)** +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/381902) in GitLab 15.8, GitLab no longer automatically creates namespaces or groups that don't exist. GitLab also no longer falls back to using the user's personal namespace if the namespace or group name is taken. + You can import your GitHub repositories: - From either GitHub.com or GitHub Enterprise. @@ -22,6 +24,9 @@ If you are importing to a self-managed GitLab instance, you can use the [GitHub Rake task](../../../administration/raketasks/github_import.md) instead. This allows you to import projects without the constraints of a [Sidekiq](../../../development/sidekiq/index.md) worker. +NOTE: +If you are importing a project using the GitHub Rake task, GitLab still creates namespaces or groups that don't exist. + If you are importing from GitHub Enterprise to a self-managed GitLab instance: - You must first enable [GitHub integration](../../../integration/github.md). @@ -40,9 +45,7 @@ When importing projects: - If a user referenced in the project is not found in the GitLab database, the project creator is set as the author and assignee. The project creator is usually the user that initiated the import process. A note on the issue mentioning the original GitHub author is added. -- The importer creates any new namespaces (or groups) if they do not exist, or, if the namespace is taken, the - repository is imported under the namespace of the user who initiated the import process. The namespace or repository - name can also be edited, with the proper permissions. +- You can change the target namespace and target repository name before you import. - The importer also imports branches on forks of projects related to open pull requests. These branches are imported with a naming scheme similar to `GH-SHA-username/pull-request-number/fork-name/branch`. This may lead to a discrepancy in branches compared to those of the GitHub repository. @@ -54,6 +57,9 @@ For an overview of the import process, see the video [Migrating from GitHub to G ## Prerequisites +At least the Maintainer role on the destination group to import to. Using the Developer role for this purpose was +[deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/387891) in GitLab 15.8 and will be removed in GitLab 16.0. + When issues and pull requests are being imported, the importer attempts to find their GitHub authors and assignees in the database of the GitLab instance. Pull requests are called _merge requests_ in GitLab. @@ -68,6 +74,8 @@ GitLab content imports that use GitHub accounts require that the GitHub public-f all comments and contributions are properly mapped to the same user in GitLab. GitHub Enterprise does not require this field to be populated so you may have to add it on existing accounts. +See also [Branch protection rules and project settings](#branch-protection-rules-and-project-settings) for additional prerequisites for those imports. + ## Import your GitHub repository into GitLab ### Use the GitHub integration @@ -242,11 +250,15 @@ When they are imported, supported GitHub branch protection rules are mapped to e | GitHub rule | GitLab rule | Introduced in | | :---------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------ | -| **Require conversation resolution before merging** for the project's default branch | **All threads must be resolved** [project setting](../../discussions/index.md#prevent-merge-unless-all-threads-are-resolved) | [GitLab 15.5](https://gitlab.com/gitlab-org/gitlab/-/issues/371110) | -| **Require a pull request before merging** | **No one** option in the **Allowed to push** list of [branch protection settings](../protected_branches.md#configure-a-protected-branch) | [GitLab 15.5](https://gitlab.com/gitlab-org/gitlab/-/issues/370951) | -| **Require signed commits** for the project's default branch | **Reject unsigned commits** GitLab [push rule](../repository/push_rules.md#prevent-unintended-consequences) **(PREMIUM)** | [GitLab 15.5](https://gitlab.com/gitlab-org/gitlab/-/issues/370949) | -| **Allow force pushes - Everyone** | **Allowed to force push** [branch protection setting](../protected_branches.md#allow-force-push-on-a-protected-branch) | [GitLab 15.6](https://gitlab.com/gitlab-org/gitlab/-/issues/370943) | -| **Require a pull request before merging - Require review from Code Owners** | **Require approval from code owners** [branch protection setting](../protected_branches.md#require-code-owner-approval-on-a-protected-branch) **(PREMIUM)** | [GitLab 15.6](https://gitlab.com/gitlab-org/gitlab/-/issues/376683) | +| **Require conversation resolution before merging** for the project's default branch | **All threads must be resolved** [project setting](../../discussions/index.md#prevent-merge-unless-all-threads-are-resolved) | [GitLab 15.5](https://gitlab.com/gitlab-org/gitlab/-/issues/371110) | +| **Require a pull request before merging** | **No one** option in the **Allowed to push** list of [branch protection settings](../protected_branches.md#configure-a-protected-branch) | [GitLab 15.5](https://gitlab.com/gitlab-org/gitlab/-/issues/370951) | +| **Require signed commits** for the project's default branch | **Reject unsigned commits** GitLab [push rule](../repository/push_rules.md#prevent-unintended-consequences) **(PREMIUM)** | [GitLab 15.5](https://gitlab.com/gitlab-org/gitlab/-/issues/370949) | +| **Allow force pushes - Everyone** | **Allowed to force push** [branch protection setting](../protected_branches.md#allow-force-push-on-a-protected-branch) | [GitLab 15.6](https://gitlab.com/gitlab-org/gitlab/-/issues/370943) | +| **Require a pull request before merging - Require review from Code Owners** | **Require approval from code owners** [branch protection setting](../protected_branches.md#require-code-owner-approval-on-a-protected-branch) **(PREMIUM)** | [GitLab 15.6](https://gitlab.com/gitlab-org/gitlab/-/issues/376683) | +| **Require a pull request before merging - Allow specified actors to bypass required pull requests** (1) | List of users in the **Allowed to push** list of [branch protection settings](../protected_branches.md#configure-a-protected-branch) **(PREMIUM)**. Without a Premium license, the list of users that are allowed to push is limited to roles. | [GitLab 15.8](https://gitlab.com/gitlab-org/gitlab/-/issues/384939) | + +1. To successfully import the **Require a pull request before merging - Allow specified actors to bypass required pull requests** rule, you must add to the parent group in GitLab + the users that are allowed to bypass required pull requests before you begin importing. Mapping GitHub rule **Require status checks to pass before merging** to [external status checks](../merge_requests/status_checks.md) was considered in issue diff --git a/doc/user/project/import/gitlab_com.md b/doc/user/project/import/gitlab_com.md index 795cb964423..c00709d9697 100644 --- a/doc/user/project/import/gitlab_com.md +++ b/doc/user/project/import/gitlab_com.md @@ -5,7 +5,12 @@ group: Import info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments --- -# Import a project from GitLab.com to your private GitLab instance **(FREE)** +# Import a project from GitLab.com to your self-managed GitLab instance (deprecated) **(FREE)** + +WARNING: +The GitLab.com importer was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/108502) in GitLab 15.8 +and will be removed in GitLab 16.0. To import GitLab projects from GitLab.com to a self-managed GitLab instance use +[migrating groups and projects by direct transfer](../../group/import/index.md#migrate-groups-by-direct-transfer-recommended). You can import your existing GitLab.com projects to your GitLab instance. diff --git a/doc/user/project/import/index.md b/doc/user/project/import/index.md index 208bce90453..3df6a543960 100644 --- a/doc/user/project/import/index.md +++ b/doc/user/project/import/index.md @@ -15,17 +15,22 @@ If you want to bring existing projects to GitLab or copy GitLab projects to a di - Between a self-managed instance and GitLab.com in both directions. - In the same GitLab instance. -For any type of source and target, you can migrate projects: +Prerequisite: -- As part of a [GitLab group migration](../../group/import/index.md). You can't migrate only chosen projects, - but you can migrate many projects at once within a group. +- At least the Maintainer role on the destination group to import to. Using the Developer role for this purpose was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/387891) in GitLab 15.8 and will be removed in GitLab 16.0. + +For any type of source and target, you can migrate GitLab projects: + +- When [migrating groups by direct transfer](../../group/import/index.md#migrate-groups-by-direct-transfer-recommended), which allows you to migrate all + projects in a group at once. Migrating projects by direct transfer is in [Beta](../../../policy/alpha-beta-support.md#beta-features). The feature is not ready + for production use. - Using [file exports](../settings/import_export.md). With this method you can migrate projects one by one. No network connection between instances is required. If you only need to migrate Git repositories, you can [import each project by URL](repo_by_url.md). However, you can't import issues and merge requests this way. To retain metadata like issues and merge requests, either: -- [Migrate projects with groups](../../group/import/index.md). +- [Migrate projects with groups by direct transfer](../../group/import/index.md#migrate-groups-by-direct-transfer-recommended). This feature is in [Beta](../../../policy/alpha-beta-support.md#beta-features). It is not ready for production use. - Use [file exports](../settings/import_export.md) to import projects. Keep in mind the limitations of [migrating using file exports](../settings/import_export.md#items-that-are-exported). @@ -45,7 +50,6 @@ You can import projects from: - [GitLab.com](gitlab_com.md) - [Gitea](gitea.md) - [Perforce](perforce.md) -- [From SVN](https://git-scm.com/book/en/v2/Git-and-Other-Systems-Git-as-a-Client) - [TFVC](tfvc.md) - [Repository by URL](repo_by_url.md) - [Uloading a manifest file (AOSP)](manifest.md) @@ -57,6 +61,13 @@ repository is too large, the import can timeout. You can then [connect your external repository to get CI/CD benefits](../../../ci/ci_cd_for_external_repos/index.md). +## Import from Subversion + +GitLab can not automatically migrate Subversion repositories to Git. Converting Subversion repositories to Git can be difficult, but several tools exist including: + +- [`git svn`](https://git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to-Git), for very small and simple repositories. +- [`reposurgeon`](http://www.catb.org/~esr/reposurgeon/repository-editing.html), for larger and more complex repositories. + ## Migrate using the API To migrate all data from self-managed to GitLab.com, you can leverage the [API](../../../api/index.md). @@ -101,8 +112,8 @@ To view project import history: 1. Select **History** in the upper right corner. 1. If there are any errors for a particular import, you can see them by selecting **Details**. -The history also includes projects created from [built-in](../working_with_projects.md#create-a-project-from-a-built-in-template) -or [custom](../working_with_projects.md#create-a-project-from-a-built-in-template) +The history also includes projects created from [built-in](../index.md#create-a-project-from-a-built-in-template) +or [custom](../index.md#create-a-project-from-a-built-in-template) templates. GitLab uses [import repository by URL](repo_by_url.md) to create a new project from a template. diff --git a/doc/user/project/import/manifest.md b/doc/user/project/import/manifest.md index ea26613639d..c125102b0c9 100644 --- a/doc/user/project/import/manifest.md +++ b/doc/user/project/import/manifest.md @@ -17,11 +17,10 @@ repositories like the Android Open Source Project (AOSP). ## Requirements -GitLab must be using PostgreSQL for its database, since -[subgroups](../../group/subgroups/index.md) are needed for the manifest import -to work. - -Read more about the [database requirements](../../../install/requirements.md#database). +- GitLab must use PostgreSQL for its database, because [subgroups](../../group/subgroups/index.md) are needed for the manifest import + to work. Read more about the [database requirements](../../../install/requirements.md#database). +- At least the Maintainer role on the destination group to import to. Using the Developer role for this purpose was + [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/387891) in GitLab 15.8 and will be removed in GitLab 16.0. ## Manifest format diff --git a/doc/user/project/import/phabricator.md b/doc/user/project/import/phabricator.md index 49f12ca2ba6..09e7543bc4a 100644 --- a/doc/user/project/import/phabricator.md +++ b/doc/user/project/import/phabricator.md @@ -5,11 +5,15 @@ group: Import info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments --- -# Import Phabricator tasks into a GitLab project **(FREE SELF)** +# Import Phabricator tasks into a GitLab project (deprecated) **(FREE SELF)** > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/60562) in GitLab 12.0. WARNING: +The Phabricator task importer was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106369) in GitLab 15.7 +and will be removed in GitLab 16.0. + +WARNING: The Phabricator task importer is in [beta](../../../policy/alpha-beta-support.md#beta-features) and is [**not** complete](https://gitlab.com/gitlab-org/gitlab/-/issues/284406). It imports diff --git a/doc/user/project/import/repo_by_url.md b/doc/user/project/import/repo_by_url.md index d6f4f862b95..93e3991ba19 100644 --- a/doc/user/project/import/repo_by_url.md +++ b/doc/user/project/import/repo_by_url.md @@ -7,6 +7,11 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Import project from repository by URL **(FREE)** +Prerequisite: + +- At least the Maintainer role on the destination group to import to. Using the Developer role for this purpose was + [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/387891) in GitLab 15.8 and will be removed in GitLab 16.0. + You can import your existing repositories by providing the Git URL: 1. In GitLab, on the top bar, select **Main menu > Projects > View all projects**. diff --git a/doc/user/project/import/svn.md b/doc/user/project/import/svn.md index 6730ef862e6..c9abc0f459d 100644 --- a/doc/user/project/import/svn.md +++ b/doc/user/project/import/svn.md @@ -1,5 +1,5 @@ --- -redirect_to: 'index.md' +redirect_to: 'index.md#import-from-subversion' remove_date: '2023-03-15' --- |