summaryrefslogtreecommitdiff
path: root/doc/user/project
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-01-18 19:00:14 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2023-01-18 19:00:14 +0000
commit05f0ebba3a2c8ddf39e436f412dc2ab5bf1353b2 (patch)
tree11d0f2a6ec31c7793c184106cedc2ded3d9a2cc5 /doc/user/project
parentec73467c23693d0db63a797d10194da9e72a74af (diff)
downloadgitlab-ce-05f0ebba3a2c8ddf39e436f412dc2ab5bf1353b2.tar.gz
Add latest changes from gitlab-org/gitlab@15-8-stable-eev15.8.0-rc42
Diffstat (limited to 'doc/user/project')
-rw-r--r--doc/user/project/clusters/deploy_to_cluster.md4
-rw-r--r--doc/user/project/clusters/multiple_kubernetes_clusters.md2
-rw-r--r--doc/user/project/code_owners.md2
-rw-r--r--doc/user/project/deploy_keys/index.md2
-rw-r--r--doc/user/project/import/bitbucket.md11
-rw-r--r--doc/user/project/import/bitbucket_server.md7
-rw-r--r--doc/user/project/import/fogbugz.md5
-rw-r--r--doc/user/project/import/gitea.md11
-rw-r--r--doc/user/project/import/github.md28
-rw-r--r--doc/user/project/import/gitlab_com.md7
-rw-r--r--doc/user/project/import/index.md25
-rw-r--r--doc/user/project/import/manifest.md9
-rw-r--r--doc/user/project/import/phabricator.md6
-rw-r--r--doc/user/project/import/repo_by_url.md5
-rw-r--r--doc/user/project/import/svn.md2
-rw-r--r--doc/user/project/index.md339
-rw-r--r--doc/user/project/integrations/apple_app_store.md59
-rw-r--r--doc/user/project/integrations/harbor.md2
-rw-r--r--doc/user/project/integrations/prometheus.md2
-rw-r--r--doc/user/project/integrations/slack.md1
-rw-r--r--doc/user/project/integrations/webhook_events.md34
-rw-r--r--doc/user/project/issues/managing_issues.md16
-rw-r--r--doc/user/project/labels.md2
-rw-r--r--doc/user/project/members/index.md11
-rw-r--r--doc/user/project/members/share_project_with_groups.md20
-rw-r--r--doc/user/project/merge_requests/approvals/rules.md10
-rw-r--r--doc/user/project/merge_requests/authorization_for_merge_requests.md2
-rw-r--r--doc/user/project/merge_requests/changes.md1
-rw-r--r--doc/user/project/merge_requests/creating_merge_requests.md49
-rw-r--r--doc/user/project/merge_requests/dependencies.md5
-rw-r--r--doc/user/project/merge_requests/getting_started.md6
-rw-r--r--doc/user/project/merge_requests/img/filter_approved_by_merge_requests_v14_6.pngbin8326 -> 0 bytes
-rw-r--r--doc/user/project/merge_requests/img/filter_approver_merge_requests_v14_6.pngbin7841 -> 0 bytes
-rw-r--r--doc/user/project/merge_requests/index.md56
-rw-r--r--doc/user/project/merge_requests/methods/index.md6
-rw-r--r--doc/user/project/merge_requests/status_checks.md13
-rw-r--r--doc/user/project/merge_requests/versions.md2
-rw-r--r--doc/user/project/organize_work_with_projects.md33
-rw-r--r--doc/user/project/pages/custom_domains_ssl_tls_certification/index.md13
-rw-r--r--doc/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md9
-rw-r--r--doc/user/project/pages/getting_started/pages_ci_cd_template.md3
-rw-r--r--doc/user/project/pages/getting_started/pages_forked_sample_project.md4
-rw-r--r--doc/user/project/pages/getting_started/pages_from_scratch.md5
-rw-r--r--doc/user/project/pages/getting_started/pages_new_project_template.md3
-rw-r--r--doc/user/project/pages/getting_started/pages_ui.md6
-rw-r--r--doc/user/project/pages/index.md7
-rw-r--r--doc/user/project/protected_branches.md2
-rw-r--r--doc/user/project/quick_actions.md2
-rw-r--r--doc/user/project/releases/index.md2
-rw-r--r--doc/user/project/remote_development/index.md23
-rw-r--r--doc/user/project/repository/branches/index.md26
-rw-r--r--doc/user/project/repository/git_history.md4
-rw-r--r--doc/user/project/repository/img/web_editor_line_link_v13_10.pngbin42942 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_new_branch_dropdown_v14_1.pngbin12116 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_new_branch_from_issue_create_button_v14_1.pngbin18848 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_new_branch_from_issue_v14_1.pngbin10160 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_new_branch_page_v14_1.pngbin12442 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_new_directory_dialog_v14_1.pngbin13757 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_new_directory_dropdown_v14_1.pngbin11169 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_new_file_dropdown_v14_1.pngbin10851 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_new_file_editor_v14_1.pngbin60751 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_new_push_widget.pngbin3388 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_new_tag_dropdown.pngbin9706 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_new_tag_page.pngbin21835 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_start_new_merge_request.pngbin4049 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_template_dropdown_buttons.pngbin5629 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_template_dropdown_first_file_v14_1.pngbin17652 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_template_dropdown_mit_license_v14_1.pngbin31321 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_upload_file_dialog_v14_1.pngbin17522 -> 0 bytes
-rw-r--r--doc/user/project/repository/img/web_editor_upload_file_dropdown_v14_1.pngbin11572 -> 0 bytes
-rw-r--r--doc/user/project/repository/index.md4
-rw-r--r--doc/user/project/repository/mirror/index.md14
-rw-r--r--doc/user/project/repository/reducing_the_repo_size_using_git.md6
-rw-r--r--doc/user/project/repository/ssh_signed_commits/index.md8
-rw-r--r--doc/user/project/repository/web_editor.md281
-rw-r--r--doc/user/project/service_desk.md21
-rw-r--r--doc/user/project/settings/import_export.md27
-rw-r--r--doc/user/project/settings/index.md4
-rw-r--r--doc/user/project/web_ide/index.md25
-rw-r--r--doc/user/project/web_ide_beta/index.md53
-rw-r--r--doc/user/project/working_with_projects.md194
81 files changed, 784 insertions, 757 deletions
diff --git a/doc/user/project/clusters/deploy_to_cluster.md b/doc/user/project/clusters/deploy_to_cluster.md
index 65e4a5d9fde..6e188a4923b 100644
--- a/doc/user/project/clusters/deploy_to_cluster.md
+++ b/doc/user/project/clusters/deploy_to_cluster.md
@@ -21,7 +21,7 @@ A Kubernetes cluster can be the destination for a deployment job. If
the cluster from your jobs using tools such as `kubectl` or `helm`.
- You don't use the GitLab cluster integration, you can still deploy to your
cluster. However, you must configure Kubernetes tools yourself
- using [CI/CD variables](../../../ci/variables/index.md#custom-cicd-variables)
+ using [CI/CD variables](../../../ci/variables/index.md#for-a-project)
before you can interact with the cluster from your jobs.
## Deployment variables
@@ -43,7 +43,7 @@ following command in your deployment job script, for Kubernetes to access the re
```
The Kubernetes cluster integration exposes these
-[deployment variables](../../../ci/variables/index.md#deployment-variables) in the
+[deployment variables](../../../ci/variables/predefined_variables.md#deployment-variables) in the
GitLab CI/CD build environment to deployment jobs. Deployment jobs have
[defined a target environment](../../../ci/environments/index.md).
diff --git a/doc/user/project/clusters/multiple_kubernetes_clusters.md b/doc/user/project/clusters/multiple_kubernetes_clusters.md
index 95d3bf6e121..c79f250da7a 100644
--- a/doc/user/project/clusters/multiple_kubernetes_clusters.md
+++ b/doc/user/project/clusters/multiple_kubernetes_clusters.md
@@ -26,7 +26,7 @@ differentiates the new cluster from the rest.
When adding more than one Kubernetes cluster to your project, you need to differentiate
them with an environment scope. The environment scope associates clusters with [environments](../../../ci/environments/index.md) similar to how the
-[environment-specific CI/CD variables](../../../ci/variables/index.md#limit-the-environment-scope-of-a-cicd-variable) work.
+[environment-specific CI/CD variables](../../../ci/environments/index.md#limit-the-environment-scope-of-a-cicd-variable) work.
The default environment scope is `*`, which means all jobs, regardless of their
environment, use that cluster. Each scope can be used only by a single cluster
diff --git a/doc/user/project/code_owners.md b/doc/user/project/code_owners.md
index aeeacd495a7..641dff2766e 100644
--- a/doc/user/project/code_owners.md
+++ b/doc/user/project/code_owners.md
@@ -324,7 +324,7 @@ README.md @docs
A Code Owner approval rule is optional if any of these conditions are true:
-- The user or group are not a member of the project or parent group.
+- The user or group are not a member of the project. Code Owners [cannot inherit from parent groups](https://gitlab.com/gitlab-org/gitlab/-/issues/288851/).
- [Code Owner approval on a protected branch](protected_branches.md#require-code-owner-approval-on-a-protected-branch) has not been set up.
- The section is [marked as optional](#make-a-code-owners-section-optional).
diff --git a/doc/user/project/deploy_keys/index.md b/doc/user/project/deploy_keys/index.md
index 56bb899c233..e87c5f57fc1 100644
--- a/doc/user/project/deploy_keys/index.md
+++ b/doc/user/project/deploy_keys/index.md
@@ -15,7 +15,7 @@ Depending on your needs, you might want to use a [deploy token](../deploy_tokens
|------------------|-------------|--------------|
| Sharing | Shareable between multiple projects, even those in different groups. | Belong to a project or group. |
| Source | Public SSH key generated on an external host. | Generated on your GitLab instance, and is provided to users only at creation time. |
-| Validity | Valid as long as it's registered and enabled. | Can be given an expiration date. |
+| Validity | Valid as long as it's registered and enabled, and the user that created it exists. | Can be given an expiration date. |
| Registry access | Cannot access a package registry. | Can read from and write to a package registry. |
Deploy keys can't be used for Git operations if [external authorization](../../admin_area/settings/external_authorization.md) is enabled.
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'
---
diff --git a/doc/user/project/index.md b/doc/user/project/index.md
index 78a6e8d565f..08caa62bcb2 100644
--- a/doc/user/project/index.md
+++ b/doc/user/project/index.md
@@ -1,161 +1,186 @@
---
stage: Manage
-group: Workspace
-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
+group: Organization
+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"
---
-# Organize work with projects **(FREE)**
-
-In GitLab, you can create projects to host
-your codebase. You can also use projects to track issues, plan work,
-collaborate on code, and continuously build, test, and use
-built-in CI/CD to deploy your app.
-
-Projects can be available [publicly, internally, or privately](../public_access.md).
-GitLab does not limit the number of private projects you can create.
-
-## Project features
-
-Projects include the following [features](https://about.gitlab.com/features/):
-
-**Repositories:**
-
-- [Issue tracker](issues/index.md): Discuss implementations with your team.
- - [Issue boards](issue_board.md): Organize and prioritize your workflow.
- - [Multiple issue boards](issue_board.md#multiple-issue-boards): Create team-specific workflows (issue boards) for a project.
-- [Repositories](repository/index.md): Host your code in a fully-integrated platform.
- - [Branches](repository/branches/index.md): Use Git branching strategies to
- collaborate on code.
- - [Protected branches](protected_branches.md): Prevent collaborators
- from changing history or pushing code without review.
- - [Protected tags](protected_tags.md): Control who has
- permission to create tags and prevent accidental updates or deletions.
- - [Repository mirroring](repository/mirror/index.md)
- - [Signing commits](repository/gpg_signed_commits/index.md): Use GNU Privacy Guard (GPG) to sign your commits.
- - [Deploy tokens](deploy_tokens/index.md): Manage access to the repository and Container Registry.
-- [Web IDE](web_ide/index.md)
-- [CVE ID Requests](../application_security/cve_id_request.md): Request a CVE identifier to track a
- vulnerability in your project.
-
-**Issues and merge requests:**
-
-- [Issue tracker](issues/index.md): Discuss implementations with your team.
- - [Issue boards](issue_board.md): Organize and prioritize your workflow.
- - [Multiple issue boards](issue_board.md#multiple-issue-boards): Create team-specific workflows (issue boards) for a project.
-- [Merge requests](merge_requests/index.md): Apply a branching
- strategy and get reviewed by your team.
- - [Merge request approvals](merge_requests/approvals/index.md): Ask for approval before
- implementing a change.
- - [Fix merge conflicts from the UI](merge_requests/conflicts.md): View Git diffs from the GitLab UI.
- - [Review Apps](../../ci/review_apps/index.md): By branch, preview the results
- of the changes proposed in a merge request.
-- [Labels](labels.md): Organize issues and merge requests by labels.
-- [Time Tracking](time_tracking.md): Track time estimated and
- spent on issues and merge requests.
-- [Milestones](milestones/index.md): Work toward a target date.
-- [Description templates](description_templates.md): Define context-specific
- templates for issue and merge request description fields.
-- [Slash commands (quick actions)](quick_actions.md): Create text shortcuts for
- common actions.
-- [Autocomplete characters](autocomplete_characters.md): Autocomplete
- references to users, groups, issues, merge requests, and other GitLab
- elements.
-- [Web IDE](web_ide/index.md)
-
-**GitLab CI/CD:**
-
-- [GitLab CI/CD](../../ci/index.md): Use the built-in [Continuous Integration, Delivery, and Deployment](https://about.gitlab.com/blog/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/) tool.
- - [Container Registry](../packages/container_registry/index.md): Build and push Docker
- images.
- - [Auto Deploy](../../topics/autodevops/stages.md#auto-deploy): Configure GitLab CI/CD
- to automatically set up your app's deployment.
- - [Enable and disable GitLab CI/CD](../../ci/enable_or_disable_ci.md)
- - [Pipelines](../../ci/pipelines/index.md): Configure and visualize
- your GitLab CI/CD pipelines from the UI.
- - [Scheduled Pipelines](../../ci/pipelines/schedules.md): Schedule a pipeline
- to start at a chosen time.
- - [Pipeline Graphs](../../ci/pipelines/index.md#visualize-pipelines): View your
- pipeline from the UI.
- - [Job artifacts](../../ci/pipelines/job_artifacts.md): Define,
- browse, and download job artifacts.
- - [Pipeline settings](../../ci/pipelines/settings.md): Set up Git strategy (how jobs fetch your repository),
- timeout (the maximum amount of time a job can run), custom path for `.gitlab-ci.yml`, test coverage parsing, pipeline visibility, and more.
- - [Kubernetes cluster integration](../infrastructure/clusters/index.md): Connect your GitLab project
- with a Kubernetes cluster.
- - [Feature Flags](../../operations/feature_flags.md): Ship different features
- by dynamically toggling functionality.
-- [GitLab Pages](pages/index.md): Build, test, and deploy your static
- website.
-
-**Other features:**
-
-- [Wiki](wiki/index.md): Document your GitLab project in an integrated Wiki.
-- [Snippets](../snippets.md): Store, share and collaborate on code snippets.
-- [Value Stream Analytics](../analytics/value_stream_analytics.md): Review your development lifecycle.
-- [Insights](insights/index.md): Configure the insights that matter for your projects.
-- [Security Dashboard](../application_security/security_dashboard/index.md)
-- [Syntax highlighting](highlighting.md): Customize
- your code blocks, overriding the default language choice.
-- [Badges](badges.md): Add an image to the **Project information** page.
-- [Releases](releases/index.md): Take a snapshot of
- the source, build output, metadata, and artifacts
- associated with a released version of your code.
-- [Package Registry](../packages/package_registry/index.md): Publish and install packages.
-- [Code owners](code_owners.md): Specify code owners for specific files.
-- [License Compliance](../compliance/license_compliance/index.md): Approve and deny licenses for projects.
-- [Dependency List](../application_security/dependency_list/index.md): View project dependencies.
-- [Requirements](requirements/index.md): Create criteria to check your products against.
-- [Code Intelligence](code_intelligence.md): Navigate code.
-
-## Project integrations
-
-[Integrate your project](integrations/index.md) with Jira, Mattermost,
-Kubernetes, Slack, and a lot more.
-
-## Import or export a project
-
-- [Import a project](import/index.md) from:
- - [GitHub to GitLab](import/github.md)
- - [Bitbucket to GitLab](import/bitbucket.md)
- - [Gitea to GitLab](import/gitea.md)
- - [FogBugz to GitLab](import/fogbugz.md)
-- [Export a project from GitLab](settings/import_export.md#export-a-project-and-its-data)
-- [Importing and exporting projects between GitLab instances](settings/import_export.md)
-
-## GitLab Workflow - VS Code extension
-
-To avoid switching from the GitLab UI and VS Code while working in GitLab repositories, you can integrate
-the [VS Code](https://code.visualstudio.com/) editor with GitLab through the
-[GitLab Workflow extension](https://marketplace.visualstudio.com/items?itemName=GitLab.gitlab-workflow).
-
-To review or contribute to the extension's code, visit [its codebase in GitLab](https://gitlab.com/gitlab-org/gitlab-vscode-extension/).
-
-## Project APIs
-
-There are numerous [APIs](../../api/index.md) to use with your projects:
-
-- [Badges](../../api/project_badges.md)
-- [Clusters](../../api/project_clusters.md)
-- [Threads](../../api/discussions.md)
-- [General](../../api/projects.md)
-- [Import/export](../../api/project_import_export.md)
-- [Issue board](../../api/boards.md)
-- [Labels](../../api/labels.md)
-- [Markdown](../../api/markdown.md)
-- [Merge requests](../../api/merge_requests.md)
-- [Milestones](../../api/milestones.md)
-- [Services](../../api/integrations.md)
-- [Snippets](../../api/project_snippets.md)
-- [Templates](../../api/project_templates.md)
-- [Traffic](../../api/project_statistics.md)
-- [Variables](../../api/project_level_variables.md)
-- [Aliases](../../api/project_aliases.md)
-- [DORA4 Analytics](../../api/dora/metrics.md)
-
-## DORA4 analytics overview
-
-Project details include the following analytics:
-
-- Deployment Frequency
-
-For more information, see [DORA4 Project Analytics API](../../api/dora/metrics.md).
+# Create a project **(FREE)**
+
+You can create a project in many ways in GitLab.
+
+## Create a blank project
+
+To create a blank project:
+
+1. On the top bar, select **Main menu > Projects > View all projects**.
+1. On the right of the page, select **New project**.
+1. Select **Create blank project**.
+1. Enter the project details:
+ - In the **Project name** field, enter the name of your project. You cannot use special characters at
+ the start or end of a project name.
+ - In the **Project slug** field, enter the path to your project. The GitLab instance uses the
+ slug as the URL path to the project. To change the slug, first enter the project name,
+ then change the slug.
+ - In the **Project deployment target (optional)** field, select your project's deployment target.
+ This information helps GitLab better understand its users and their deployment requirements.
+ - To modify the project's [viewing and access rights](../public_access.md) for
+ users, change the **Visibility Level**.
+ - To create README file so that the Git repository is initialized, has a default branch, and
+ can be cloned, select **Initialize repository with a README**.
+ - To analyze the source code in the project for known security vulnerabilities,
+ select **Enable Static Application Security Testing (SAST)**.
+1. Select **Create project**.
+
+## Create a project from a built-in template
+
+A built-in project template populates a new project with files to get you started.
+Built-in templates are sourced from the following groups:
+
+- [`project-templates`](https://gitlab.com/gitlab-org/project-templates)
+- [`pages`](https://gitlab.com/pages)
+
+Anyone can [contribute a built-in template](../../development/project_templates.md).
+
+To create a project from a built-in template:
+
+1. On the top bar, select **Main menu > Projects > View all projects**.
+1. On the right of the page, select **New project**.
+1. Select **Create from template**.
+1. Select the **Built-in** tab.
+1. From the list of templates:
+ - To view a preview of the template, select **Preview**.
+ - To use a template for the project, select **Use template**.
+1. Enter the project details:
+ - In the **Project name** field, enter the name of your project. You cannot use special characters at
+ the start or end of a project name.
+ - In the **Project slug** field, enter the path to your project. The GitLab instance uses the
+ slug as the URL path to the project. To change the slug, first enter the project name,
+ then change the slug.
+ - In the **Project description (optional)** field, enter the description of your project's dashboard.
+ - To modify the project's [viewing and access rights](../public_access.md) for users,
+ change the **Visibility Level**.
+1. Select **Create project**.
+
+## Create a project from a custom template **(PREMIUM)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/6860) in GitLab 11.2.
+
+Custom project templates are available at:
+
+- The [instance-level](../../user/admin_area/custom_project_templates.md)
+- The [group-level](../../user/group/custom_project_templates.md)
+
+1. On the top bar, select **Main menu > Projects > View all projects**.
+1. On the right of the page, select **New project**.
+1. Select **Create from template**.
+1. Select the **Instance** or **Group** tab.
+1. From the list of templates:
+ - To view a preview of the template, select **Preview**.
+ - To use a template for the project, select **Use template**.
+1. Enter the project details:
+ - In the **Project name** field, enter the name of your project. You cannot use special characters at
+ the start or end of a project name.
+ - In the **Project slug** field, enter the path to your project. The GitLab instance uses the
+ slug as the URL path to the project. To change the slug, first enter the project name,
+ then change the slug.
+ - The description of your project's dashboard in the **Project description (optional)** field.
+ - To modify the project's [viewing and access rights](../public_access.md) for users,
+ change the **Visibility Level**.
+1. Select **Create project**.
+
+## Create a project from the HIPAA Audit Protocol template **(ULTIMATE)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/13756) in GitLab 12.10
+
+The HIPAA Audit Protocol template contains issues for audit inquiries in the
+HIPAA Audit Protocol published by the U.S Department of Health and Human Services.
+
+To create a project from the HIPAA Audit Protocol template:
+
+1. On the top bar, select **Main menu > Projects > View all projects**.
+1. On the right of the page, select **New project**.
+1. Select **Create from template**.
+1. Select the **Built-in** tab.
+1. Locate the **HIPAA Audit Protocol** template:
+ - To view a preview of the template, select **Preview**.
+ - To use the template for the project, select **Use template**.
+1. Enter the project details:
+ - In the **Project name** field, enter the name of your project. You cannot use special characters at
+ the start or end of a project name.
+ - In the **Project slug** field, enter the path to your project. The GitLab instance uses the
+ slug as the URL path to the project. To change the slug, first enter the project name,
+ then change the slug.
+ - In the **Project description (optional)** field, enter the description of your project's dashboard.
+ - To modify the project's [viewing and access rights](../public_access.md) for users,
+ change the **Visibility Level**.
+1. Select **Create project**.
+
+## Create a new project with Git push
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/26388) in GitLab 10.5.
+
+Use `git push` to push a local project repository to GitLab. After you push a repository,
+GitLab creates your project in your chosen namespace.
+
+You cannot use `git push` to create projects with project paths that:
+
+- Have previously been used.
+- Have been [renamed](settings/index.md#rename-a-repository).
+
+Previously used project paths have a redirect. The redirect causes push attempts to redirect requests
+to the renamed project location, instead of creating a new project. To create a new project for a previously
+used or renamed project, use the [UI](#create-a-project) or the [Projects API](../../api/projects.md#create-project).
+
+Prerequisites:
+
+- To push with SSH, you must have [an SSH key](../ssh.md) that is
+ [added to your GitLab account](../ssh.md#add-an-ssh-key-to-your-gitlab-account).
+- You must have permission to add new projects to a namespace. To check if you have permission:
+
+ 1. On the top bar, select **Main menu > Groups** and find your group.
+ 1. Confirm that **New project** is visible in the upper right
+ corner. Contact your GitLab
+ administrator if you require permission.
+
+To push your repository and create a project:
+
+1. Push with SSH or HTTPS:
+ - To push with SSH:
+
+ ```shell
+ git push --set-upstream git@gitlab.example.com:namespace/myproject.git master
+ ```
+
+ - To push with HTTPS:
+
+ ```shell
+ git push --set-upstream https://gitlab.example.com/namespace/myproject.git master
+ ```
+
+ - For `gitlab.example.com`, use the domain name of the machine that hosts your Git repository.
+ - For `namespace`, use the name of your [namespace](../namespace/index.md).
+ - For `myproject`, use the name of your project.
+ - Optional. To export existing repository tags, append the `--tags` flag to your `git push` command.
+1. Optional. To configure the remote:
+
+ ```shell
+ git remote add origin https://gitlab.example.com/namespace/myproject.git
+ ```
+
+When the push completes, GitLab displays the message:
+
+```shell
+remote: The private project namespace/myproject was created.
+```
+
+To view your new project, go to `https://gitlab.example.com/namespace/myproject`.
+Your project's visibility is set to **Private** by default. To change project visibility, adjust your
+[project's settings](../public_access.md#change-project-visibility).
+
+## Related topics
+
+- For a list of words that you cannot use as project names, see
+ [reserved project and group names](../../user/reserved_names.md).
+- For a list of characters that you cannot use in project and group names, see
+ [limitations on project and group names](../../user/reserved_names.md#limitations-on-project-and-group-names).
+- [Manage projects](working_with_projects.md).
diff --git a/doc/user/project/integrations/apple_app_store.md b/doc/user/project/integrations/apple_app_store.md
new file mode 100644
index 00000000000..62b25bf8191
--- /dev/null
+++ b/doc/user/project/integrations/apple_app_store.md
@@ -0,0 +1,59 @@
+---
+stage: Manage
+group: Integrations
+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
+---
+
+# Apple App Store integration **(FREE)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/104888) in GitLab 15.8 [with a flag](../../../administration/feature_flags.md) named `apple_app_store_integration`. Disabled by default.
+
+FLAG:
+On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to [enable the feature flag](../../../administration/feature_flags.md) named `apple_app_store_integration`. On GitLab.com, this feature is not available.
+
+The Apple App Store integration makes it easy to configure your CI/CD pipelines to connect to [App Store Connect](https://appstoreconnect.apple.com) to build and release apps for iOS, iPadOS, macOS, tvOS, and watchOS.
+
+The integration is designed to be able to work out of the box with [fastlane](http://fastlane.tools/), but can be used with other build tools as well.
+
+## Prerequisites
+
+An Apple ID enrolled in the [Apple Developer Program](https://developer.apple.com/programs/enroll/) is required to enable this integration.
+
+## Configure GitLab
+
+GitLab supports enabling the Apple App Store integration at the project level. Complete these steps in GitLab:
+
+1. In the Apple App Store Connect portal, generate a new private key for your project by following [these instructions](https://developer.apple.com/documentation/appstoreconnectapi/creating_api_keys_for_app_store_connect_api).
+1. On the top bar, select **Main menu > Projects** and find your project.
+1. On the left sidebar, select **Settings > Integrations**.
+1. Select **Apple App Store**.
+1. Turn on the **Active** toggle under **Enable Integration**.
+1. Provide the Apple App Store Connect configuration information:
+ - **Issuer ID**: The Apple App Store Connect Issuer ID can be found in the *Keys* section under *Users and Access* the Apple App Store Connect portal.
+ - **Key ID**: The Key ID of the new private key that was just generated.
+ - **Private Key**: The Private Key that was just generated. Note: you are only be able to download this key one time.
+
+1. Select **Save changes**.
+
+After the Apple App Store integration is activated:
+
+- The global variables `$APP_STORE_CONNECT_API_KEY_ISSUER_ID`, `$APP_STORE_CONNECT_API_KEY_KEY_ID`, and `$APP_STORE_CONNECT_API_KEY_KEY` are created for CI/CD use.
+- `$APP_STORE_CONNECT_API_KEY_KEY` contains the Base64 encoded Private Key.
+
+## Security considerations
+
+### CI/CD variable security
+
+Malicious code pushed to your `.gitlab-ci.yml` file could compromise your variables, including
+`$APP_STORE_CONNECT_API_KEY_KEY`, and send them to a third-party server. For more details, see
+[CI/CD variable security](../../../ci/variables/index.md#cicd-variable-security).
+
+## fastlane Example
+
+Because this integration works out of the box with fastlane adding the code below to an app's `fastlane/Fastfile` activates the integration, and create the connection for any interactions with the Apple App Store uploading a Test Flight or public App Store release.
+
+```ruby
+app_store_connect_api_key(
+ is_key_content_base64: true
+)
+```
diff --git a/doc/user/project/integrations/harbor.md b/doc/user/project/integrations/harbor.md
index 259b91fc1c7..d75f10e0e11 100644
--- a/doc/user/project/integrations/harbor.md
+++ b/doc/user/project/integrations/harbor.md
@@ -19,7 +19,7 @@ This integration can help you if you need GitLab CI/CD and a container image rep
In the Harbor instance, ensure that:
- The project to be integrated has been created.
-- The signed-in user has permission to pull, push, and edit images in the Harbor project.
+- The authenticated user has permission to pull, push, and edit images in the Harbor project.
## Configure GitLab
diff --git a/doc/user/project/integrations/prometheus.md b/doc/user/project/integrations/prometheus.md
index 9bafa9734e2..dfa5a4593d8 100644
--- a/doc/user/project/integrations/prometheus.md
+++ b/doc/user/project/integrations/prometheus.md
@@ -107,7 +107,7 @@ can use only one:
[Cluster precedence](../../instance/clusters/index.md#cluster-precedence).
- If you have managed Prometheus applications installed on multiple Kubernetes
clusters at the **same** level, the Prometheus application of a cluster with a
- matching [environment scope](../../../ci/environments/index.md#scope-environments-with-specs) is used.
+ matching [environment scope](../../../ci/environments/index.md#limit-the-environment-scope-of-a-cicd-variable) is used.
## Determining the performance impact of a merge
diff --git a/doc/user/project/integrations/slack.md b/doc/user/project/integrations/slack.md
index 2ded5799c23..5c1006b9044 100644
--- a/doc/user/project/integrations/slack.md
+++ b/doc/user/project/integrations/slack.md
@@ -59,6 +59,7 @@ The following triggers are available for Slack notifications:
|--------------------------------------------------------------------------|------------------------------------------------------|
| **Push** | A push to the repository. |
| **Issue** | An issue is created, updated, or closed. |
+| **Incident** | An incident is created, updated, or closed. |
| **Confidential issue** | A confidential issue is created, updated, or closed. |
| **Merge request** | A merge request is created, updated, or merged. |
| **Note** | A comment is added. |
diff --git a/doc/user/project/integrations/webhook_events.md b/doc/user/project/integrations/webhook_events.md
index 63282d6ec6e..0f462ad41b0 100644
--- a/doc/user/project/integrations/webhook_events.md
+++ b/doc/user/project/integrations/webhook_events.md
@@ -1019,7 +1019,7 @@ Payload example:
```
NOTE:
-The fields `assignee_id`, `state`, `merge_status` are [deprecated](../../../api/merge_requests.md).
+The fields `assignee_id` and `merge_status` are [deprecated](../../../api/merge_requests.md).
## Wiki page events
@@ -1362,15 +1362,6 @@ Payload example:
## Job events
-- Number of retries [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/382046) in GitLab 15.6 [with a flag](../../../administration/feature_flags.md)
- named `job_webhook_retries_count`. Disabled by default.
-
-FLAG:
-On self-managed GitLab, by default this feature is not available. To make it available,
-ask an administrator to [enable the feature flag](../../../administration/feature_flags.md) named
-`job_webhook_retries_count`.
-On GitLab.com, this feature is not available.
-
Job events are triggered when the status of a job changes.
The `commit.id` in the payload is the ID of the pipeline, not the ID of the commit.
@@ -1403,7 +1394,7 @@ Payload example:
"build_duration": null,
"build_allow_failure": false,
"build_failure_reason": "script_failure",
- "retries_count": 2, // 2 indicates this is the 2nd retry of this job
+ "retries_count": 2, // the second retry of this job
"pipeline_id": 2366,
"project_id": 380,
"project_name": "gitlab-org/gitlab-test",
@@ -1415,6 +1406,7 @@ Payload example:
},
"commit": {
"id": 2366,
+ "name": "Build pipeline",
"sha": "2293ada6b400935a1378653304eaf6221e0fdb8f",
"message": "test\n",
"author_name": "User",
@@ -1447,6 +1439,26 @@ Payload example:
}
```
+### Number of retries
+
+> `retries_count` [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/382046) in GitLab 15.6 [with a flag](../../../administration/feature_flags.md) named `job_webhook_retries_count`. Disabled by default.
+
+FLAG:
+On self-managed GitLab, by default this feature is not available. To make it available,
+ask an administrator to [enable the feature flag](../../../administration/feature_flags.md) named
+`job_webhook_retries_count`.
+On GitLab.com, this feature is not available.
+
+`retries_count` is an integer that indicates if the job is a retry. `0` means that the job
+has not been retried. `1` means that it's the first retry.
+
+### Pipeline name
+
+> `commit.name` [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107963) in GitLab 15.8.
+
+You can set custom names for pipelines with [`workflow:name`](../../../ci/yaml/index.md#workflowname).
+If the pipeline has a name, that name is the value of `commit.name`.
+
## Deployment events
Deployment events are triggered when a deployment:
diff --git a/doc/user/project/issues/managing_issues.md b/doc/user/project/issues/managing_issues.md
index ea90dda88f6..a5399b70c8f 100644
--- a/doc/user/project/issues/managing_issues.md
+++ b/doc/user/project/issues/managing_issues.md
@@ -351,6 +351,13 @@ Alternatively, you can use the `/promote` [quick action](../quick_actions.md#iss
Read more about [promoting an issues to epics](../../group/epics/manage_epics.md#promote-an-issue-to-an-epic).
+## Promote an issue to an incident
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/296787) in GitLab 14.5.
+> - Quick actions to set issue type as incident upon creation [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/376760) in GitLab 15.8.
+
+You can use the `/promote_to_incident` [quick action](../quick_actions.md) to promote the issue to an [incident](../../../operations/incident_management/incidents.md).
+
## Add an issue to an iteration **(PREMIUM)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/216158) in GitLab 13.2.
@@ -404,7 +411,8 @@ GitLab displays the results on-screen, but you can also
### Filter with the OR operator
-> OR filtering for author and assignee was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/23532) in GitLab 15.6 [with a flag](../../../administration/feature_flags.md) named `or_issuable_queries`. Disabled by default.
+> - OR filtering for author and assignee was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/23532) in GitLab 15.6 [with a flag](../../../administration/feature_flags.md) named `or_issuable_queries`. Disabled by default.
+> - OR filtering for label was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/23532) in GitLab 15.8 [with a flag](../../../administration/feature_flags.md) named `or_issuable_queries`. Disabled by default.
FLAG:
On self-managed GitLab, by default this feature is not available.
@@ -412,7 +420,11 @@ To make it available, ask an administrator to [enable the feature flag](../../..
The feature is not ready for production use.
When this feature is enabled, you can use the OR operator (**is one of: `||`**)
-when you [filter the list of issues](#filter-the-list-of-issues).
+when you [filter the list of issues](#filter-the-list-of-issues) by:
+
+- Assignees
+- Author
+- Labels
`is one of` represents an inclusive OR. For example, if you filter by `Assignee is one of Sidney Jones` and
`Assignee is one of Zhang Wei`, GitLab shows issues where either `Sidney`, `Zhang`, or both of them are assignees.
diff --git a/doc/user/project/labels.md b/doc/user/project/labels.md
index bb72ab0052d..f9e3f1b9225 100644
--- a/doc/user/project/labels.md
+++ b/doc/user/project/labels.md
@@ -390,7 +390,7 @@ For a video explanation, see:
See the video: <a href="https://www.youtube.com/watch?v=4BCBby6du3c">Use scoped labels for custom fields and custom workflows</a>.
</div>
<figure class="video-container">
- <iframe src="https://www.youtube.com/embed/4BCBby6du3c" frameborder="0" allowfullscreen="true"> </iframe>
+ <iframe src="https://www.youtube-nocookie.com/embed/4BCBby6du3c" frameborder="0" allowfullscreen> </iframe>
</figure>
### Nested scopes
diff --git a/doc/user/project/members/index.md b/doc/user/project/members/index.md
index a7627f12657..0b0184db14c 100644
--- a/doc/user/project/members/index.md
+++ b/doc/user/project/members/index.md
@@ -1,6 +1,6 @@
---
stage: Manage
-group: Workspace
+group: Organization
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
---
@@ -62,6 +62,12 @@ To add a user to a project:
1. Enter an email address and select a [role](../../permissions.md).
1. Optional. Select an **Access expiration date**.
From that date onward, the user can no longer access the project.
+
+ WARNING:
+ If you give a member the Maintainer role and select an expiration date, that member
+ has full permissions for the time they are in the role. This includes the ability
+ to extend their own time in the Maintainer role.
+
1. Select **Invite**.
If the user has a GitLab account, they are added to the members list.
@@ -97,6 +103,9 @@ Each user's access is based on:
- The role they're assigned in the group.
- The maximum role you choose when you invite the group.
+If a user has a group role with fewer permissions than the maximum project role, the user keeps the permissions of their group role.
+For example, if you add a user with the Guest role to a project with a maximum role of Maintainer, the user has only the permissions of the Guest role.
+
Prerequisites:
- You must have the Maintainer or Owner role.
diff --git a/doc/user/project/members/share_project_with_groups.md b/doc/user/project/members/share_project_with_groups.md
index b9887212be0..d1ee42f723d 100644
--- a/doc/user/project/members/share_project_with_groups.md
+++ b/doc/user/project/members/share_project_with_groups.md
@@ -1,6 +1,6 @@
---
stage: Manage
-group: Workspace
+group: Organization
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
---
@@ -16,8 +16,16 @@ with `Group 1`, so that both members of `Group 1` and `Group 2` have access to t
When a project is shared with a group:
- All group members, including members of subgroups or projects that belong to the group,
-are assigned the same role in the project.
-Each member's role is displayed in **Project information > Members > Max role**.
+ are assigned the same role in the project.
+ Each member's role is displayed in **Project information > Members**, in the **Max role** column.
+ When sharing a project with a group, a user's assigned **Max role** is the lowest
+ of either:
+
+ - The role assigned in the group membership.
+ - The maximum role selected when sharing the project with the group.
+
+ Assigning a higher maximum role to the group doesn't give group users higher roles than
+ the roles already assigned to them in the group.
- The group is listed in the **Groups** tab.
- The project is listed on the group dashboard.
@@ -28,7 +36,7 @@ Be aware of the restrictions that apply when you share projects with:
## Share projects with groups with a more restrictive visibility level
-You can share projects only down the group's organization structure.
+You can share projects only down the group's organization structure.
This means you can share a project with a group that has a more restrictive
[visibility level](../../public_access.md#project-and-group-visibility) than the project,
but not with a group that has a less restrictive visibility level.
@@ -78,8 +86,4 @@ To share a project with a group:
## Prevent project sharing
-You can prevent members of a group from
-[sharing a project with another group](../members/share_project_with_groups.md).
-This restriction allows for tighter control over project access.
-
For more information, see [Prevent a project from being shared with groups](../../group/access_and_permissions.md#prevent-a-project-from-being-shared-with-groups).
diff --git a/doc/user/project/merge_requests/approvals/rules.md b/doc/user/project/merge_requests/approvals/rules.md
index 5f81db10cf4..51f7254bfda 100644
--- a/doc/user/project/merge_requests/approvals/rules.md
+++ b/doc/user/project/merge_requests/approvals/rules.md
@@ -36,6 +36,10 @@ To add a merge request approval rule:
1. In the **Merge request approvals** section, scroll to **Approval rules**.
1. Select **Add approval rule**.
1. Add a human-readable **Rule name**.
+1. Select a **Target branch**:
+ - To apply the rule to all branches, select **All branches**.
+ - To apply the rule to all protected branches, select **All protected branches** (GitLab 15.3 and later).
+ - To apply the rule to a specific branch, select it from the list.
1. Set the number of required approvals in **Approvals required**. A value of `0` makes
[the rule optional](#configure-optional-approval-rules), and any number greater than `0`
creates a required rule.
@@ -221,8 +225,7 @@ appreciated, but not required. To make an approval rule optional:
## Approvals for protected branches
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/460) in GitLab 12.8.
-> - **All protected branches** target branch option [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/360930) in GitLab 15.3.
+> **All protected branches** target branch option [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/360930) in GitLab 15.3.
Approval rules are often relevant only to specific branches, like your
[default branch](../../repository/branches/default.md). To configure an
@@ -231,8 +234,7 @@ approval rule for certain branches:
1. [Create an approval rule](#add-an-approval-rule).
1. Go to your project and select **Settings > Merge requests**.
1. In the **Merge request approvals** section, scroll to **Approval rules**.
-1. Select a **Target branch**:
- - To apply the rule to all branches, select **All branches**.
+1. For **Target branch**:
- To apply the rule to all protected branches, select **All protected branches** (GitLab 15.3 and later).
- To apply the rule to a specific branch, select it from the list.
diff --git a/doc/user/project/merge_requests/authorization_for_merge_requests.md b/doc/user/project/merge_requests/authorization_for_merge_requests.md
index 52944ee3143..280ad20712b 100644
--- a/doc/user/project/merge_requests/authorization_for_merge_requests.md
+++ b/doc/user/project/merge_requests/authorization_for_merge_requests.md
@@ -5,7 +5,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
type: concepts
---
-# Authorization for Merge requests **(FREE)**
+# Merge request workflows **(FREE)**
There are two main ways to have a merge request flow with GitLab:
diff --git a/doc/user/project/merge_requests/changes.md b/doc/user/project/merge_requests/changes.md
index f6e02dc0dfe..07ee2ef90c4 100644
--- a/doc/user/project/merge_requests/changes.md
+++ b/doc/user/project/merge_requests/changes.md
@@ -140,6 +140,7 @@ Files marked as viewed are not shown to you again unless either:
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/232484) in GitLab 13.5 [with a flag](../../../administration/feature_flags.md) named `display_merge_conflicts_in_diff`. Disabled by default.
> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/276918) in GitLab 15.7.
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/276918) in GitLab 15.8. Feature flag `display_merge_conflicts_in_diff` removed.
To avoid displaying the changes that are already on target branch in the diff,
we compare the merge request's source branch with HEAD of the target branch.
diff --git a/doc/user/project/merge_requests/creating_merge_requests.md b/doc/user/project/merge_requests/creating_merge_requests.md
index eae4db2d4f7..542edc11c44 100644
--- a/doc/user/project/merge_requests/creating_merge_requests.md
+++ b/doc/user/project/merge_requests/creating_merge_requests.md
@@ -29,7 +29,54 @@ be associated with a given target branch at a time.
## From an issue
-You can [create a merge request from an issue](../repository/web_editor.md#create-a-new-branch-from-an-issue).
+> The **Create merge request** button [changed](https://gitlab.com/gitlab-org/gitlab/-/issues/349566) to open the merge request creation form in GitLab 14.8.
+
+If your development workflow requires an issue for every merge
+request, you can create a branch directly from the issue to speed the process up.
+The new branch, and later its merge request, are marked as related to this issue.
+After merging the merge request, the issue is closed automatically, unless [automatic issue closing is disabled](../issues/managing_issues.md#disable-automatic-issue-closing).
+You can see a **Create merge request** dropdown below the issue description.
+
+NOTE:
+In GitLab 14.8 and later, selecting **Create merge request**
+[redirects to the merge request creation form](https://gitlab.com/gitlab-org/gitlab/-/issues/349566)
+instead of immediately creating the merge request.
+
+The **Create merge request** button doesn't display if:
+
+- A branch with the same name already exists.
+- A merge request already exists for this branch.
+- Your project has an active fork relationship.
+- Your project is private and the issue is confidential.
+
+To make this button appear, one possible workaround is to
+[remove your project's fork relationship](../settings/index.md#remove-a-fork-relationship).
+After removal, the fork relationship cannot be restored. This project can no longer
+be able to receive or send merge requests to the source project, or other forks.
+
+This dropdown contains the options **Create merge request and branch** and **Create branch**.
+
+After selecting one of these options, a new branch or branch and merge request
+is created based on your project's [default branch](../repository/branches/default.md).
+The branch name is based on an internal ID, and the issue title. The example
+screenshot above creates a branch named
+`2-make-static-site-auto-deploy-and-serve`.
+
+When you select the **Create branch** button in an empty
+repository project, GitLab performs these actions:
+
+- Creates a default branch.
+- Commits a blank `README.md` file to it.
+- Creates and redirects you to a new branch based on the issue title.
+- _If your project is [configured with a deployment service](../integrations/index.md) like Kubernetes,_
+ GitLab prompts you to set up [auto deploy](../../../topics/autodevops/stages.md#auto-deploy)
+ by helping you create a `.gitlab-ci.yml` file.
+
+After the branch is created, you can edit files in the repository to fix
+the issue. When a merge request is created based on the newly-created branch,
+the description field displays the [issue closing pattern](../issues/managing_issues.md#closing-issues-automatically)
+`Closes #ID`, where `ID` is the ID of the issue. This closes the issue when the
+merge request is merged.
## When you add, edit, or upload a file
diff --git a/doc/user/project/merge_requests/dependencies.md b/doc/user/project/merge_requests/dependencies.md
index d0b0ead6b87..231c1dda5b7 100644
--- a/doc/user/project/merge_requests/dependencies.md
+++ b/doc/user/project/merge_requests/dependencies.md
@@ -145,6 +145,11 @@ information, read [issue #12549](https://gitlab.com/gitlab-org/gitlab/-/issues/1
### Complex merge order dependencies are unsupported
+If you attempt to create an indirect, nested dependency, GitLab shows one of these error messages:
+
+- Dependencies failed to save: Blocked merge request cannot block others
+- Dependencies failed to save: Blocking merge request cannot itself be blocked
+
GitLab supports direct dependencies between merge requests, but does not support
[indirect (nested) dependencies](https://gitlab.com/gitlab-org/gitlab/-/issues/11393).
diff --git a/doc/user/project/merge_requests/getting_started.md b/doc/user/project/merge_requests/getting_started.md
index 427ab9606e8..58750cdf5bc 100644
--- a/doc/user/project/merge_requests/getting_started.md
+++ b/doc/user/project/merge_requests/getting_started.md
@@ -42,10 +42,6 @@ before concluding your work and merging the merge request.
You can watch our [GitLab Flow video](https://www.youtube.com/watch?v=InKNIvky2KE) for
a quick overview of working with merge requests.
-## How to create a merge request
-
-Learn the various ways to [create a merge request](creating_merge_requests.md).
-
## What you can do with merge requests
When you start a new merge request, you can immediately include the following
@@ -112,7 +108,7 @@ To create a merge request to close an issue when it's merged, you can either:
choose any name, and GitLab verifies that it's not already in use. The merge request
inherits the milestone and labels of the issue, and is set to automatically
close the issue when it is merged.
- - Create a [new branch](../repository/web_editor.md#create-a-new-branch-from-an-issue)
+ - Create a [new branch](creating_merge_requests.md#from-an-issue)
only, with its name starting with the issue number.
If the issue is [confidential](../issues/confidential_issues.md),
diff --git a/doc/user/project/merge_requests/img/filter_approved_by_merge_requests_v14_6.png b/doc/user/project/merge_requests/img/filter_approved_by_merge_requests_v14_6.png
deleted file mode 100644
index 8d47fdc2652..00000000000
--- a/doc/user/project/merge_requests/img/filter_approved_by_merge_requests_v14_6.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/merge_requests/img/filter_approver_merge_requests_v14_6.png b/doc/user/project/merge_requests/img/filter_approver_merge_requests_v14_6.png
deleted file mode 100644
index 58950031378..00000000000
--- a/doc/user/project/merge_requests/img/filter_approver_merge_requests_v14_6.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md
index 8309b04758a..21651fd645c 100644
--- a/doc/user/project/merge_requests/index.md
+++ b/doc/user/project/merge_requests/index.md
@@ -19,6 +19,10 @@ Merge requests include:
Read more about [how to get started](getting_started.md).
+## Create a merge request
+
+Learn the various ways to [create a merge request](creating_merge_requests.md).
+
## View merge requests
You can view merge requests for your project, group, or yourself.
@@ -63,56 +67,36 @@ or:
## Filter the list of merge requests
+> - Filtering by `approved-by` [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30335) in GitLab 13.0.
+> - Filtering by `reviewer` [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47605) in GitLab 13.7.
+> - Filtering by potential approvers was moved to GitLab Premium in 13.9.
+> - Filtering by `approved-by` moved to GitLab Premium in 13.9.
+
To filter the list of merge requests:
1. Above the list of merge requests, select **Search or filter results...**.
-1. In the dropdown list that appears, select the attribute you wish to filter by.
+1. From the dropdown list, select the attribute you wish to filter by. Some examples:
+ - [**By environment or deployment date**](#filter-merge-requests-by-environment-or-deployment-date).
+ - **ID**: Enter filter `#30` to return only merge request 30.
+ - User filters: Type (or select from the dropdown list) any of these filters to display a list of users:
+ - **Approved-By**, for merge requests already approved by a user. **(PREMIUM)**.
+ - **Approver**, for merge requests that this user is eligible to approve.
+ (For more information, read about [Code owners](../code_owners.md)). **(PREMIUM)**
+ - **Reviewer**, for merge requests reviewed by this user.
1. Select or type the operator to use for filtering the attribute. The following operators are
available:
- `=`: Is
- - `!=`: Is not ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/18059) in GitLab 12.7)
+ - `!=`: Is not
1. Enter the text to filter the attribute by.
You can filter some attributes by **None** or **Any**.
1. Repeat this process to filter by multiple attributes. Multiple attributes are joined by a logical
`AND`.
+1. Select a **Sort direction**, either **{sort-lowest}** for descending order,
+ or **{sort-highest}** for ascending order.
GitLab displays the results on-screen, but you can also
[retrieve them as an RSS feed](../../search/index.md#retrieve-search-results-as-feed).
-### Filter merge requests by ID
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/39908) in GitLab 12.1.
-
-You can filter the **Merge Request** list to find merge requests by their ID.
-
-For example, enter filter `#30` to return only merge request 30.
-
-### Filter merge requests by approvers **(PREMIUM)**
-
-> Moved to GitLab Premium in 13.9.
-
-To filter merge requests by an individual eligible approver ([Code owner](../code_owners.md)), you can type (or select from
-the dropdown list) **Approver** and select the user.
-
-![Filter MRs by an approver](img/filter_approver_merge_requests_v14_6.png)
-
-### Filter merge requests by "approved by" **(PREMIUM)**
-
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30335) in GitLab 13.0.
-> - Moved to GitLab Premium in 13.9.
-
-To filter merge requests already approved by a specific individual, you can type (or select from
-the dropdown list) **Approved-By** and select the user.
-
-![Filter MRs by approved by](img/filter_approved_by_merge_requests_v14_6.png)
-
-### Filter merge requests by reviewer
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47605) in GitLab 13.7.
-
-To filter review requested merge requests for a specific individual, you can type (or select from
-the dropdown list) **Reviewer** and select the user.
-
### Filter merge requests by environment or deployment date
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44041) in GitLab 13.6.
diff --git a/doc/user/project/merge_requests/methods/index.md b/doc/user/project/merge_requests/methods/index.md
index 249a98f1779..b1d07a740bf 100644
--- a/doc/user/project/merge_requests/methods/index.md
+++ b/doc/user/project/merge_requests/methods/index.md
@@ -180,9 +180,9 @@ When a fast-forward merge is not possible, the user is given the option to rebas
[Rebasing in (semi-)linear merge methods](#rebasing-in-semi-linear-merge-methods).
NOTE:
-Projects using the fast-forward merge strategy can't filter merge requests
-[by deployment date](../index.md#filter-merge-requests-by-environment-or-deployment-date),
-because no merge commit is created.
+Projects that use the fast-forward merge strategy can't
+[filter merge requests](../index.md#filter-the-list-of-merge-requests)
+by deployment date, because no merge commit is created.
When you visit the merge request page with `Fast-forward merge`
method selected, you can accept it **only if a fast-forward merge is possible**.
diff --git a/doc/user/project/merge_requests/status_checks.md b/doc/user/project/merge_requests/status_checks.md
index 74c3b3e24b6..2894b71e7e6 100644
--- a/doc/user/project/merge_requests/status_checks.md
+++ b/doc/user/project/merge_requests/status_checks.md
@@ -31,15 +31,16 @@ see the [external status checks epic](https://gitlab.com/groups/gitlab-org/-/epi
## Block merges of merge requests unless all status checks have passed
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 [with a flag](../../../administration/feature_flags.md) named `only_allow_merge_if_all_status_checks_passed`. Disabled by default.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369859) in GitLab 15.5 [with a flag](../../../administration/feature_flags.md) named `only_allow_merge_if_all_status_checks_passed`. Disabled by default.
+> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/372340) in GitLab 15.8.
FLAG:
On self-managed GitLab, by default this feature is not available. To make it available per project or for your entire instance, ask an administrator to
-[enable the feature flag](../../../administration/feature_flags.md) named `only_allow_merge_if_all_status_checks_passed`. On GitLab.com, this feature is not available.
+[enable the feature flag](../../../administration/feature_flags.md) named `only_allow_merge_if_all_status_checks_passed`. On GitLab.com, this feature is available but can be configured by GitLab.com administrators only.
By default, merge requests in projects can be merged even if external status checks fail. To block the merging of merge requests when external checks fail, enable this feature
using the [project API](../../../api/projects.md#edit-project). You must also [enable the feature flag](../../../administration/feature_flags.md) named
-`only_allow_merge_if_all_status_checks_passed`.
+`only_allow_merge_if_all_status_checks_passed` on self-managed GitLab.
## Lifecycle
@@ -151,12 +152,18 @@ the status check and it **will not** be recoverable.
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/327634) in GitLab 14.1.
> - UI [updated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91504) in GitLab 15.2.
+> - Ability to retry failed external status checks [added](https://gitlab.com/gitlab-org/gitlab/-/issues/383200) in GitLab 15.8.
The status checks widget displays in merge requests and displays the following statuses:
- **pending** (**{status-neutral}**), while GitLab waits for a response from an external status check.
- **success** (**{status-success}**) or **failed** (**{status-failed}**), when GitLab receives a response from an external status check.
+To retry a failed status check:
+
+1. Expand the merge request widget to show the list of external status checks.
+1. Select **Retry** (**{retry}**) on the failed external status check row. The status check is put back into a pending state.
+
An organization might have a policy that does not allow merging merge requests if
external status checks do not pass. However, the details in the widget are for informational
purposes only. GitLab does not prevent merging of merge requests that fail status checks.
diff --git a/doc/user/project/merge_requests/versions.md b/doc/user/project/merge_requests/versions.md
index a864a9849b0..120e300da5e 100644
--- a/doc/user/project/merge_requests/versions.md
+++ b/doc/user/project/merge_requests/versions.md
@@ -64,7 +64,7 @@ branches. The new mode is available from the comparison target drop down
by selecting **main (HEAD)**. In GitLab 13.9, it
[replaced](https://gitlab.com/gitlab-org/gitlab/-/issues/198458) the
old default comparison. For technical details, additional information is available in the
-[developer documentation](../../../development/diffs.md#merge-request-diffs-against-the-head-of-the-target-branch).
+[developer documentation](../../../development/merge_request_concepts/diffs/index.md#merge-request-diffs-against-the-head-of-the-target-branch).
![Merge request versions compare HEAD](img/versions_compare_head_v12_10.png)
diff --git a/doc/user/project/organize_work_with_projects.md b/doc/user/project/organize_work_with_projects.md
new file mode 100644
index 00000000000..0ff354562fd
--- /dev/null
+++ b/doc/user/project/organize_work_with_projects.md
@@ -0,0 +1,33 @@
+---
+stage: Manage
+group: Organization
+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
+---
+
+# Organize work with projects **(FREE)**
+
+In GitLab, you can create projects to host
+your codebase. You can also use projects to track issues, plan work,
+collaborate on code, and continuously build, test, and use
+built-in CI/CD to deploy your app.
+
+Projects can be available [publicly, internally, or privately](../public_access.md).
+GitLab does not limit the number of private projects you can create.
+
+- [Manage projects](working_with_projects.md)
+- [Project visibility](../public_access.md)
+- [Project settings](../project/settings/index.md)
+- [Project access tokens](../project/settings/project_access_tokens.md)
+- [Share projects](../project/members/share_project_with_groups.md)
+- [Reserved project and group names](../../user/reserved_names.md)
+- [Search](../../user/search/index.md)
+- [Badges](../../user/project/badges.md)
+- [Code intelligence](../../user/project/code_intelligence.md)
+- [Compliance](../../user/compliance/index.md)
+- [Description templates](../../user/project/description_templates.md)
+- [Deploy keys](../../user/project/deploy_keys/index.md)
+- [Deploy tokens](../../user/project/deploy_tokens/index.md)
+- [File finder](../../user/project/repository/file_finder.md)
+- [GitLab Pages](../../user/project/pages/index.md)
+- [Migrating projects](../../user/project/import/index.md)
+- [Migrate projects by using file exports](../../user/project/settings/import_export.md)
diff --git a/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md b/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md
index dc23540bd1b..2f814bb0e65 100644
--- a/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md
+++ b/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md
@@ -165,7 +165,8 @@ If you're using Cloudflare, check
Once you have added all the DNS records:
-1. Go back at your project's **Settings > Pages**.
+1. Go back at your project's **Settings > Pages** (Note: this may also be
+ located at **Deployments > Pages**, [more information](../index.md#menu-position-test)).
1. Locate your domain name and select **Details**.
1. Select the **Retry verification** button to activate your new domain.
@@ -287,10 +288,15 @@ meet these requirements.
#### Steps
- To add the certificate at the time you add a new domain, go to your
- project's **Settings > Pages > New Domain**, add the domain name and the certificate.
+ project's **Settings > Pages > New Domain** (Note: this may also be
+ located at **Deployments > Pages**, [more information](../index.md#menu-position-test)), add the domain name and the
+ certificate.
- To add the certificate to a domain previously added, go to your
project's **Settings > Pages**, locate your domain name, select **Details** and **Edit** to add the certificate.
+NOTE:
+The Pages menu entry may also be located at **Deployments > Pages**, [more information](../index.md#menu-position-test)
+
1. Add the PEM certificate to its corresponding field.
1. If your certificate is missing its intermediate, copy
and paste the root certificate (usually available from your CA website)
@@ -313,7 +319,8 @@ domain (as long as you've set a valid certificate for it).
To enable this setting:
-1. Navigate to your project's **Settings > Pages**.
+1. Navigate to your project's **Settings > Pages** (Note: this may also be
+ located at **Deployments > Pages**, [more information](../index.md#menu-position-test)).
1. Tick the checkbox **Force HTTPS (requires valid certificates)**.
If you use Cloudflare CDN in front of GitLab Pages, make sure to set the SSL connection setting to
diff --git a/doc/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md b/doc/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md
index e9e6e5a9a3c..770fb4f450a 100644
--- a/doc/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md
+++ b/doc/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md
@@ -42,7 +42,8 @@ For **self-managed** GitLab instances, make sure your administrator has
Once you've met the requirements, enable Let's Encrypt integration:
-1. Navigate to your project's **Settings > Pages**.
+1. Navigate to your project's **Settings > Pages** (Note: this may also be
+ located at **Deployments > Pages**, [more information](../index.md#menu-position-test)).
1. Find your domain and select **Details**.
1. Select **Edit** in the top-right corner.
1. Enable Let's Encrypt integration by switching **Automatic certificate management using Let's Encrypt**:
@@ -69,7 +70,8 @@ associated Pages domain. GitLab also renews it automatically.
If you get an error **Something went wrong while obtaining the Let's Encrypt certificate**, first, make sure that your pages site is set to "Everyone" in your project's **Settings > General > Visibility**. This allows the Let's Encrypt Servers reach your pages site. Once this is confirmed, you can try obtaining the certificate again by following these steps:
-1. Go to your project's **Settings > Pages**.
+1. Go to your project's **Settings > Pages** (Note: this may also be
+ located at **Deployments > Pages**, [more information](../index.md#menu-position-test)).
1. Select **Edit** on your domain.
1. Select **Retry**.
1. If you're still seeing the same error:
@@ -83,7 +85,8 @@ If you get an error **Something went wrong while obtaining the Let's Encrypt cer
If you've enabled Let's Encrypt integration, but a certificate is absent after an hour and you see the message, "GitLab is obtaining a Let's Encrypt SSL certificate for this domain. This process can take some time. Please try again later.", try to remove and add the domain for GitLab Pages again by following these steps:
-1. Go to your project's **Settings > Pages**.
+1. Go to your project's **Settings > Pages** (Note: this may also be
+ located at **Deployments > Pages**, [more information](../index.md#menu-position-test)).
1. Select **Remove** on your domain.
1. [Add the domain again and verify it](index.md#1-add-a-custom-domain).
1. [Enable Let's Encrypt integration for your domain](#enabling-lets-encrypt-integration-for-your-custom-domain).
diff --git a/doc/user/project/pages/getting_started/pages_ci_cd_template.md b/doc/user/project/pages/getting_started/pages_ci_cd_template.md
index 339ab239588..e0448621c6a 100644
--- a/doc/user/project/pages/getting_started/pages_ci_cd_template.md
+++ b/doc/user/project/pages/getting_started/pages_ci_cd_template.md
@@ -28,7 +28,8 @@ If everything is configured correctly, the site can take approximately 30 minute
To view the pipeline, go to **CI/CD > Pipelines**.
When the pipeline is finished, go to **Settings > Pages** to find the link to
-your Pages website.
+your Pages website. (Note: this may also be
+located at **Deployments > Pages**, [more information](../index.md#menu-position-test))
For every change pushed to your repository, GitLab CI/CD runs a new pipeline
that immediately publishes your changes to the Pages site.
diff --git a/doc/user/project/pages/getting_started/pages_forked_sample_project.md b/doc/user/project/pages/getting_started/pages_forked_sample_project.md
index 9841e52a089..e1a245851cb 100644
--- a/doc/user/project/pages/getting_started/pages_forked_sample_project.md
+++ b/doc/user/project/pages/getting_started/pages_forked_sample_project.md
@@ -24,7 +24,9 @@ To fork a sample project and create a Pages website:
GitLab CI/CD builds and deploys your site.
The site can take approximately 30 minutes to deploy.
-When the pipeline is finished, go to **Settings > Pages** to find the link to your website from your project.
+When the pipeline is finished, go to **Settings > Pages** to find the link
+to your website from your project. (Note: this may also be
+located at **Deployments > Pages**, [more information](../index.md#menu-position-test))
For every change pushed to your repository, GitLab CI/CD runs a new pipeline
that immediately publishes your changes to the Pages site.
diff --git a/doc/user/project/pages/getting_started/pages_from_scratch.md b/doc/user/project/pages/getting_started/pages_from_scratch.md
index ebadf39a984..82e544b0701 100644
--- a/doc/user/project/pages/getting_started/pages_from_scratch.md
+++ b/doc/user/project/pages/getting_started/pages_from_scratch.md
@@ -27,7 +27,7 @@ To create a GitLab Pages website:
## Prerequisites
-You must have a [blank project](../../working_with_projects.md#create-a-blank-project) in GitLab.
+You must have a [blank project](../../index.md#create-a-blank-project) in GitLab.
## Create the project files
@@ -176,7 +176,8 @@ deploy your website:
1. Save and commit the `.gitlab-ci.yml` file.
1. Go to **CI/CD > Pipelines** to watch the pipeline.
1. When the pipeline succeeds, go to **Settings > Pages**
- to view the URL where your site is now available.
+ to view the URL where your site is now available. (Note: this may also be
+ located at **Deployments > Pages**, [more information](../index.md#menu-position-test))
When this `pages` job completes successfully, a special `pages:deploy` job
appears in the pipeline view. It prepares the content of the website for the
diff --git a/doc/user/project/pages/getting_started/pages_new_project_template.md b/doc/user/project/pages/getting_started/pages_new_project_template.md
index a0f9753a40c..a9988b1fb99 100644
--- a/doc/user/project/pages/getting_started/pages_new_project_template.md
+++ b/doc/user/project/pages/getting_started/pages_new_project_template.md
@@ -24,7 +24,8 @@ configured to generate a Pages site.
site.
When the pipeline is finished, go to **Settings > Pages** to find the link to
-your Pages website.
+your Pages website. (Note: this may also be
+located at **Deployments > Pages**, [more information](../index.md#menu-position-test))
For every change pushed to your repository, GitLab CI/CD runs a new pipeline
that immediately publishes your changes to the Pages site.
diff --git a/doc/user/project/pages/getting_started/pages_ui.md b/doc/user/project/pages/getting_started/pages_ui.md
index a6069b473e6..984c8e5c619 100644
--- a/doc/user/project/pages/getting_started/pages_ui.md
+++ b/doc/user/project/pages/getting_started/pages_ui.md
@@ -34,8 +34,10 @@ a pipeline deploys your Pages website.
To complete the setup and generate a GitLab Pages deployment:
1. On the top bar, select **Main menu > Projects** and find your project.
-1. On the left sidebar, select **Settings > Pages**. A **Get Started with Pages** form appears.
- If this form is not available, see [Troubleshooting](#if-the-get-started-with-pages-form-is-not-available).
+1. On the left sidebar, select **Settings > Pages** (Note: this may also be
+ located at **Deployments > Pages**, [more information](../index.md#menu-position-test)).
+ A **Get Started with Pages** form appears. If this form is not available,
+ see [Troubleshooting](#if-the-get-started-with-pages-form-is-not-available).
1. For **Step 1**, enter an image name and verify that your files are in a `public` folder.
1. Select **Next**.
1. For **Step 2**, enter your installation steps. If your framework's build process does not
diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md
index 9305b92bf7d..89d8fd093b2 100644
--- a/doc/user/project/pages/index.md
+++ b/doc/user/project/pages/index.md
@@ -34,6 +34,13 @@ Pages does not support dynamic server-side processing, for instance, as `.php` a
Learn more about
[static websites compared to dynamic websites](https://about.gitlab.com/blog/2016/06/03/ssg-overview-gitlab-pages-part-1-dynamic-x-static/).
+## Menu Position Test
+
+NOTE:
+We are currently conducting an A/B test where some users may see the Pages
+Menu entry under "Deployments" instead of "Settings". We think that this may
+be a more accurate position. Feel free to add any feedback to [the experiment issue](https://gitlab.com/gitlab-org/gitlab/-/issues/373547).
+
## Getting started
To create a GitLab Pages website:
diff --git a/doc/user/project/protected_branches.md b/doc/user/project/protected_branches.md
index ab97ff08123..b0754e74314 100644
--- a/doc/user/project/protected_branches.md
+++ b/doc/user/project/protected_branches.md
@@ -38,6 +38,8 @@ Administrators can set a default branch protection level in the
Prerequisite:
- You must have at least the Maintainer role.
+- When granting a group **Allowed to merge** or **Allowed to push** permissions
+ on a protected branch, the group must be added to the project.
To protect a branch:
diff --git a/doc/user/project/quick_actions.md b/doc/user/project/quick_actions.md
index a73a5329688..d12a71c9ab3 100644
--- a/doc/user/project/quick_actions.md
+++ b/doc/user/project/quick_actions.md
@@ -86,7 +86,7 @@ threads. Some quick actions might not be available to all subscription tiers.
| `/move <path/to/project>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Move this issue to another project. Be careful when moving an issue to a project with different access rules. Before moving the issue, make sure it does not contain sensitive data. |
| `/parent_epic <epic>` | **{dotted-circle}** No | **{dotted-circle}** No | **{check-circle}** Yes | Set parent epic to `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/10556) in GitLab 12.1). |
| `/promote` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Promote issue to epic. |
-| `/promote_to_incident` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Promote issue to incident ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/296787) in GitLab 14.5). |
+| `/promote_to_incident` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Promote issue to incident ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/296787) in GitLab 14.5). In [GitLab 15.8 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/376760), you can also use the quick action when creating a new issue. |
| `/page <policy name>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Start escalations for the incident ([introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/79977) in GitLab 14.9). |
| `/publish` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Publish issue to an associated [Status Page](../../operations/incident_management/status_page.md) ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30906) in GitLab 13.0) |
| `/ready` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Set the [ready status](merge_requests/drafts.md#mark-merge-requests-as-ready) ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/90361) in GitLab 15.1). |
diff --git a/doc/user/project/releases/index.md b/doc/user/project/releases/index.md
index 6d5378bddb7..7c2d5088f17 100644
--- a/doc/user/project/releases/index.md
+++ b/doc/user/project/releases/index.md
@@ -132,7 +132,7 @@ release:
```
The `ADDITIONAL_CA_CERT_BUNDLE` value can also be configured as a
-[custom variable in the UI](../../../ci/variables/index.md#custom-cicd-variables),
+[custom variable in the UI](../../../ci/variables/index.md#for-a-project),
either as a `file`, which requires the path to the certificate, or as a variable,
which requires the text representation of the certificate.
diff --git a/doc/user/project/remote_development/index.md b/doc/user/project/remote_development/index.md
index 62220dd2fde..1abcca547db 100644
--- a/doc/user/project/remote_development/index.md
+++ b/doc/user/project/remote_development/index.md
@@ -6,7 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Remote Development **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95169) in GitLab 15.6 [with a flag](../../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95169) in GitLab 15.4 [with a flag](../../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
FLAG:
On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to [enable the feature flag](../../../administration/feature_flags.md) named `vscode_web_ide`. On GitLab.com, this feature is available. The feature is not ready for production use.
@@ -22,7 +22,7 @@ As with all projects, the items mentioned on this page are subject to change or
The development, release, and timing of any products, features, or functionality remain at the
sole discretion of GitLab Inc.
-You can use the [Web IDE](../web_ide/index.md) to commit changes to a project directly from your web browser without installing any dependencies or cloning any repositories. The Web IDE, however, lacks a native runtime environment on which you would compile code, run tests, or generate real-time feedback in the IDE. For a more complete IDE experience, you can pair the Web IDE with a Remote Development environment that has been properly configured to run as a host.
+You can use the [Web IDE](../web_ide/index.md) to commit changes to a project directly from your web browser without installing any dependencies or cloning any repositories. The Web IDE, however, lacks a native runtime environment on which you would compile code, run tests, or generate real-time feedback in the IDE. For a more complete IDE experience, you can pair the [Web IDE Beta](../web_ide_beta/index.md) with a Remote Development environment that has been properly configured to run as a host.
## Connect a remote machine to the Web IDE
@@ -81,7 +81,7 @@ To connect a development environment to the Web IDE:
1. [Create a development environment](#manage-a-development-environment).
1. [Fetch a token](#fetch-a-token).
-1. [Connect to the Web IDE](#connect-to-the-web-ide).
+1. [Configure a remote connection](#configure-a-remote-connection).
#### Manage a development environment
@@ -134,9 +134,18 @@ To remove a development environment:
docker exec my-environment cat TOKEN
```
-#### Connect to the Web IDE
+#### Configure a remote connection
-To connect to the Web IDE:
+To configure a remote connection from the Web IDE:
+
+1. Open the Web IDE.
+1. In the Menu Bar, select **View > Terminal** or press <kbd>Control</kbd>+<kbd>`</kbd>.
+1. In the terminal panel, select **Configure a remote connection**.
+1. Enter the URL for the remote host including the port (for example, `yourdomain.com:3443`).
+1. Enter the project path.
+1. Enter the [token you fetched](#fetch-a-token).
+
+Alternatively, you can pass the parameters from a URL and connect directly to the Web IDE:
1. Run the following command:
@@ -145,3 +154,7 @@ To connect to the Web IDE:
```
1. Go to that URL and enter the [token you fetched](#fetch-a-token).
+
+## Related topics
+
+- [Web IDE Beta](../web_ide_beta/index.md)
diff --git a/doc/user/project/repository/branches/index.md b/doc/user/project/repository/branches/index.md
index a86e32b4721..4e3510c49b7 100644
--- a/doc/user/project/repository/branches/index.md
+++ b/doc/user/project/repository/branches/index.md
@@ -27,7 +27,7 @@ For more information on managing branches using the GitLab UI, see:
- [Default branches](default.md): When you create a new [project](../../index.md), GitLab creates a
default branch for the repository. You can change this setting at the project,
subgroup, group, or instance level.
-- [Create a branch](../web_editor.md#create-a-new-branch)
+- [Create a branch](../web_editor.md#create-a-branch)
- [Protected branches](../../protected_branches.md#protected-branches)
- [Delete merged branches](#delete-merged-branches)
- [Branch filter search box](#branch-filter-search-box)
@@ -119,6 +119,30 @@ The Swap revisions feature allows you to swap the Source and Target revisions. W
![After swap revisions](img/swap_revisions_after_v13_12.png)
+## View branches with configured protections **(FREE SELF)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/88279) in GitLab 15.1 with a flag named `branch_rules`. Disabled by default.
+
+FLAG:
+On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to [enable the feature flag](../../../feature_flags.md) named `branch_rules`.
+On GitLab.com, this feature is not available.
+This feature is not ready for production use.
+
+Branches in your repository can be [protected](../../protected_branches.md) by limiting
+who can push to a branch, require approval for those pushed changes, or merge those changes.
+To help you track the protections for all branches, the **Branch rules overview**
+page shows your branches with their configured rules.
+
+To view the **Branch rules overview** list:
+
+1. On the top bar, select **Main menu > Projects** and find your project.
+1. On the left sidebar, select **Settings > Repository**.
+1. Expand **Branch Rules** to view all branches with protections.
+1. Select **Details** next to your desired branch to show information about its:
+ - [Branch protections](../../protected_branches.md).
+ - [Approval rules](../../merge_requests/approvals/rules.md).
+ - [Status checks](../../merge_requests/status_checks.md).
+
## Troubleshooting
### Error: ambiguous `HEAD` branch exists
diff --git a/doc/user/project/repository/git_history.md b/doc/user/project/repository/git_history.md
index 08fe767f9c9..321b9a5eb53 100644
--- a/doc/user/project/repository/git_history.md
+++ b/doc/user/project/repository/git_history.md
@@ -21,6 +21,10 @@ When you select **History**, this information is displayed:
If you hover over a commit in the UI, the precise date and time of the commit modification
are shown.
+The name and email information provided are retrieved from the
+[Git configuration](https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration)
+of the contributor when a commit is made.
+
## Associated `git` command
If you're running `git` from the command line, the equivalent command
diff --git a/doc/user/project/repository/img/web_editor_line_link_v13_10.png b/doc/user/project/repository/img/web_editor_line_link_v13_10.png
deleted file mode 100644
index 36347afcbe8..00000000000
--- a/doc/user/project/repository/img/web_editor_line_link_v13_10.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_new_branch_dropdown_v14_1.png b/doc/user/project/repository/img/web_editor_new_branch_dropdown_v14_1.png
deleted file mode 100644
index df5e803d77a..00000000000
--- a/doc/user/project/repository/img/web_editor_new_branch_dropdown_v14_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_new_branch_from_issue_create_button_v14_1.png b/doc/user/project/repository/img/web_editor_new_branch_from_issue_create_button_v14_1.png
deleted file mode 100644
index fae0fc1425b..00000000000
--- a/doc/user/project/repository/img/web_editor_new_branch_from_issue_create_button_v14_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_new_branch_from_issue_v14_1.png b/doc/user/project/repository/img/web_editor_new_branch_from_issue_v14_1.png
deleted file mode 100644
index 732173d9c1b..00000000000
--- a/doc/user/project/repository/img/web_editor_new_branch_from_issue_v14_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_new_branch_page_v14_1.png b/doc/user/project/repository/img/web_editor_new_branch_page_v14_1.png
deleted file mode 100644
index cba15631fa8..00000000000
--- a/doc/user/project/repository/img/web_editor_new_branch_page_v14_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_new_directory_dialog_v14_1.png b/doc/user/project/repository/img/web_editor_new_directory_dialog_v14_1.png
deleted file mode 100644
index 1f7a6263d9a..00000000000
--- a/doc/user/project/repository/img/web_editor_new_directory_dialog_v14_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_new_directory_dropdown_v14_1.png b/doc/user/project/repository/img/web_editor_new_directory_dropdown_v14_1.png
deleted file mode 100644
index bbdb9bca199..00000000000
--- a/doc/user/project/repository/img/web_editor_new_directory_dropdown_v14_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_new_file_dropdown_v14_1.png b/doc/user/project/repository/img/web_editor_new_file_dropdown_v14_1.png
deleted file mode 100644
index 1a92555457a..00000000000
--- a/doc/user/project/repository/img/web_editor_new_file_dropdown_v14_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_new_file_editor_v14_1.png b/doc/user/project/repository/img/web_editor_new_file_editor_v14_1.png
deleted file mode 100644
index 3c568e304b2..00000000000
--- a/doc/user/project/repository/img/web_editor_new_file_editor_v14_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_new_push_widget.png b/doc/user/project/repository/img/web_editor_new_push_widget.png
deleted file mode 100644
index 8957b5d6a6b..00000000000
--- a/doc/user/project/repository/img/web_editor_new_push_widget.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_new_tag_dropdown.png b/doc/user/project/repository/img/web_editor_new_tag_dropdown.png
deleted file mode 100644
index 33e8ed891b5..00000000000
--- a/doc/user/project/repository/img/web_editor_new_tag_dropdown.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_new_tag_page.png b/doc/user/project/repository/img/web_editor_new_tag_page.png
deleted file mode 100644
index d6d9945397c..00000000000
--- a/doc/user/project/repository/img/web_editor_new_tag_page.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_start_new_merge_request.png b/doc/user/project/repository/img/web_editor_start_new_merge_request.png
deleted file mode 100644
index 85f4769661a..00000000000
--- a/doc/user/project/repository/img/web_editor_start_new_merge_request.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_template_dropdown_buttons.png b/doc/user/project/repository/img/web_editor_template_dropdown_buttons.png
deleted file mode 100644
index 4608843b1f4..00000000000
--- a/doc/user/project/repository/img/web_editor_template_dropdown_buttons.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_template_dropdown_first_file_v14_1.png b/doc/user/project/repository/img/web_editor_template_dropdown_first_file_v14_1.png
deleted file mode 100644
index ecc4d8e8716..00000000000
--- a/doc/user/project/repository/img/web_editor_template_dropdown_first_file_v14_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_template_dropdown_mit_license_v14_1.png b/doc/user/project/repository/img/web_editor_template_dropdown_mit_license_v14_1.png
deleted file mode 100644
index 5a5562ed38c..00000000000
--- a/doc/user/project/repository/img/web_editor_template_dropdown_mit_license_v14_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_upload_file_dialog_v14_1.png b/doc/user/project/repository/img/web_editor_upload_file_dialog_v14_1.png
deleted file mode 100644
index 632f591e25a..00000000000
--- a/doc/user/project/repository/img/web_editor_upload_file_dialog_v14_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/img/web_editor_upload_file_dropdown_v14_1.png b/doc/user/project/repository/img/web_editor_upload_file_dropdown_v14_1.png
deleted file mode 100644
index ad949aae8ce..00000000000
--- a/doc/user/project/repository/img/web_editor_upload_file_dropdown_v14_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md
index 83389c15eba..3c33467df3f 100644
--- a/doc/user/project/repository/index.md
+++ b/doc/user/project/repository/index.md
@@ -15,7 +15,7 @@ Each [project](../index.md) contains a repository.
To create a repository, you can:
-- [Create a project](../../../user/project/working_with_projects.md#create-a-project) or
+- [Create a project](../../../user/project/index.md#create-a-project) or
- [Fork an existing project](forking_workflow.md).
## Add files to a repository
@@ -264,9 +264,7 @@ to fetch configuration from a project that is renamed or moved.
- [Repository API](../../../api/repositories.md).
- [Find files](file_finder.md) in a repository.
- [Branches](branches/index.md).
-- [File templates](web_editor.md#template-dropdowns).
- [Create a directory](web_editor.md#create-a-directory).
-- [Start a merge request](web_editor.md#tips).
- [Find file history](git_history.md).
- [Identify changes by line (Git blame)](git_blame.md).
- [Use Jupyter notebooks with GitLab](jupyter_notebooks/index.md).
diff --git a/doc/user/project/repository/mirror/index.md b/doc/user/project/repository/mirror/index.md
index 2b578977bd2..bc0073e6ec8 100644
--- a/doc/user/project/repository/mirror/index.md
+++ b/doc/user/project/repository/mirror/index.md
@@ -105,6 +105,20 @@ non-protected branches in the mirroring project are not mirrored and can diverge
To use this option, select **Only mirror protected branches** when you create a repository mirror.
+## Mirror specific branches
+
+> Mirroring branches matching a regex [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/102608) in GitLab 15.8 [with a flag](../../../../administration/feature_flags.md) named `mirror_only_branches_match_regex`. Disabled by default.
+
+FLAG:
+On self-managed GitLab, by default the field `mirror_branch_regex` is not available.
+To make it available, ask an administrator to [enable the feature flag](../../../../administration/feature_flags.md)
+named `mirror_only_branches_match_regex`.
+On GitLab.com, this feature is not available.
+
+To mirror only branches with names matching an [re2 regular expression](https://github.com/google/re2/wiki/Syntax),
+enter a regular expression into the **Mirror specific branches** field. Branches with names that
+do not match the regular expression are not mirrored.
+
## Authentication methods for mirrors
When you create a mirror, you must configure the authentication method for it.
diff --git a/doc/user/project/repository/reducing_the_repo_size_using_git.md b/doc/user/project/repository/reducing_the_repo_size_using_git.md
index 9c977e4da40..a8a79591e9e 100644
--- a/doc/user/project/repository/reducing_the_repo_size_using_git.md
+++ b/doc/user/project/repository/reducing_the_repo_size_using_git.md
@@ -63,7 +63,7 @@ To purge files from a GitLab repository:
1. Clone a fresh copy of the repository from the bundle using `--bare` and `--mirror` options:
```shell
- git clone --bare --mirror /path/to/project.bundle
+ git clone --bare /path/to/project.bundle
```
1. Go to the `project.git` directory:
@@ -84,7 +84,7 @@ To purge files from a GitLab repository:
```shell
# Using git filter-repo
git filter-repo --analyze
- head .git/filter-repo/analysis/*-{all,deleted}-sizes.txt
+ head filter-repo/analysis/*-{all,deleted}-sizes.txt
# Using git-sizer
git-sizer
@@ -117,7 +117,7 @@ To purge files from a GitLab repository:
You can use the following command to back up each `commit-map` file:
```shell
- cp .git/filter-repo/commit-map ./_filter_repo_commit_map_$(date +%s)
+ cp filter-repo/commit-map ./_filter_repo_commit_map_$(date +%s)
```
Repeat this step and all following steps (including the [repository cleanup](#repository-cleanup) step)
diff --git a/doc/user/project/repository/ssh_signed_commits/index.md b/doc/user/project/repository/ssh_signed_commits/index.md
index 06affa54a51..85d2ce1d480 100644
--- a/doc/user/project/repository/ssh_signed_commits/index.md
+++ b/doc/user/project/repository/ssh_signed_commits/index.md
@@ -6,12 +6,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Sign commits with SSH keys **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/343879) in GitLab 15.7 [with a flag](../../../../administration/feature_flags.md) named `ssh_commit_signatures`. Enabled by default.
-
-FLAG:
-On self-managed GitLab, by default this feature is available. To hide the feature,
-ask an administrator to [disable the feature flag](../../../../administration/feature_flags.md) named `ssh_commit_signatures`.
-On GitLab.com, this feature is available.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/343879) in GitLab 15.7 [with a flag](../../../../administration/feature_flags.md) named `ssh_commit_signatures`. Enabled by default.
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/384202) in GitLab 15.8. Feature flag `ssh_commit_signatures` removed.
Use SSH keys to sign Git commits in the same manner as
[GPG signed commits](../gpg_signed_commits/index.md). When you sign commits
diff --git a/doc/user/project/repository/web_editor.md b/doc/user/project/repository/web_editor.md
index cc89ca0fb1a..b5b2b8aaae9 100644
--- a/doc/user/project/repository/web_editor.md
+++ b/doc/user/project/repository/web_editor.md
@@ -4,253 +4,118 @@ group: Editor
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
---
-# GitLab Web Editor **(FREE)**
+# Web Editor **(FREE)**
-Sometimes it's easier to make quick changes directly from the GitLab interface
-than to clone the project and use the Git command-line tool. In this feature
-highlight, we look at how you can create a new file, directory, branch, or
-tag from the file browser. All of these actions are available from a single
-dropdown list.
+You can use the Web Editor to make changes directly from the GitLab UI instead of
+cloning a project and using the command line.
-## Create a file
-
-From a project's files page, select the '+' button to the right of the branch selector.
-Choose **New file** from the dropdown list.
-![New file dropdown list](img/web_editor_new_file_dropdown_v14_1.png)
-
-Enter a filename in the **Filename** box. Then, add file content in the editor
-area. Add a descriptive commit message and choose a branch. The branch field
-defaults to the branch you were viewing in the file browser. If you enter
-a new branch name, a checkbox displays, allowing you to start a new merge
-request after you commit the changes.
+From the project dashboard or repository, you can:
-When you are satisfied with your new file, select **Commit Changes** at the bottom.
+- [Create a file](#create-a-file).
+- [Edit a file](#edit-a-file).
+- [Upload a file](#upload-a-file).
+- [Create a directory](#create-a-directory).
+- [Create a branch](#create-a-branch).
+- [Create a tag](#create-a-tag).
-![Create file editor](img/web_editor_new_file_editor_v14_1.png)
+Your [primary email address](../../../user/profile/index.md#change-the-email-displayed-on-your-commits)
+is used by default for any change you commit through the Web Editor.
-### Shortcuts
+## Create a file
-You can use shortcuts when editing a file through the Web Editor. It uses the same shortcuts
-as the Web IDE. For details, read the documentation for [Command Palette](../web_ide/index.md#command-palette).
+To create a text file in the Web Editor:
-### Template dropdowns
+1. On the top bar, select **Main menu > Projects** and find your project.
+1. From the project dashboard or repository, next to the branch name, select the plus icon (**{plus}**).
+1. From the dropdown list, select **New file**.
+1. Complete the fields.
+ - From the **Select a template type** dropdown list, you can apply a template to the new file.
+ - To create a merge request with the new file, ensure the **Start a new merge request with these changes** checkbox is selected.
+1. Select **Commit changes**.
-When starting a new project, there are some common files that the new project
-might need. GitLab displays a message to help you:
+## Edit a file
-![First file for your project](img/web_editor_template_dropdown_first_file_v14_1.png)
+To edit a file in the Web Editor:
-When selecting either `LICENSE` or `.gitignore` and so on, a dropdown displays
-to provide you a template that may be suitable for your project:
+1. On the top bar, select **Main menu > Projects** and find your project.
+1. Go to your file.
+1. Next to the display buttons, select **Edit**.
-![MIT license selected](img/web_editor_template_dropdown_mit_license_v14_1.png)
+### Keyboard shortcuts
-The license, changelog, contribution guide, or `.gitlab-ci.yml` file can also
-be added through a button on the project page. In this example, the license
-has already been created, which creates a link to the license itself.
+When you [edit a file](#edit-a-file) in the Web Editor, you can use the same keyboard shortcuts for the Web IDE.
+See the [available shortcuts](../../shortcuts.md#web-ide).
-![New file button](img/web_editor_template_dropdown_buttons.png)
+### Preview Markdown
-NOTE:
-The **Set up CI/CD** button does not appear on an empty repository. For the button
-to display, add a file to your repository.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/378966) in GitLab 15.6.
-## Preview Markdown
+To preview Markdown content in the Web Editor:
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/378966) in GitLab 15.6.
+1. [Edit a file](#edit-a-file).
+1. Do one of the following:
+ - Select the **Preview** tab.
+ - From the context menu, select **Preview Markdown**.
-To preview Markdown content in the Web Editor, select the **Preview** tab.
-In this tab, you can see a live Markdown preview that updates as you type alongside your content.
+In the **Preview** tab, you can see a live Markdown preview alongside your content.
To close the preview panel, do one of the following:
- Select the **Write** tab.
- From the context menu, select **Hide Live Preview**.
-## Highlight lines
+### Link to specific lines
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56159) in GitLab 13.10 for GitLab SaaS instances.
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56159) in GitLab 13.11 for self-managed instances.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56159) in GitLab 13.11.
-Web Editor enables you to highlight a single line by adding specially formatted
-hash information to the file path segment of the URL. For example, the file path segment
-`MY_FILE.js#L3` instructs the Web Editor to highlight line 3.
+To link to single or multiple lines in the Web Editor, add hash
+information to the filename segment of the URL. For example:
-The Web Editor also enables you to highlight multiple lines using a similar pattern. In
-this case, the file path segment `MY_FILE.js#L3-10` instructs the Web Editor to
-highlight lines 3 to 10 of the file.
+- `MY_FILE.js#L3` highlights line 3 in `MY_FILE.js`.
+- `MY_FILE.js#L3-10` highlights lines 3 to 10 in `MY_FILE.js`.
-You don't need to construct these lines manually. Instead, you can:
+To link to a single line, you can also:
-1. Hover over the number of a line you want to be highlighted when sharing.
-1. Right-click the number with your mouse.
-1. Select **Copy Link Address** in the context menu.
-
- ![Link to a line](img/web_editor_line_link_v13_10.png)
+1. [Edit a file](#edit-a-file).
+1. Select a line number.
## Upload a file
-The ability to create a file is great when the content is text. However, this
-doesn't work well for binary data such as images, PDFs, or other binary file types. In
-this case, you need to upload a file.
-
-From a project's files page, select the '+' button to the right of the branch
-selector. Choose **Upload file** from the dropdown:
-
-![Upload file dropdown list](img/web_editor_upload_file_dropdown_v14_1.png)
+To upload a binary file in the Web Editor:
-After the upload dialog pops up, there are two ways to upload your file. Either
-drag and drop a file on the popup or use the **click to upload** link. After you
-select a file to upload, a file preview displays.
-
-Enter a commit message, choose a branch, and select **Upload file** when you are
-ready.
-
-![Upload file dialog](img/web_editor_upload_file_dialog_v14_1.png)
+1. On the top bar, select **Main menu > Projects** and find your project.
+1. From the project dashboard or repository, next to the branch name, select the plus icon (**{plus}**).
+1. From the dropdown list, select **Upload file**.
+1. Complete the fields. To create a merge request with the uploaded file, ensure the **Start a new merge request with these changes** toggle is turned on.
+1. Select **Upload file**.
## Create a directory
-To keep files in the repository organized it is often helpful to create a new
-directory.
-
-From a project's files page, select the plus button (`+`) to the right of the branch selector.
-Choose **New directory** from the dropdown.
-
-![New directory dropdown list](img/web_editor_new_directory_dropdown_v14_1.png)
-
-In the new directory dialog, enter a directory name, a commit message, and choose
-the target branch. Select **Create directory** to finish.
-
-![New directory dialog](img/web_editor_new_directory_dialog_v14_1.png)
-
-## Create a new branch
-
-There are multiple ways to create a branch from the GitLab web interface.
-
-NOTE:
-Use [branch naming patterns](branches/index.md#naming) to streamline merge request creation.
-
-### Create a new branch from an issue
-
-> The **Create merge request** button [changed](https://gitlab.com/gitlab-org/gitlab/-/issues/349566) to open the merge request creation form in GitLab 14.8.
-
-If your development workflow requires an issue for every merge
-request, you can create a branch directly from the issue to speed the process up.
-The new branch, and later its merge request, are marked as related to this issue.
-After merging the merge request, the issue is closed automatically, unless [automatic issue closing is disabled](../issues/managing_issues.md#disable-automatic-issue-closing).
-You can see a **Create merge request** dropdown below the issue description.
-
-NOTE:
-In GitLab 14.8 and later, selecting **Create merge request**
-[redirects to the merge request creation form](https://gitlab.com/gitlab-org/gitlab/-/issues/349566)
-instead of immediately creating the merge request.
-
-The **Create merge request** button doesn't display if:
-
-- A branch with the same name already exists.
-- A merge request already exists for this branch.
-- Your project has an active fork relationship.
-- Your project is private and the issue is confidential.
-
-To make this button appear, one possible workaround is to
-[remove your project's fork relationship](../settings/index.md#remove-a-fork-relationship).
-After removal, the fork relationship cannot be restored. This project can no longer
-be able to receive or send merge requests to the source project, or other forks.
-
-![Create Button](img/web_editor_new_branch_from_issue_create_button_v14_1.png)
-
-This dropdown contains the options **Create merge request and branch** and **Create branch**.
-
-![New Branch Button](img/web_editor_new_branch_from_issue_v14_1.png)
-
-After selecting one of these options, a new branch or branch and merge request
-is created based on your project's [default branch](branches/default.md).
-The branch name is based on an internal ID, and the issue title. The example
-screenshot above creates a branch named
-`2-make-static-site-auto-deploy-and-serve`.
-
-When you select the **Create branch** button in an empty
-repository project, GitLab performs these actions:
-
-- Creates a default branch.
-- Commits a blank `README.md` file to it.
-- Creates and redirects you to a new branch based on the issue title.
-- _If your project is [configured with a deployment service](../integrations/index.md) like Kubernetes,_
- GitLab prompts you to set up [auto deploy](../../../topics/autodevops/stages.md#auto-deploy)
- by helping you create a `.gitlab-ci.yml` file.
-
-After the branch is created, you can edit files in the repository to fix
-the issue. When a merge request is created based on the newly-created branch,
-the description field displays the [issue closing pattern](../issues/managing_issues.md#closing-issues-automatically)
-`Closes #ID`, where `ID` is the ID of the issue. This closes the issue when the
-merge request is merged.
-
-### Create a new branch from a project's dashboard
-
-If you want to make changes to several files before creating a new merge
-request, you can create a new branch upfront.
-
-1. From a project's files page, choose **New branch** from the dropdown list.
-
- ![New branch dropdown list](img/web_editor_new_branch_dropdown_v14_1.png)
-
-1. Enter a new **Branch name**.
-1. Optional. Change the **Create from** field to choose which branch, tag, or
- commit SHA this new branch originates from. This field autocompletes if you
- start typing an existing branch or tag.
-1. To return to the file browser on this new branch, select **Create branch**.
-
- ![New branch page](img/web_editor_new_branch_page_v14_1.png)
-
-You can now make changes to any files, as needed. When you're ready to merge
-the changes back to your [default branch](branches/default.md), you can use the widget at the top of the screen.
-This widget only appears for a period of time after you create the branch or
-modify files.
-
-![New push widget](img/web_editor_new_push_widget.png)
-
-## Create a new tag
-
-Tags help you mark major milestones such as production releases and
-release candidates. You can create a tag from a branch or a commit
-SHA:
-
-1. From a project's files page, choose **New tag** from the dropdown list.
-
- ![New tag dropdown list](img/web_editor_new_tag_dropdown.png)
-
-1. Give the tag a name such as `v1.0.0`.
-1. Choose the branch or SHA from which you want to create this new tag.
-1. Optional. Add a message and release notes. The release notes section supports
- Markdown format.
-1. Optional. Upload an attachment.
-1. Select **Create tag**. GitLab redirects you to the tag list page.
-
- ![New tag page](img/web_editor_new_tag_page.png)
-
-## Tips
+To create a directory in the Web Editor:
-When creating or uploading a new file or creating a new directory, you can
-trigger a new merge request rather than committing directly to your default branch:
+1. On the top bar, select **Main menu > Projects** and find your project.
+1. From the project dashboard or repository, next to the branch name, select the plus icon (**{plus}**).
+1. From the dropdown list, select **New directory**.
+1. Complete the fields. To create a merge request with the new directory, ensure the **Start a new merge request with these changes** toggle is turned on.
+1. Select **Create directory**.
-1. Enter a new branch name in the **Target branch** field.
-1. GitLab displays the **Start a new merge request with these changes** checkbox.
-1. Commit your changes, and GitLab redirects you to a new merge request form.
+## Create a branch
- ![Start a new merge request with these changes](img/web_editor_start_new_merge_request.png)
+To create a [branch](branches/index.md) in the Web Editor:
-If you'd prefer to not use your primary email address for commits created
-through the web editor, you can choose to use another of your linked email
-addresses from the **User Settings > Edit Profile** page.
+1. On the top bar, select **Main menu > Projects** and find your project.
+1. From the project dashboard or repository, next to the branch name, select the plus icon (**{plus}**).
+1. From the dropdown list, select **New branch**.
+1. Complete the fields.
+1. Select **Create branch**.
-<!-- ## Troubleshooting
+## Create a tag
-Include any troubleshooting steps that you can foresee. If you know beforehand what issues
-one might have when setting this up, or when something is changed, or on upgrading, it's
-important to describe those, too. Think of things that may go wrong and include them here.
-This is important to minimize requests for support, and to avoid doc comments with
-questions that you know someone might ask.
+You can create [tags](../../../topics/git/tags.md) to mark milestones such as
+production releases and release candidates. To create a tag in the Web Editor:
-Each scenario can be a third-level heading, for example `### Getting error message X`.
-If you have none to add when creating a doc, leave this section in place
-but commented out to help encourage others to add to it in the future. -->
+1. On the top bar, select **Main menu > Projects** and find your project.
+1. From the project dashboard or repository, next to the branch name, select the plus icon (**{plus}**).
+1. From the dropdown list, select **New tag**.
+1. Complete the fields.
+1. Select **Create tag**.
diff --git a/doc/user/project/service_desk.md b/doc/user/project/service_desk.md
index 0b52440d1e6..83cf47d508c 100644
--- a/doc/user/project/service_desk.md
+++ b/doc/user/project/service_desk.md
@@ -1,6 +1,6 @@
---
-stage: Plan
-group: Certify
+stage: Monitor
+group: Respond
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
---
@@ -111,6 +111,12 @@ With Service Desk, you can use templates for:
- [New note emails](#new-note-email)
- [New Service Desk issues](#new-service-desk-issues)
+#### Email header and footer **(FREE SELF)**
+
+Instance administrators can add a small header or footer to the GitLab instance and make them
+visible in the email template. For more information, see
+[System header and footer messages](../admin_area/appearance.md#system-header-and-footer-messages).
+
#### Thank you email
When a user submits an issue through Service Desk, GitLab sends a **thank you email**.
@@ -359,6 +365,17 @@ Note that:
- The project's visibility (private, internal, public) does not affect Service Desk.
- The path to the project, including its group or namespace, is shown in emails.
+#### Receiving files attached to comments as email attachments
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/11733) in GitLab 15.8 [with a flag](../../administration/feature_flags.md) named `service_desk_new_note_email_native_attachments`. Disabled by default.
+
+FLAG:
+On self-managed GitLab, by default this feature is not available. To make it available per project or for your entire instance, ask an administrator to [enable the feature flag](../../administration/feature_flags.md) named `service_desk_new_note_email_native_attachments`.
+On GitLab.com, this feature is not available.
+
+If a comment contains any attachments and their total size is less than or equal to 10 MB, these
+attachments are sent as part of the email. In other cases, the email contains links to the attachments.
+
#### Privacy considerations
Service Desk issues are confidential, but the project owner can
diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md
index d83a80ddb13..b85f52d43bb 100644
--- a/doc/user/project/settings/import_export.md
+++ b/doc/user/project/settings/import_export.md
@@ -27,14 +27,22 @@ To preserve contribution history, [migrate using direct transfer](../../group/im
If you migrate from GitLab.com to self-managed GitLab, an administrator can create users on the self-managed GitLab instance.
-## Set up project to migrate using file exports
+## Configure file exports as an import source **(FREE SELF)**
-Before you can import or export a project and its data, you must set it up.
+Before you can migrate projects on a self-managed GitLab instance using file exports, GitLab administrators must:
+1. [Enable file exports](../../admin_area/settings/visibility_and_access_controls.md#enable-project-export) on the source
+ instance.
+1. Enable file exports as an import source for the destination instance. On GitLab.com, file exports are already enabled
+ as an import source.
+
+To enable file exports as an import source for the destination instance:
+
+1. On the top bar, select **Main menu > Admin**.
1. On the left sidebar, select **Settings > General**.
1. Expand **Visibility and access controls**.
1. Scroll to **Import sources**.
-1. Enable the desired **Import sources**.
+1. Select the **GitLab export** checkbox.
## Between CE and EE
@@ -53,6 +61,7 @@ Prerequisites:
- Review the list of [items that are exported](#items-that-are-exported). Not all items are exported.
- You must have at least the Maintainer role for the project.
+- Users must [set a public email](../../profile/index.md#set-your-public-email) in the source GitLab instance that matches one of their verified emails in the target GitLab instance for the user mapping to work correctly.
To export a project and its data, follow these steps:
@@ -136,12 +145,13 @@ Prerequisites:
- You must have [exported the project and its data](#export-a-project-and-its-data).
- Compare GitLab versions and ensure you are importing to a GitLab version that is the same or later
than the GitLab version you exported to.
-- Review the [Version history](#version-history)
- for compatibility issues.
+- Review the [Version history](#version-history) for compatibility issues.
+- At least the Maintainer role on the destination group to migrate 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 a project:
-1. When [creating a new project](../working_with_projects.md#create-a-project),
+1. When [creating a new project](../index.md#create-a-project),
select **Import project**.
1. In **Import project from**, select **GitLab export**.
1. Enter your project name and URL. Then select the file you exported previously.
@@ -212,6 +222,11 @@ To help avoid abuse, by default, users are rate limited to:
## Version history
+### 15.8+
+
+Starting with GitLab 15.8, importing groups from a JSON export is no longer supported. Groups must be imported
+in NDJSON format.
+
### 14.0+
In GitLab 14.0, the JSON format is no longer supported for project and group exports. To allow for a
diff --git a/doc/user/project/settings/index.md b/doc/user/project/settings/index.md
index a88427ab20b..3798643549d 100644
--- a/doc/user/project/settings/index.md
+++ b/doc/user/project/settings/index.md
@@ -1,6 +1,6 @@
---
stage: Manage
-group: Workspace
+group: Organization
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'
type: reference, index, howto
---
@@ -239,7 +239,7 @@ Prerequisites:
- You must have at least the Maintainer role for the [group](../../group/manage.md#create-a-group) to which you are transferring.
- You must be the Owner of the project you transfer.
- The group must allow creation of new projects.
-- The project must not contain any [container images](../../packages/container_registry/index.md#known-issues).
+- The project must not contain any [container images](../../packages/container_registry/index.md#move-or-rename-container-registry-repositories).
- Remove any npm packages. If you transfer a project to a different root namespace, the project must not contain any npm packages. When you update the path of a user or group, or transfer a subgroup or project, you must remove any npm packages first. You cannot update the root namespace of a project with npm packages. Make sure you update your .npmrc files to follow the naming convention and run npm publish if necessary.
To transfer a project:
diff --git a/doc/user/project/web_ide/index.md b/doc/user/project/web_ide/index.md
index fb100986df9..4648df7dbd7 100644
--- a/doc/user/project/web_ide/index.md
+++ b/doc/user/project/web_ide/index.md
@@ -91,21 +91,17 @@ You can pick a theme from your [profile preferences](../../profile/preferences.m
|-------------------------------------------------------------|-----------------------------------------|
| ![Solarized Dark Theme](img/solarized_dark_theme_v13_1.png) | ![Dark Theme](img/dark_theme_v13_0.png) |
-## Highlight lines
+## Link to specific lines
-The Web IDE is built with the [Web Editor](../repository/web_editor.md). This enables the Web IDE to share the
-same core features for highlighting and linking to particular lines in the edited files
-[described for the Web Editor](../repository/web_editor.md#highlight-lines).
+The Web IDE and the [Web Editor](../repository/web_editor.md) share the
+same core features. To link to specific lines in the Web IDE, see
+[Web Editor](../repository/web_editor.md#link-to-specific-lines).
## Schema based validation
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/218472) validation based on predefined schemas in GitLab 13.2 [with a flag](../../../administration/feature_flags.md) named `schema_linting`. Disabled by default.
-
-FLAG:
-On self-managed GitLab, by default this feature is not available. To make it available for your entire instance, ask an administrator to [enable the feature flag](../../../administration/feature_flags.md) named `schema_linting`.
-This feature cannot be enabled or disabled per-project.
-On GitLab.com, this feature is available.
-You should not use this feature for production environments.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/218472) validation based on predefined schemas in GitLab 13.2 [with a flag](../../../administration/feature_flags.md) named `schema_linting`.
+> - [Enabled by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/104399) in GitLab 15.7.
+> - On self-managed GitLab [enabled by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107488) in GitLab 15.8.
The Web IDE provides validation support for certain JSON and YAML files using schemas
based on the [JSON Schema Store](https://www.schemastore.org/json/).
@@ -446,13 +442,12 @@ when:
- You select any area outside the file editor after editing a file.
- A file or folder is created, deleted, or renamed.
-### Limitations
+### Known issues
The Web IDE has a few limitations:
- Interactive Terminals is in a beta phase and continues to be improved in upcoming releases. In the meantime, the user is limited to having only one
active terminal at a time.
-
- LFS files can be rendered and displayed but they cannot be updated and committed using the Web IDE. If an LFS file is modified and pushed to the repository, the LFS pointer in the repository is overwritten with the modified LFS file content.
### Troubleshooting
@@ -463,3 +458,7 @@ The Web IDE has a few limitations:
- If the terminal displays **Connection Failure**, then the terminal could not
connect to the runner. Try to stop and restart the terminal. If the
problem persists, double check your runner configuration.
+
+## Related topics
+
+- [Web IDE Beta](../web_ide_beta/index.md)
diff --git a/doc/user/project/web_ide_beta/index.md b/doc/user/project/web_ide_beta/index.md
index ef07cca465d..4f84110a038 100644
--- a/doc/user/project/web_ide_beta/index.md
+++ b/doc/user/project/web_ide_beta/index.md
@@ -6,17 +6,17 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Web IDE Beta **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95169) in GitLab 15.4 [with a flag](../../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95169) in GitLab 15.7 [with a flag](../../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
FLAG:
-On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to [enable the feature flag](../../../administration/feature_flags.md) named `vscode_web_ide`. On GitLab.com, this feature is available.
+On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to [enable the feature flag](../../../administration/feature_flags.md) named `vscode_web_ide`. On GitLab.com, this feature is available. The feature is not ready for production use.
As announced in [this blog post](https://about.gitlab.com/blog/2022/05/23/the-future-of-the-gitlab-web-ide/),
-the current implementation of the Web IDE is being replaced with an
-implementation inspired by Visual Studio Code.
+the current implementation of the [Web IDE](../web_ide/index.md) is being replaced
+with an implementation powered by Visual Studio Code. This effort is still under
+development. For updates, see [this epic](https://gitlab.com/groups/gitlab-org/-/epics/7683).
-This effort is currently under development. For updates,
-see [this epic](https://gitlab.com/groups/gitlab-org/-/epics/7683).
+To pair the Web IDE Beta with a Remote Development environment, see [Remote Development](../remote_development/index.md).
## Enable the Web IDE Beta
@@ -34,7 +34,7 @@ To open the Web IDE Beta from anywhere in the UI:
- Use the <kbd>.</kbd> [keyboard shortcut](../../shortcuts.md).
You can also open the Web IDE Beta when viewing a file, the repository file list,
-and from merge requests.
+or a merge request.
### Use when viewing a file or the repository file list
@@ -59,45 +59,48 @@ To open the Web IDE Beta from a merge request:
To open any file by its name:
-1. Type **Command** + **`P`** (<kbd>⌘</kbd> + <kbd>P</kbd>).
-1. Type the name of your file.
+1. Press <kbd>Command</kbd>+<kbd>P</kbd>.
+1. Enter the name of your file.
![fuzzy_finder_v15_7](img/fuzzy_finder_v15_7.png)
## Search across files
-You can use VS Code to quickly search all files in the currently opened folder.
+You can use VS Code to quickly search all files in the opened folder.
-To enter your search term:
+To search across files:
-1. Type **Shift** + **Command** + **`F`** (<kbd>⇧</kbd> + <kbd>⌘</kbd> + <kbd>F</kbd>).
+1. Press <kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>F</kbd>.
1. Enter your search term.
In the Web IDE Beta, only partial results from opened files are displayed.
Full file search is planned for a later date.
-## View list of changed files
+## View a list of changed files
-To view the list of files you changed in the Web IDE Beta:
+To view a list of files you changed in the Web IDE Beta,
+in the Activity Bar on the left, select **Source Control**.
+Your `CHANGES`, `STAGED CHANGES`, and `MERGE CHANGES` are displayed.
-- On the VS Code Activity Bar, on the left, select the Source Control icon:
+For details, see the [VS Code documentation](https://code.visualstudio.com/docs/sourcecontrol/overview#_commit).
-Your `CHANGES`, `STAGED CHANGES` and `MERGE CHANGES` are displayed.
+## Stop using the Web IDE Beta
-For details, see [the VS Code documentation](https://code.visualstudio.com/docs/sourcecontrol/overview#_commit).
+If you do not want to use the Web IDE Beta, you can change your personal preferences.
+
+1. On the top bar, in the top right corner, select your avatar.
+1. Select **Preferences**.
+1. In the **Web IDE** section, select the **Opt out of the Web IDE Beta** checkbox.
+1. Select **Save changes**.
## Known issues
The [Web Terminal](../web_ide/index.md#interactive-web-terminals-for-the-web-ide)
and [Live Preview](../web_ide/index.md#live-preview) are not available in the Web IDE Beta.
-These features may become available at a later date.
+These features might become available at a later date.
-### Stop using the Web IDE Beta
+## Related topics
-If you do not want to use the Web IDE Beta, you can change your personal preferences.
-
-1. On the top bar, in the top right corner, select your avatar.
-1. Select **Preferences**.
-1. In the **Web IDE** section, select the **Opt out of the Web IDE Beta** checkbox.
-1. Select **Save changes**.
+- [Remote Development](../remote_development/index.md)
+- [Web IDE](../web_ide/index.md)
diff --git a/doc/user/project/working_with_projects.md b/doc/user/project/working_with_projects.md
index 77a7c48658e..92db90d66dc 100644
--- a/doc/user/project/working_with_projects.md
+++ b/doc/user/project/working_with_projects.md
@@ -1,6 +1,6 @@
---
stage: Manage
-group: Workspace
+group: Organization
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"
---
@@ -16,7 +16,7 @@ To view projects, on the top bar, select **Main menu > Projects > View all proje
NOTE:
The **Explore projects** tab is visible to unauthenticated users unless the
[**Public** visibility level](../admin_area/settings/visibility_and_access_controls.md#restrict-visibility-levels)
-is restricted. Then the tab is visible only to signed-in users.
+is restricted. Then the tab is visible only to authenticated users.
### Who can view the Projects page
@@ -56,196 +56,6 @@ You can assign topics to a project on the [Project Settings page](settings/index
If you're an instance administrator, you can administer all project topics from the
[Admin Area's Topics page](../admin_area/index.md#administering-topics).
-## Create a project
-
-To create a project in GitLab:
-
-1. On the top bar, select **Main menu > Projects > View all projects**.
-1. On the right of the page, select **New project**.
-1. Select an option:
- - Create a [blank project](#create-a-blank-project).
- - Create a project from a:
- - [built-in template](#create-a-project-from-a-built-in-template).
- - [custom template](#create-a-project-from-a-custom-template).
- - [HIPAA audit protocol template](#create-a-project-from-the-hipaa-audit-protocol-template).
- - [Import a project](../../user/project/import/index.md)
- from a different repository. Contact your GitLab administrator if this option is not available.
- - [Connect an external repository to GitLab CI/CD](../../ci/ci_cd_for_external_repos/index.md).
-
-- For a list of words that you cannot use as project names, see
- [reserved project and group names](../../user/reserved_names.md).
-- For a list of characters that you cannot use in project and group names, see
- [limitations on project and group names](../../user/reserved_names.md#limitations-on-project-and-group-names).
-
-## Create a blank project
-
-To create a blank project:
-
-1. On the top bar, select **Main menu > Projects > View all projects**.
-1. On the right of the page, select **New project**.
-1. Select **Create blank project**.
-1. Enter the project details:
- - In the **Project name** field, enter the name of your project. You cannot use special characters at
- the start or end of a project name.
- - In the **Project slug** field, enter the path to your project. The GitLab instance uses the
- slug as the URL path to the project. To change the slug, first enter the project name,
- then change the slug.
- - In the **Project deployment target (optional)** field, select your project's deployment target.
- This information helps GitLab better understand its users and their deployment requirements.
- - To modify the project's [viewing and access rights](../public_access.md) for
- users, change the **Visibility Level**.
- - To create README file so that the Git repository is initialized, has a default branch, and
- can be cloned, select **Initialize repository with a README**.
- - To analyze the source code in the project for known security vulnerabilities,
- select **Enable Static Application Security Testing (SAST)**.
-1. Select **Create project**.
-
-## Create a project from a built-in template
-
-A built-in project template populates a new project with files to get you started.
-Built-in templates are sourced from the following groups:
-
-- [`project-templates`](https://gitlab.com/gitlab-org/project-templates)
-- [`pages`](https://gitlab.com/pages)
-
-Anyone can [contribute a built-in template](../../development/project_templates.md).
-
-To create a project from a built-in template:
-
-1. On the top bar, select **Main menu > Projects > View all projects**.
-1. On the right of the page, select **New project**.
-1. Select **Create from template**.
-1. Select the **Built-in** tab.
-1. From the list of templates:
- - To view a preview of the template, select **Preview**.
- - To use a template for the project, select **Use template**.
-1. Enter the project details:
- - In the **Project name** field, enter the name of your project. You cannot use special characters at
- the start or end of a project name.
- - In the **Project slug** field, enter the path to your project. The GitLab instance uses the
- slug as the URL path to the project. To change the slug, first enter the project name,
- then change the slug.
- - In the **Project description (optional)** field, enter the description of your project's dashboard.
- - To modify the project's [viewing and access rights](../public_access.md) for users,
- change the **Visibility Level**.
-1. Select **Create project**.
-
-## Create a project from a custom template **(PREMIUM)**
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/6860) in GitLab 11.2.
-
-Custom project templates are available at:
-
-- The [instance-level](../../user/admin_area/custom_project_templates.md)
-- The [group-level](../../user/group/custom_project_templates.md)
-
-1. On the top bar, select **Main menu > Projects > View all projects**.
-1. On the right of the page, select **New project**.
-1. Select **Create from template**.
-1. Select the **Instance** or **Group** tab.
-1. From the list of templates:
- - To view a preview of the template, select **Preview**.
- - To use a template for the project, select **Use template**.
-1. Enter the project details:
- - In the **Project name** field, enter the name of your project. You cannot use special characters at
- the start or end of a project name.
- - In the **Project slug** field, enter the path to your project. The GitLab instance uses the
- slug as the URL path to the project. To change the slug, first enter the project name,
- then change the slug.
- - The description of your project's dashboard in the **Project description (optional)** field.
- - To modify the project's [viewing and access rights](../public_access.md) for users,
- change the **Visibility Level**.
-1. Select **Create project**.
-
-## Create a project from the HIPAA Audit Protocol template **(ULTIMATE)**
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/13756) in GitLab 12.10
-
-The HIPAA Audit Protocol template contains issues for audit inquiries in the
-HIPAA Audit Protocol published by the U.S Department of Health and Human Services.
-
-To create a project from the HIPAA Audit Protocol template:
-
-1. On the top bar, select **Main menu > Projects > View all projects**.
-1. On the right of the page, select **New project**.
-1. Select **Create from template**.
-1. Select the **Built-in** tab.
-1. Locate the **HIPAA Audit Protocol** template:
- - To view a preview of the template, select **Preview**.
- - To use the template for the project, select **Use template**.
-1. Enter the project details:
- - In the **Project name** field, enter the name of your project. You cannot use special characters at
- the start or end of a project name.
- - In the **Project slug** field, enter the path to your project. The GitLab instance uses the
- slug as the URL path to the project. To change the slug, first enter the project name,
- then change the slug.
- - In the **Project description (optional)** field, enter the description of your project's dashboard.
- - To modify the project's [viewing and access rights](../public_access.md) for users,
- change the **Visibility Level**.
-1. Select **Create project**.
-
-## Create a new project with Git push
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/26388) in GitLab 10.5.
-
-Use `git push` to push a local project repository to GitLab. After you push a repository,
-GitLab creates your project in your chosen namespace.
-
-You cannot use `git push` to create projects with project paths that:
-
-- Have previously been used.
-- Have been [renamed](settings/index.md#rename-a-repository).
-
-Previously used project paths have a redirect. The redirect causes push attempts to redirect requests
-to the renamed project location, instead of creating a new project. To create a new project for a previously
-used or renamed project, use the [UI](#create-a-project) or the [Projects API](../../api/projects.md#create-project).
-
-Prerequisites:
-
-- To push with SSH, you must have [an SSH key](../ssh.md) that is
- [added to your GitLab account](../ssh.md#add-an-ssh-key-to-your-gitlab-account).
-- You must have permission to add new projects to a namespace. To check if you have permission:
-
- 1. On the top bar, select **Main menu > Groups** and find your group.
- 1. Confirm that **New project** is visible in the upper right
- corner. Contact your GitLab
- administrator if you require permission.
-
-To push your repository and create a project:
-
-1. Push with SSH or HTTPS:
- - To push with SSH:
-
- ```shell
- git push --set-upstream git@gitlab.example.com:namespace/myproject.git master
- ```
-
- - To push with HTTPS:
-
- ```shell
- git push --set-upstream https://gitlab.example.com/namespace/myproject.git master
- ```
-
- - For `gitlab.example.com`, use the domain name of the machine that hosts your Git repository.
- - For `namespace`, use the name of your [namespace](../namespace/index.md).
- - For `myproject`, use the name of your project.
- - Optional. To export existing repository tags, append the `--tags` flag to your `git push` command.
-1. Optional. To configure the remote:
-
- ```shell
- git remote add origin https://gitlab.example.com/namespace/myproject.git
- ```
-
-When the push completes, GitLab displays the message:
-
-```shell
-remote: The private project namespace/myproject was created.
-```
-
-To view your new project, go to `https://gitlab.example.com/namespace/myproject`.
-Your project's visibility is set to **Private** by default. To change project visibility, adjust your
-[project's settings](../public_access.md#change-project-visibility).
-
## Star a project
You can add a star to projects you use frequently to make them easier to find.