Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2024-01-16 13:42:19 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2024-01-16 13:42:19 +0300
commit84d1bd786125c1c14a3ba5f63e38a4cc736a9027 (patch)
treef550fa965f507077e20dbb6d61a8269a99ef7107 /doc/user/project
parent3a105e36e689f7b75482236712f1a47fd5a76814 (diff)
Add latest changes from gitlab-org/gitlab@16-8-stable-eev16.8.0-rc42
Diffstat (limited to 'doc/user/project')
-rw-r--r--doc/user/project/changelogs.md14
-rw-r--r--doc/user/project/clusters/add_existing_cluster.md8
-rw-r--r--doc/user/project/clusters/add_remove_clusters.md2
-rw-r--r--doc/user/project/clusters/multiple_kubernetes_clusters.md4
-rw-r--r--doc/user/project/import/github.md17
-rw-r--r--doc/user/project/import/gitlab_com.md2
-rw-r--r--doc/user/project/import/index.md98
-rw-r--r--doc/user/project/import/repo_by_url.md5
-rw-r--r--doc/user/project/insights/index.md81
-rw-r--r--doc/user/project/integrations/apple_app_store.md14
-rw-r--r--doc/user/project/integrations/gitlab_slack_app_troubleshooting.md11
-rw-r--r--doc/user/project/integrations/google_play.md2
-rw-r--r--doc/user/project/integrations/mattermost.md4
-rw-r--r--doc/user/project/integrations/slack.md2
-rw-r--r--doc/user/project/integrations/webhooks.md1
-rw-r--r--doc/user/project/issue_board.md2
-rw-r--r--doc/user/project/issues/managing_issues.md37
-rw-r--r--doc/user/project/labels.md2
-rw-r--r--doc/user/project/members/index.md2
-rw-r--r--doc/user/project/members/share_project_with_groups.md22
-rw-r--r--doc/user/project/merge_requests/approvals/img/group_access_example_01_v16_8.pngbin0 -> 20153 bytes
-rw-r--r--doc/user/project/merge_requests/approvals/img/group_access_example_02_v16_8.pngbin0 -> 18583 bytes
-rw-r--r--doc/user/project/merge_requests/approvals/index.md19
-rw-r--r--doc/user/project/merge_requests/approvals/rules.md25
-rw-r--r--doc/user/project/merge_requests/approvals/settings.md15
-rw-r--r--doc/user/project/merge_requests/changes.md7
-rw-r--r--doc/user/project/merge_requests/creating_merge_requests.md117
-rw-r--r--doc/user/project/merge_requests/merge_when_pipeline_succeeds.md3
-rw-r--r--doc/user/project/merge_requests/reviews/index.md2
-rw-r--r--doc/user/project/merge_requests/widgets.md6
-rw-r--r--doc/user/project/milestones/index.md4
-rw-r--r--doc/user/project/ml/experiment_tracking/mlflow_client.md16
-rw-r--r--doc/user/project/ml/model_registry/index.md7
-rw-r--r--doc/user/project/organize_work_with_projects.md1
-rw-r--r--doc/user/project/pages/custom_domains_ssl_tls_certification/index.md6
-rw-r--r--doc/user/project/pages/getting_started/pages_from_scratch.md18
-rw-r--r--doc/user/project/pages/index.md2
-rw-r--r--doc/user/project/pages/introduction.md10
-rw-r--r--doc/user/project/pages/pages_access_control.md9
-rw-r--r--doc/user/project/pages/redirects.md27
-rw-r--r--doc/user/project/protected_branches.md4
-rw-r--r--doc/user/project/releases/index.md2
-rw-r--r--doc/user/project/releases/release_fields.md3
-rw-r--r--doc/user/project/remote_development/connect_machine.md5
-rw-r--r--doc/user/project/remote_development/index.md5
-rw-r--r--doc/user/project/repository/branches/index.md40
-rw-r--r--doc/user/project/repository/code_suggestions/index.md79
-rw-r--r--doc/user/project/repository/code_suggestions/repository_xray.md60
-rw-r--r--doc/user/project/repository/code_suggestions/saas.md27
-rw-r--r--doc/user/project/repository/code_suggestions/self_managed.md41
-rw-r--r--doc/user/project/repository/code_suggestions/troubleshooting.md19
-rw-r--r--doc/user/project/repository/git_blame.md22
-rw-r--r--doc/user/project/repository/gpg_signed_commits/index.md11
-rw-r--r--doc/user/project/repository/index.md13
-rw-r--r--doc/user/project/repository/managing_large_repositories.md11
-rw-r--r--doc/user/project/repository/mirror/bidirectional.md2
-rw-r--r--doc/user/project/repository/mirror/index.md2
-rw-r--r--doc/user/project/repository/mirror/push.md2
-rw-r--r--doc/user/project/repository/mirror/troubleshooting.md10
-rw-r--r--doc/user/project/repository/push_rules.md6
-rw-r--r--doc/user/project/repository/reducing_the_repo_size_using_git.md2
-rw-r--r--doc/user/project/repository/signed_commits/ssh.md2
-rw-r--r--doc/user/project/repository/ssh_signed_commits/index.md11
-rw-r--r--doc/user/project/repository/web_editor.md14
-rw-r--r--doc/user/project/repository/x509_signed_commits/index.md11
-rw-r--r--doc/user/project/requirements/index.md8
-rw-r--r--doc/user/project/service_desk/configure.md26
-rw-r--r--doc/user/project/service_desk/index.md4
-rw-r--r--doc/user/project/settings/import_export.md200
-rw-r--r--doc/user/project/settings/project_features_permissions.md2
-rw-r--r--doc/user/project/use_project_as_go_package.md2
-rw-r--r--doc/user/project/web_ide/index.md157
-rw-r--r--doc/user/project/wiki/group.md4
-rw-r--r--doc/user/project/wiki/index.md25
-rw-r--r--doc/user/project/working_with_projects.md8
75 files changed, 946 insertions, 518 deletions
diff --git a/doc/user/project/changelogs.md b/doc/user/project/changelogs.md
index a15bd39f1b7..df6df1653ac 100644
--- a/doc/user/project/changelogs.md
+++ b/doc/user/project/changelogs.md
@@ -15,7 +15,7 @@ commit author. Changelog formats [can be customized](#customize-the-changelog-ou
Each section in the default changelog has a title containing the version
number and release date, like this:
-````markdown
+```markdown
## 1.0.0 (2021-01-05)
### Features (4 changes)
@@ -24,7 +24,7 @@ number and release date, like this:
- [Feature 2](gitlab-org/gitlab@456abc) ([merge request](gitlab-org/gitlab!456))
- [Feature 3](gitlab-org/gitlab@234abc) by @steve
- [Feature 4](gitlab-org/gitlab@456)
-````
+```
The date format for sections can be customized, but the rest of the title cannot.
When adding new sections, GitLab parses these titles to determine where to place
@@ -121,11 +121,11 @@ these variables:
`### Features`, `### Bug fixes`, and `### Performance improvements`:
```yaml
- ---
- categories:
- feature: Features
- bug: Bug fixes
- performance: Performance improvements
+ ---
+ categories:
+ feature: Features
+ bug: Bug fixes
+ performance: Performance improvements
```
### Custom templates
diff --git a/doc/user/project/clusters/add_existing_cluster.md b/doc/user/project/clusters/add_existing_cluster.md
index 161a698a48c..ea4c345a592 100644
--- a/doc/user/project/clusters/add_existing_cluster.md
+++ b/doc/user/project/clusters/add_existing_cluster.md
@@ -25,7 +25,7 @@ See the prerequisites below to add existing clusters to GitLab.
To add any cluster to GitLab, you need:
- Either a GitLab.com account or an account for a self-managed installation
-running GitLab 12.5 or later.
+ running GitLab 12.5 or later.
- The Maintainer role for group-level and project-level clusters.
- Access to the Admin Area for instance-level clusters.
- A Kubernetes cluster.
@@ -48,7 +48,7 @@ To add an existing **EKS** cluster, you need:
- An Amazon EKS cluster with worker nodes properly configured.
- `kubectl` [installed and configured](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html#get-started-kubectl)
-for access to the EKS cluster.
+ for access to the EKS cluster.
- Ensure the token of the account has administrator privileges for the cluster.
### GKE clusters
@@ -56,8 +56,8 @@ for access to the EKS cluster.
To add an existing **GKE** cluster, you need:
- The `container.clusterRoleBindings.create` permission to create a cluster
-role binding. You can follow the [Google Cloud documentation](https://cloud.google.com/iam/docs/granting-changing-revoking-access)
-to grant access.
+ role binding. You can follow the [Google Cloud documentation](https://cloud.google.com/iam/docs/granting-changing-revoking-access)
+ to grant access.
## How to add an existing cluster
diff --git a/doc/user/project/clusters/add_remove_clusters.md b/doc/user/project/clusters/add_remove_clusters.md
index 940561d70d0..7d18ef0d1e4 100644
--- a/doc/user/project/clusters/add_remove_clusters.md
+++ b/doc/user/project/clusters/add_remove_clusters.md
@@ -39,7 +39,7 @@ When removing a cluster integration, you have two options:
- **Remove integration**: remove only the Kubernetes integration.
- **Remove integration and resources**: remove the cluster integration and
-all GitLab cluster-related resources such as namespaces, roles, and bindings.
+ all GitLab cluster-related resources such as namespaces, roles, and bindings.
To remove the Kubernetes cluster integration:
diff --git a/doc/user/project/clusters/multiple_kubernetes_clusters.md b/doc/user/project/clusters/multiple_kubernetes_clusters.md
index 4fb6ecb1336..9e96438393e 100644
--- a/doc/user/project/clusters/multiple_kubernetes_clusters.md
+++ b/doc/user/project/clusters/multiple_kubernetes_clusters.md
@@ -40,8 +40,8 @@ For example, let's say the following Kubernetes clusters exist in a project:
| Development | `*` |
| Production | `production` |
-And the following environments are set in
-[`.gitlab-ci.yml`](../../../ci/yaml/index.md):
+And the following environments are set in the
+[`.gitlab-ci.yml` file](../../../ci/index.md#the-gitlab-ciyml-file):
```yaml
stages:
diff --git a/doc/user/project/import/github.md b/doc/user/project/import/github.md
index 87467cbc56c..b861fe9d154 100644
--- a/doc/user/project/import/github.md
+++ b/doc/user/project/import/github.md
@@ -480,6 +480,23 @@ repository to be imported manually. Administrators can manually import the repos
project.create_import_state if project.import_state.blank?
# Set state to start
project.import_state.force_start
+
+ # Optional: If your import had certain optional stages selected or a timeout strategy
+ # set, you can reset them here. Below is an example.
+ # The params follow the format documented in the API:
+ # https://docs.gitlab.com/ee/api/import.html#import-repository-from-github
+ Gitlab::GithubImport::Settings
+ .new(project)
+ .write(
+ timeout_strategy: "optimistic",
+ optional_stages: {
+ single_endpoint_issue_events_import: true,
+ single_endpoint_notes_import: true,
+ attachments_import: true,
+ collaborators_import: true
+ }
+ )
+
# Trigger import from second step
Gitlab::GithubImport::Stage::ImportRepositoryWorker.perform_async(project.id)
```
diff --git a/doc/user/project/import/gitlab_com.md b/doc/user/project/import/gitlab_com.md
index e604d9d871b..135b51bf81a 100644
--- a/doc/user/project/import/gitlab_com.md
+++ b/doc/user/project/import/gitlab_com.md
@@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
WARNING:
The GitLab.com importer was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/108502) in GitLab 15.8
and 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).
+[migrating groups and projects by direct transfer](../../group/import/index.md).
## Related topics
diff --git a/doc/user/project/import/index.md b/doc/user/project/import/index.md
index 681174400a2..8c9ba408799 100644
--- a/doc/user/project/import/index.md
+++ b/doc/user/project/import/index.md
@@ -4,34 +4,61 @@ group: Import and Integrate
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Import and migrate projects **(FREE ALL)**
+# Import and migrate groups and projects **(FREE ALL)**
-If you want to bring existing projects to GitLab or copy GitLab projects to a different location, you can:
+To bring existing projects to GitLab, or copy GitLab groups and projects to a different location, you can:
-- Import projects from external systems using one of the [available importers](#available-project-importers).
-- Migrate GitLab projects:
- - Between two GitLab self-managed instances.
- - Between a self-managed instance and GitLab.com in both directions.
- - In the same GitLab instance.
+- Migrate GitLab groups and projects by using direct transfer.
+- Import from supported import sources.
+- Import from other import sources.
-For any type of source and target, you can migrate GitLab projects:
+## Migrate from GitLab to GitLab by using direct transfer
-- 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 simultaneously. Migrating projects by direct transfer is in
- [Beta](../../../policy/experiment-beta-support.md#beta). 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.
+The best way to migrate GitLab groups and projects between GitLab instances, or in the same GitLab instance, is
+[by using direct transfer](../../group/import/index.md).
-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:
+You can also migrate GitLab projects by using a GitLab file export, which is a supported import source.
-- [Migrate projects with groups by direct transfer](../../group/import/index.md#migrate-groups-by-direct-transfer-recommended).
- This feature is in [Beta](../../../policy/experiment-beta-support.md#beta). It is not ready for production use.
-- Use [file exports](../settings/import_export.md) to import projects.
+## Supported import sources
-Keep in mind the limitations of [migrating using file exports](../settings/import_export.md#items-that-are-exported).
-When migrating from self-managed to GitLab.com, user associations (such as comment author)
-are changed to the user who is importing the projects.
+> All importers default to disabled for GitLab self-managed installations. This change was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118970) in GitLab 16.0.
+
+The import sources that are available to you by default depend on which GitLab you use:
+
+- GitLab.com: all available import sources are [enabled by default](../../gitlab_com/index.md#default-import-sources).
+- GitLab self-managed: no import sources are enabled by default and must be
+ [enabled](../../../administration/settings/import_and_export_settings.md#configure-allowed-import-sources).
+
+GitLab can import projects from these supported import sources.
+
+| Import source | Description |
+|:----------------------------------------------|:------------|
+| [Bitbucket Cloud](bitbucket.md) | Using [Bitbucket.org as an OmniAuth provider](../../../integration/bitbucket.md), import Bitbucket repositories. |
+| [Bitbucket Server](bitbucket_server.md) | Import repositories from Bitbucket Server (also known as Stash). |
+| [FogBugz](fogbugz.md) | Import FogBuz projects. |
+| [Gitea](gitea.md) | Import Gitea projects. |
+| [GitHub](github.md) | Import from either GitHub.com or GitHub Enterprise. |
+| [GitLab export](../settings/import_export.md) | Migrate projects one by one by using a GitLab export file. |
+| [Manifest file](manifest.md) | Upload a manifest file. |
+| [Repository by URL](repo_by_url.md) | Provide a Git repository URL to create a new project from. |
+
+## Other import sources
+
+You can also read information on importing from these other import sources:
+
+- [ClearCase](clearcase.md)
+- [Concurrent Versions System (CVS)](cvs.md)
+- [Jira (issues only)](jira.md)
+- [Perforce Helix](perforce.md)
+- [Team Foundation Version Control (TFVC)](tfvc.md)
+
+### Import repositories 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 basic repositories.
+- [`reposurgeon`](http://www.catb.org/~esr/reposurgeon/repository-editing.html), for larger and more complex repositories.
## Security
@@ -49,35 +76,6 @@ GitLab self-managed administrators can reduce their attack surface by disabling
In GitLab 16.1 and earlier, you should **not** use direct transfer with [scheduled scan execution policies](../../../user/application_security/policies/scan-execution-policies.md).
-## Available project importers
-
-You can import projects from:
-
-- [Bitbucket Cloud](bitbucket.md)
-- [Bitbucket Server (also known as Stash)](bitbucket_server.md)
-- [ClearCase](clearcase.md)
-- [CVS](cvs.md)
-- [FogBugz](fogbugz.md)
-- [GitHub.com or GitHub Enterprise](github.md)
-- [Gitea](gitea.md)
-- [Perforce](perforce.md)
-- [TFVC](tfvc.md)
-- [Repository by URL](repo_by_url.md)
-- [Uploading a manifest file (AOSP)](manifest.md)
-- [Jira (issues only)](jira.md)
-
-You can also import any Git repository through HTTP from the **New Project** page. If the 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 basic 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/rest/index.md).
diff --git a/doc/user/project/import/repo_by_url.md b/doc/user/project/import/repo_by_url.md
index 5d67d10582d..3c5a40b8d27 100644
--- a/doc/user/project/import/repo_by_url.md
+++ b/doc/user/project/import/repo_by_url.md
@@ -6,7 +6,10 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Import project from repository by URL **(FREE ALL)**
-You can import your existing repositories by providing the Git URL.
+You can import your existing repositories by providing the Git URL. You can't import GitLab issues and merge requests
+this way. Other methods provide more complete import methods.
+
+If the repository is too large, the import can timeout.
## Prerequisites
diff --git a/doc/user/project/insights/index.md b/doc/user/project/insights/index.md
index 8a91a0c4621..b7addb5131f 100644
--- a/doc/user/project/insights/index.md
+++ b/doc/user/project/insights/index.md
@@ -4,27 +4,28 @@ group: Optimize
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Insights for projects **(ULTIMATE ALL)**
+# Insights **(ULTIMATE ALL)**
-Configure project insights to explore data such as:
+> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/725) in GitLab 12.0.
+
+Configure insights for your projects and groups to explore data such as:
- Issues created and closed during a specified period.
- Average time for merge requests to be merged.
- Triage hygiene.
-Insights are also available for [groups](../../group/insights/index.md).
+You can also create custom Insights reports that are relevant for your group.
## View project insights
Prerequisites:
-- You must have:
- - Access to a project to view information about its merge requests and issues.
- - Permission to view confidential merge requests and issues in the project.
+- For project insights, you must have access to the project and permission to view information about its merge requests and issues.
+- For group insights, you must have permission to view the group.
-To view project insights:
+To view insights for a project or group:
-1. On the left sidebar, select **Search or go to** and find your project.
+1. On the left sidebar, select **Search or go to** and find your project or group.
1. Select **Analyze > Insights**.
1. To view a report, select the **Select report** dropdown list.
@@ -35,23 +36,61 @@ You can direct users to a specific report in Insights by using the deep-linked U
To create a deep link, append the report key to the end of the Insights report URL.
For example, a GitLab report with the key `bugsCharts` has the deep link URL `https://gitlab.com/gitlab-org/gitlab/insights/#/bugsCharts`.
+## Interact with Insights charts
+
+You can interact with the insights charts to view details about your group's activity.
+
+### Display different reports
+
+To display one of the available reports on the insights page, from the **Select report** dropdown list,
+select the report you want to display.
+
+### View bar chart annotations
+
+To view annotations, hover over each bar in the chart.
+
+### Zoom in on chart
+
+Insights display data from the last 90 days. You can zoom in to display data only from a subset of the 90-day range.
+
+To do this, select the pause icons (**{status-paused}**) and slide them along the horizontal axis:
+
+- To change the start date, slide the left pause icon to the left or right.
+- To change the end date, slide the right pause icon to the left or right.
+
+### Exclude dimensions from charts
+
+By default, insights display all available dimensions on the chart.
+
+To exclude a dimension, from the legend below the chart, select the name of the dimension.
+
+### Drill down on charts
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/372215/) in GitLab 16.7.
+
+You can drill down into the data of the **Bugs created per month by priority** and **Bugs created per month by severity** charts from the [default configuration file](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/fixtures/insights/default.yml).
+
+To view a drill-down report of the data for a specific priority or severity in a month:
+
+- On the chart, select the bar stack you want to drill down on.
+
## Configure project insights
Prerequisites:
- Depending on your project configuration, you must have at least the Developer role.
-Project insights are configured with the [`.gitlab/insights.yml`](#insights-configuration-file) file in the project. If a project doesn't have a configuration file, it uses the [group configuration](../../group/insights/index.md#configure-group-insights).
+Project insights are configured with the [`.gitlab/insights.yml`](#insights-configuration-file) file in the project. If a project doesn't have a configuration file, it uses the [group configuration](#configure-group-insights).
The `.gitlab/insights.yml` file is a YAML file where you define:
- The structure and order of charts in a report.
- The style of charts displayed in the report of your project or group.
-To configure project insights, either:
+To configure project insights, create a file `.gitlab/insights.yml` either:
-- Create a `.gitlab/insights.yml` file locally in the root directory of your project, and push your changes.
-- Create a `.gitlab/insights.yml` file in the UI:
+- Locally, in the root directory of your project, and push your changes.
+- From the UI:
1. On the left sidebar, select **Search or go to** and find your project.
1. Above the file list, select the branch you want to commit to, select the plus icon, then select **New file**.
1. In the **File name** text box, enter `.gitlab/insights.yml`.
@@ -59,7 +98,21 @@ To configure project insights, either:
1. Select **Commit changes**.
After you create the configuration file, you can also
-[use it for the project's group](../../group/insights/index.md#configure-group-insights).
+use it for the project's group.
+
+## Configure group insights
+
+GitLab reads insights from the
+[default configuration file](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/fixtures/insights/default.yml).
+
+To configure group insights:
+
+1. In a project that belongs to your group, [create a `.gitlab/insights.yml` file](#configure-project-insights).
+1. On the left sidebar, select **Search or go to** and find your group.
+1. Select **Settings > General**.
+1. Expand **Analytics** and find the **Insights** section.
+1. Select the project that contains your `.gitlab/insights.yml` configuration file.
+1. Select **Save changes**.
## Insights configuration file
@@ -403,7 +456,7 @@ Use `query.environment_tiers` to define an array of environments to include the
Use `projects` to limit where issuables are queried from:
-- If `.gitlab/insights.yml` is used for a [group's insights](../../group/insights/index.md#configure-group-insights), use `projects` to define the projects from which to query issuables. By default, all projects under the group are used.
+- If `.gitlab/insights.yml` is used for a group's insights, use `projects` to define the projects from which to query issuables. By default, all projects under the group are used.
- If `.gitlab/insights.yml` is used for a project's insights, specifying other projects does not yield results. By default, the project is used.
#### `projects.only`
diff --git a/doc/user/project/integrations/apple_app_store.md b/doc/user/project/integrations/apple_app_store.md
index 3031ae42e4d..18022fbaeb8 100644
--- a/doc/user/project/integrations/apple_app_store.md
+++ b/doc/user/project/integrations/apple_app_store.md
@@ -16,19 +16,20 @@ The feature is still in development, but you can:
- [Report a bug](https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/feedback/-/issues/new?issuable_template=report_bug).
- [Share feedback](https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/feedback/-/issues/new?issuable_template=general_feedback).
-With the Apple App Store Connect integration, you can 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.
+Use the Apple App Store Connect integration to configure your CI/CD pipelines to connect to [App Store Connect](https://appstoreconnect.apple.com).
+With this integration, you can build and release apps for iOS, iPadOS, macOS, tvOS, and watchOS.
The Apple App Store Connect integration works out of the box with [fastlane](https://fastlane.tools/). You can also use this integration with other build tools.
-## Prerequisites
+## Enable the integration in GitLab
-An Apple ID enrolled in the [Apple Developer Program](https://developer.apple.com/programs/enroll/) is required to enable this integration.
+Prerequisites:
-## Configure GitLab
+- You must have an Apple ID enrolled in the [Apple Developer Program](https://developer.apple.com/programs/enroll/).
+- You must [generate a new private key](https://developer.apple.com/documentation/appstoreconnectapi/creating_api_keys_for_app_store_connect_api) for your project in the Apple App Store Connect portal.
-GitLab supports enabling the Apple App Store Connect integration at the project level. Complete these steps in GitLab:
+To enable the Apple App Store Connect integration 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 left sidebar, select **Search or go to** and find your project.
1. Select **Settings > Integrations**.
1. Select **Apple App Store Connect**.
@@ -38,7 +39,6 @@ GitLab supports enabling the Apple App Store Connect integration at the project
- **Key ID**: The key ID of the generated private key.
- **Private key**: The generated private key. You can download this key only once.
- **Protected branches and tags only**: Enable to set variables on protected branches and tags only.
-
1. Select **Save changes**.
After you enable the integration:
diff --git a/doc/user/project/integrations/gitlab_slack_app_troubleshooting.md b/doc/user/project/integrations/gitlab_slack_app_troubleshooting.md
index 363e7c2c364..3a1bc746d5b 100644
--- a/doc/user/project/integrations/gitlab_slack_app_troubleshooting.md
+++ b/doc/user/project/integrations/gitlab_slack_app_troubleshooting.md
@@ -10,13 +10,13 @@ When configuring the GitLab for Slack app on GitLab.com, you might encounter the
For self-managed GitLab, see [GitLab for Slack app administration](../../../administration/settings/slack_app.md#troubleshooting).
-## The app does not appear in the list of integrations
+## App does not appear in the list of integrations
The GitLab for Slack app might not appear in the list of integrations. To have the GitLab for Slack app on your self-managed instance, an administrator must [enable the integration](../../../administration/settings/slack_app.md). On GitLab.com, the GitLab for Slack app is available by default.
The GitLab for Slack app is enabled at the project level only. Support for the app at the group and instance levels is proposed in [issue 391526](https://gitlab.com/gitlab-org/gitlab/-/issues/391526).
-## Project or alias not found
+## `Project or alias not found`
Some Slack commands must have a project full path or alias and fail with the following error
if the project cannot be found:
@@ -31,18 +31,19 @@ To resolve this issue, ensure:
- If using a [project alias](gitlab_slack_application.md#create-a-project-alias-for-slash-commands), the alias is correct.
- The GitLab for Slack app is [enabled for the project](gitlab_slack_application.md#from-project-integration-settings).
-## Slash commands return an error in Slack
+## Slash commands return `dispatch_failed` in Slack
Slash commands might return `/gitlab failed with the error "dispatch_failed"` in Slack.
+
To resolve this issue, ensure an administrator has properly configured the [GitLab for Slack app settings](../../../administration/settings/slack_app.md) on your self-managed instance.
-## Notifications are not received to a channel
+## Notifications not received to a channel
If you're not receiving notifications to a Slack channel, ensure:
- The channel name you configured is correct.
- If the channel is private, you've [added the GitLab for Slack app to the channel](gitlab_slack_application.md#receive-notifications-to-a-private-channel).
-## The App Home does not display properly
+## App Home does not display properly
If the [App Home](https://api.slack.com/start/overview#app_home) does not display properly, ensure your [app is up to date](gitlab_slack_application.md#update-the-gitlab-for-slack-app).
diff --git a/doc/user/project/integrations/google_play.md b/doc/user/project/integrations/google_play.md
index 70a1fe5b054..cfe48d11bcb 100644
--- a/doc/user/project/integrations/google_play.md
+++ b/doc/user/project/integrations/google_play.md
@@ -34,7 +34,7 @@ To enable the Google Play integration in GitLab:
1. Select **Google Play**.
1. In **Enable integration**, select the **Active** checkbox.
1. In **Package name**, enter the package name of the app (for example, `com.gitlab.app_name`).
-1. Optional. Under **Protected branches and tags only**, select the **Only set variables on protected branches and tags** checkbox.
+1. Optional. Under **Protected branches and tags only**, select the **Set variables on protected branches and tags only** checkbox.
1. In **Service account key (.JSON)**, drag or upload your key file.
1. Optional. Select **Test settings**.
1. Select **Save changes**.
diff --git a/doc/user/project/integrations/mattermost.md b/doc/user/project/integrations/mattermost.md
index 0a82a94d998..91c8e9ce2f1 100644
--- a/doc/user/project/integrations/mattermost.md
+++ b/doc/user/project/integrations/mattermost.md
@@ -19,8 +19,8 @@ To use the Mattermost integration you must create an incoming webhook integratio
in Mattermost:
1. Sign in to your Mattermost instance.
-1. [Enable incoming webhooks](https://docs.mattermost.com/developer/webhooks-incoming.html#enabling-incoming-webhooks).
-1. [Add an incoming webhook](https://docs.mattermost.com/developer/webhooks-incoming.html#creating-integrations-using-incoming-webhooks).
+1. [Enable incoming webhooks](https://docs.mattermost.com/configure/integrations-configuration-settings.html#enable-incoming-webhooks).
+1. [Add an incoming webhook](https://developers.mattermost.com/integrate/webhooks/incoming/#create-an-incoming-webhook).
1. Choose a display name, description and channel, those can be overridden on GitLab.
1. Save it and copy the **Webhook URL** because we need this later for GitLab.
diff --git a/doc/user/project/integrations/slack.md b/doc/user/project/integrations/slack.md
index 9b92fa35e24..fee6de2af6d 100644
--- a/doc/user/project/integrations/slack.md
+++ b/doc/user/project/integrations/slack.md
@@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
WARNING:
This feature was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/372411) in GitLab 15.9
-and is planned for removal in 17.0. Use the [GitLab for Slack app](gitlab_slack_application.md) instead.
+and is planned for removal in 18.0. Use the [GitLab for Slack app](gitlab_slack_application.md) instead.
This change is a breaking change.
The Slack notifications integration enables your GitLab project to send events
diff --git a/doc/user/project/integrations/webhooks.md b/doc/user/project/integrations/webhooks.md
index 33da78191c0..ccf416fc8c6 100644
--- a/doc/user/project/integrations/webhooks.md
+++ b/doc/user/project/integrations/webhooks.md
@@ -1,6 +1,7 @@
---
stage: Manage
group: Import and Integrate
+description: Custom HTTP callbacks, used to send events.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md
index e6fd302e4f0..39353480908 100644
--- a/doc/user/project/issue_board.md
+++ b/doc/user/project/issue_board.md
@@ -101,7 +101,7 @@ For examples of using issue boards along with [epics](../group/epics/index.md),
- [How to use GitLab for Agile portfolio planning and project management](https://about.gitlab.com/blog/2020/11/11/gitlab-for-agile-portfolio-planning-project-management/) blog post (November 2020)
- <i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
-[Cross-project Agile work management with GitLab](https://www.youtube.com/watch?v=5J0bonGoECs) (15 min, July 2020)
+ [Cross-project Agile work management with GitLab](https://www.youtube.com/watch?v=5J0bonGoECs) (15 min, July 2020)
### Use cases for a single issue board
diff --git a/doc/user/project/issues/managing_issues.md b/doc/user/project/issues/managing_issues.md
index 6f2d0083ae8..b80db3887bf 100644
--- a/doc/user/project/issues/managing_issues.md
+++ b/doc/user/project/issues/managing_issues.md
@@ -355,7 +355,7 @@ To delete an issue:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Plan > Issues**, then select your issue to view it.
-1. On the top right corner, select **Issue actions** (**{ellipsis_v}**).
+1. In the upper-right corner, select **Issue actions** (**{ellipsis_v}**).
1. Select **Delete issue**.
Alternatively:
@@ -367,23 +367,44 @@ Alternatively:
## Promote an issue to an epic **(PREMIUM ALL)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/3777) in GitLab 11.6.
-> - Moved from GitLab Ultimate to GitLab Premium in 12.8.
-> - Promoting issues to epics via the UI [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/233974) in GitLab 13.6.
-
You can promote an issue to an [epic](../../group/epics/index.md) in the immediate parent group.
+NOTE:
+Promoting a confidential issue to an epic makes all information
+related to the issue public, as epics are public to group members.
+
+When an issue is promoted to an epic:
+
+- If the issue was confidential, an additional warning is displayed first.
+- An epic is created in the same group as the project of the issue.
+- Subscribers of the issue are notified that the epic was created.
+
+The following issue metadata is copied to the epic:
+
+- Title, description, activity, and comment threads.
+- Upvotes and downvotes.
+- Participants.
+- Group labels that the issue had.
+- Parent epic.
+
+Prerequisites:
+
+- The project to which the issue belongs must be in a group.
+- You must have at least the Reporter role the project's immediate parent group.
+- You must either:
+ - Have at least the Reporter role for the project.
+ - Be the author of the issue.
+ - Be assigned to the issue.
+
To promote an issue to an epic:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Plan > Issues**, then select your issue to view it.
-1. On the top right corner, select **Issue actions** (**{ellipsis_v}**).
+1. In the upper-right corner, select **Issue actions** (**{ellipsis_v}**).
1. Select **Promote to epic**.
Alternatively, you can use the `/promote` [quick action](../quick_actions.md#issues-merge-requests-and-epics).
-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.
diff --git a/doc/user/project/labels.md b/doc/user/project/labels.md
index 2cc38e6a31c..f064d867e0f 100644
--- a/doc/user/project/labels.md
+++ b/doc/user/project/labels.md
@@ -14,7 +14,7 @@ you're interested in.
Labels are a key part of [issue boards](issue_board.md). With labels you can:
- Categorize [epics](../group/epics/index.md), issues, and merge requests using colors and descriptive titles like
-`bug`, `feature request`, or `docs`.
+ `bug`, `feature request`, or `docs`.
- Dynamically filter and manage [epics](../group/epics/index.md), issues, and merge requests.
- Search lists of issues, merge requests, and epics, as well as issue boards.
diff --git a/doc/user/project/members/index.md b/doc/user/project/members/index.md
index 92aaee1ae54..66258c3873e 100644
--- a/doc/user/project/members/index.md
+++ b/doc/user/project/members/index.md
@@ -59,6 +59,7 @@ Prerequisites:
- You must have the Owner or Maintainer role.
- [Group membership lock](../../group/access_and_permissions.md#prevent-members-from-being-added-to-projects-in-a-group) must be disabled.
+- If [sign-up is disabled](../../../administration/settings/sign_up_restrictions.md#disable-new-sign-ups), an administrator must add the user by email first.
To add a user to a project:
@@ -156,6 +157,7 @@ To add a group to a project:
The invited group is displayed on the **Groups** tab.
Private groups are masked from unauthorized users.
+With the feature flag `allow_members_to_see_invited_groups_in_access_dropdowns` enabled, private groups are displayed in project settings for protected branches, protected tags, and protected environments.
The members of the invited group are not displayed on the **Members** tab.
The **Members** tab shows:
diff --git a/doc/user/project/members/share_project_with_groups.md b/doc/user/project/members/share_project_with_groups.md
index 3881220ec7a..bf8a7468199 100644
--- a/doc/user/project/members/share_project_with_groups.md
+++ b/doc/user/project/members/share_project_with_groups.md
@@ -16,7 +16,7 @@ For a project that was created by `Group 1`:
- The members of `Group 1` have access to the project.
- The owner of `Group 1` can invite `Group 2` to the project.
-This way, members of both `Group 1` and `Group 2` have access to the shared project.
+ This way, members of both `Group 1` and `Group 2` have access to the shared project.
## Prerequisites
@@ -31,7 +31,7 @@ In addition:
- You must be a member of the group or the subgroup being invited.
- The [visibility level](../../public_access.md) of the group you're inviting
-must be at least as restrictive as that of the project. For example, you can invite:
+ must be at least as restrictive as that of the project. For example, you can invite:
- A _private_ group to a _private_ project
- A _private_ group to an _internal_ project.
- A _private_ group to a _public_ project.
@@ -46,12 +46,9 @@ must be at least as restrictive as that of the project. For example, you can inv
## Share a project with a group
-> - [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/247208) in GitLab 13.11 from a form to a modal
- window [with a flag](../../feature_flags.md). Disabled by default.
-> - Modal window [enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/247208)
- in GitLab 14.8.
-> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/352526) in GitLab 14.9.
- [Feature flag `invite_members_group_modal`](https://gitlab.com/gitlab-org/gitlab/-/issues/352526) removed.
+> - [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/247208) in GitLab 13.11 from a form to a modal window [with a flag](../../feature_flags.md). Disabled by default.
+> - Modal window [enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/247208) in GitLab 14.8.
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/352526) in GitLab 14.9. [Feature flag `invite_members_group_modal`](https://gitlab.com/gitlab-org/gitlab/-/issues/352526) removed.
Similar to how you [share a group with another group](../../group/manage.md#share-a-group-with-another-group),
you can share a project with a group by inviting that group to the project.
@@ -101,6 +98,15 @@ NOTE:
The Max role does not elevate the privileges of users.
For example, if a group member has the role of Developer, and the group is invited to a project with a Max role of Maintainer, the member's role is not elevated to Maintainer.
+### Which roles you can assign
+
+In GitLab [16.7](https://gitlab.com/gitlab-org/gitlab/-/issues/233408) and later, the maximum role you can assign depends on whether you have the Owner or Maintainer role for the project. The maximum role you can set is:
+
+- Owner (`50`), if you have the Owner role for the project.
+- Maintainer (`40`), if you have the Maintainer role for the project.
+
+In GitLab 16.6 and earlier, the maximum role you can assign to an invited group is Maintainer (`40`).
+
### View the member's Max role
To view the maximum role assigned to a member:
diff --git a/doc/user/project/merge_requests/approvals/img/group_access_example_01_v16_8.png b/doc/user/project/merge_requests/approvals/img/group_access_example_01_v16_8.png
new file mode 100644
index 00000000000..0b5fbf7e075
--- /dev/null
+++ b/doc/user/project/merge_requests/approvals/img/group_access_example_01_v16_8.png
Binary files differ
diff --git a/doc/user/project/merge_requests/approvals/img/group_access_example_02_v16_8.png b/doc/user/project/merge_requests/approvals/img/group_access_example_02_v16_8.png
new file mode 100644
index 00000000000..49df19f2c46
--- /dev/null
+++ b/doc/user/project/merge_requests/approvals/img/group_access_example_02_v16_8.png
Binary files differ
diff --git a/doc/user/project/merge_requests/approvals/index.md b/doc/user/project/merge_requests/approvals/index.md
index 5436edf9f8d..bf4e2e8334e 100644
--- a/doc/user/project/merge_requests/approvals/index.md
+++ b/doc/user/project/merge_requests/approvals/index.md
@@ -17,15 +17,13 @@ flexibility:
- Create required [rules](rules.md) about the number and type of approvers before work can merge.
- Specify a list of users who act as [code owners](../../codeowners/index.md) for specific files,
and require their approval before work can merge.
+- For GitLab Premium and GitLab Ultimate, configure approvals
+ [for the entire instance](../../../../administration/merge_requests_approvals.md).
You can configure merge request approvals on a per-project basis, and some approvals can be configured
[on the group level](../../../group/manage.md#group-merge-request-approval-settings). Support for
group-level settings for merge request approval rules is tracked in this
-[epic](https://gitlab.com/groups/gitlab-org/-/epics/4367). Administrators of
-[GitLab Premium](https://about.gitlab.com/pricing/) and
-[GitLab Ultimate](https://about.gitlab.com/pricing/) self-managed GitLab instances
-can also configure approvals
-[for the entire instance](../../../../administration/admin_area.md).
+[epic](https://gitlab.com/groups/gitlab-org/-/epics/4367).
## How approvals work
@@ -48,6 +46,8 @@ You can also configure:
- Merge request approval rules and settings through the GitLab UI or with the
[Merge request approvals API](../../../../api/merge_request_approvals.md).
+Approvals cannot be added after a merge request is merged.
+
## Approve a merge request
When an [eligible approver](rules.md#eligible-approvers) visits an open merge request,
@@ -60,9 +60,8 @@ GitLab displays one of these buttons after the body of the merge request:
Eligible approvers can also use the `/approve`
[quick action](../../../project/quick_actions.md) when adding a comment to
-a merge request. [In GitLab 13.10 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/292936),
-if a user approves a merge request and is shown in the reviewer list, a green check mark
-(**{check-circle-filled}**) displays next to their name.
+a merge request. Users in the reviewer list who have approved a merge request display
+a green check mark (**{check-circle-filled}**) next to their name.
After a merge request receives the [number and type of approvals](rules.md) you configure, it can merge
unless it's blocked for another reason. Merge requests can be blocked by other problems,
@@ -80,8 +79,6 @@ of the rule.
## Optional approvals
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/27426) in GitLab 13.2.
-
GitLab allows all users with Developer or greater [permissions](../../../permissions.md)
to approve merge requests. Approvals in GitLab Free are optional, and don't prevent
a merge request from merging without approval.
@@ -128,7 +125,7 @@ Invalid approval rules created through a scan result policy are presented with
## Related topics
- [Merge request approvals API](../../../../api/merge_request_approvals.md)
-- [Instance-level approval rules](../../../../administration/admin_area.md) for self-managed installations
+- [Instance-level approval rules](../../../../administration/merge_requests_approvals.md) for self-managed installations
<!-- ## Troubleshooting
diff --git a/doc/user/project/merge_requests/approvals/rules.md b/doc/user/project/merge_requests/approvals/rules.md
index c284df8d9aa..2f1e2a96295 100644
--- a/doc/user/project/merge_requests/approvals/rules.md
+++ b/doc/user/project/merge_requests/approvals/rules.md
@@ -16,7 +16,10 @@ You can define approval rules:
- [As project defaults](#add-an-approval-rule).
- [Per merge request](#edit-or-override-merge-request-approval-rules).
-- [At the instance level](../../../../administration/admin_area.md)
+
+You can configure approval rules:
+
+- [At the instance level](../../../../administration/merge_requests_approvals.md).
If you don't define a [default approval rule](#add-an-approval-rule),
any user can approve a merge request. Even if you don't define a rule, you can still
@@ -311,8 +314,18 @@ For more information about this validation error, read
### Groups need explicit or inherited Developer role on a project
A group created to handle approvals may be created in a different area of the
-project hierarchy than the project requiring review. If this happens, the approvals group
-isn't recognized as a valid Code Owner for the project, nor does it display in the
-project's **Approvals** list. To fix this problem, add the approval group as a shared group
-high enough in the shared hierarchy so the project requiring review inherits this
-group of users.
+project hierarchy than the project requiring review. If this happens, members of the
+group may not be able to approve the merge request as they do not have access to it.
+
+For example:
+
+In the group structure below, project 1 belongs to subgroup 1 and subgroup 4 has users.
+
+![Example scenario - project and group hierarchy](img/group_access_example_01_v16_8.png)
+
+Project 1 has a project level approval rule which assigns subgroup 4 as approvers.
+When a merge request is created approvers from subgroup 4 appear in the eligible approvers list.
+However, as users from subgroup 4 do not have permission to view the merge request, the `404` error is returned.
+To grant membership, the group must be invited as a project member. It is now possible for users from subgroup 4 to approve.
+
+![Project members page showing subgroup 4 as a member](img/group_access_example_02_v16_8.png)
diff --git a/doc/user/project/merge_requests/approvals/settings.md b/doc/user/project/merge_requests/approvals/settings.md
index f9e40a6714c..0120be0cf17 100644
--- a/doc/user/project/merge_requests/approvals/settings.md
+++ b/doc/user/project/merge_requests/approvals/settings.md
@@ -57,7 +57,7 @@ this setting, unless you configure one of these options:
- [Prevent overrides of default approvals](#prevent-editing-approval-rules-in-merge-requests) at
the project level.
- *(Self-managed instances only)* Prevent overrides of default approvals
- [at the instance level](../../../../administration/admin_area.md). When configured
+ [at the instance level](../../../../administration/merge_requests_approvals.md). When configured
at the instance level, you can't edit this setting at the project or individual
merge request levels.
@@ -68,7 +68,7 @@ this setting, unless you configure one of these options:
> - [Feature flag `keep_merge_commits_for_approvals`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131778) removed in GitLab 16.5. This check now includes merge commits.
By default, users who commit to a merge request can still approve it. At both
-the project level or [instance level](../../../../administration/admin_area.md),
+the project level or instance level,
you can prevent committers from approving merge requests that are partially
their own. To do this:
@@ -76,7 +76,7 @@ their own. To do this:
1. In the **Merge request approvals** section, scroll to **Approval settings** and
select **Prevent approvals by users who add commits**.
If this checkbox is cleared, an administrator has disabled it
- [at the instance level](../../../../administration/admin_area.md), and
+ [at the instance level](../../../../administration/merge_requests_approvals.md), and
it can't be changed at the project level.
1. Select **Save changes**.
@@ -116,10 +116,11 @@ When this field is changed, it can affect all open merge requests depending on t
> - Requiring re-authentication by using SAML authentication for GitLab.com groups [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5981) in GitLab 16.6 [with a flag](../../../../administration/feature_flags.md) named `ff_require_saml_auth_to_approve`. Disabled by default.
> - Requiring re-authentication by using SAML authentication for self-managed instances [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/431415) in GitLab 16.7 [with a flag](../../../../administration/feature_flags.md) named `ff_require_saml_auth_to_approve`. Disabled by default.
+> - [Enabled `ff_require_saml_auth_to_approve` by default](https://gitlab.com/gitlab-org/gitlab/-/issues/431714) in GitLab 16.8 for GitLab.com and self-managed instances.
FLAG:
-On self-managed GitLab, by default requiring re-authentication by using SAML authentication is not available. To make it available, an administrator can
-[enable the feature flag](../../../../administration/feature_flags.md) named `ff_require_saml_auth_to_approve`. On GitLab.com, this feature is not available.
+On self-managed GitLab, by default requiring re-authentication by using SAML authentication is available. To hide the feature, an administrator can
+[disable the feature flag](../../../../administration/feature_flags.md) named `ff_require_saml_auth_to_approve`. On GitLab.com, this feature is available.
You can force potential approvers to first authenticate with either:
@@ -184,7 +185,7 @@ To do this:
You can also enforce merge request approval settings:
-- At the [instance level](../../../../administration/admin_area.md), which apply to all groups
+- At the [instance level](../../../../administration/merge_requests_approvals.md), which apply to all groups
on an instance and, therefore, all projects.
- On a [top-level group](../../../group/manage.md#group-merge-request-approval-settings), which apply to all subgroups
and projects.
@@ -194,6 +195,6 @@ that inherited them.
## Related topics
-- [Instance-level merge request approval settings](../../../../administration/admin_area.md)
+- [Instance-level merge request approval settings](../../../../administration/merge_requests_approvals.md)
- [Compliance center](../../../compliance/compliance_center/index.md)
- [Merge request approvals API](../../../../api/merge_request_approvals.md)
diff --git a/doc/user/project/merge_requests/changes.md b/doc/user/project/merge_requests/changes.md
index 780041ac411..094d2cf5730 100644
--- a/doc/user/project/merge_requests/changes.md
+++ b/doc/user/project/merge_requests/changes.md
@@ -162,6 +162,13 @@ per conflicted file on the merge request diff:
![Example of a conflict alert shown in a merge request diff](img/conflict_ui_v15_6.png)
+## Show scanner findings in diff **(ULTIMATE ALL)**
+
+You can show scanner findings in the diff. For details, see:
+
+- [Code Quality findings](../../../ci/testing/code_quality.md#merge-request-changes-view)
+- [Static Analysis findings](../../application_security/sast/index.md#merge-request-changes-view)
+
## Add a comment to a merge request file
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123515) in GitLab 16.1 [with a flag](../../../administration/feature_flags.md) named `comment_on_files`. Enabled by default.
diff --git a/doc/user/project/merge_requests/creating_merge_requests.md b/doc/user/project/merge_requests/creating_merge_requests.md
index 951c848dee1..d2c5b0af339 100644
--- a/doc/user/project/merge_requests/creating_merge_requests.md
+++ b/doc/user/project/merge_requests/creating_merge_requests.md
@@ -155,23 +155,50 @@ You can create a merge request by running Git commands on your local machine.
You can create a merge request from your fork to contribute back to the main project.
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select your fork of the repository.
-1. On the left sidebar, select **Code > Merge requests**, and select **New merge request**.
-1. In the **Source branch** dropdown list box, select the branch in your forked repository as the source branch.
-1. In the **Target branch** dropdown list box, select the branch from the upstream repository as the target branch.
- You can set a [default target project](#set-the-default-target-project) to
- change the default target branch (which can be useful if you are working in a
- forked project).
+1. On the left sidebar, select **Search or go to** and find your fork.
+1. Select **Code > Merge requests**, and select **New merge request**.
+1. For **Source branch**, select the branch in your fork that contains your changes.
+1. For **Target branch**:
+
+ 1. Select the target project. (Make sure to select the upstream project, rather than your fork.)
+ 1. Select a branch from the upstream repository.
+
+ NOTE:
+ If you contribute changes upstream frequently, consider setting a
+ [default target project](#set-the-default-target-project) for your fork.
+
1. Select **Compare branches and continue**.
-1. Select **Create merge request**.
+1. Select **Create merge request**. The merge request is created in the target project,
+ not your fork.
-After your work is merged, if you don't intend to
-make any other contributions to the upstream project, you can
-[unlink your fork](../repository/forking_workflow.md#unlink-a-fork) from its upstream project.
+After your work merges, [unlink your fork](../repository/forking_workflow.md#unlink-a-fork)
+from its upstream project if you don't intend to make more contributions.
For more information, [see the forking workflow documentation](../repository/forking_workflow.md).
+### Set the default target project
+
+By default, merge requests originating from a fork target your fork, not the upstream project.
+If you frequently contribute back to the upstream project, and want to target it
+by default, change the default target for your fork.
+
+Prerequisites:
+
+- You're working in a fork.
+- You must have at least the Developer role, or be allowed to create merge requests in the project.
+- The upstream project allows merge requests to be created.
+- The [visibility settings](../../public_access.md#change-project-visibility) for
+ the fork must match, or be less strict than, the upstream repository. For example:
+ this setting isn't shown if your fork is private, but the upstream is public.
+
+To do this:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Settings > Merge requests**.
+1. In the **Target project** section, select the option you want to use for
+ your default target project.
+1. Select **Save changes**.
+
## By sending an email
You can create a merge request by sending an email message to GitLab.
@@ -179,60 +206,41 @@ The merge request target branch is the project's default branch.
Prerequisites:
+- The merge request must target the current project, not an upstream project.
- A GitLab administrator must configure [incoming email](../../../administration/incoming_email.md).
- A GitLab administrator must configure [Reply by email](../../../administration/reply_by_email.md).
+- You must have at least the Developer role, or be allowed to create merge requests in the project.
To create a merge request by sending an email:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Code > Merge requests**.
-1. In the upper-right corner, select **Email a new merge request to this project**.
- An email address is displayed. Copy this address.
- Ensure you keep this address private.
+1. If the project contains any merge requests, select **Email a new merge request to this project**.
+1. In the dialog, copy the email address shown. Keep this address private. Anyone who
+ has it can create issues or merge requests as if they were you.
1. Open an email and compose a message with the following information:
- The **To** line is the email address you copied.
- - The subject line is the source branch name.
- - The message body is the merge request description.
+ - The **Subject** is the source branch name.
+ - The body of the email is the merge request description.
-1. Send the email message.
+1. To add commits, attach `.patch` files to the message.
+1. Send the email.
A merge request is created.
### Add attachments when creating a merge request by email
-You can add commits to a merge request by adding
-patches as attachments to the email. All attachments with a file name ending in `.patch` are considered patches and are processed
-ordered by name.
+Add commits to a merge request by adding patches as attachments to the email.
-The combined size of the patches can be 2 MB.
-
-If the source branch from the subject does not exist, it is
-created from the repository's HEAD or the specified target branch.
-You can specify the target branch by using the
-[`/target_branch` quick action](../quick_actions.md). If the source
-branch already exists, the patches are applied on top of it.
-
-## Set the default target project
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58093) in GitLab 13.11.
-
-Merge requests have a source and a target project that are the same, unless
-forking is involved. Creating a fork of the project can cause either of these
-scenarios when you create a new merge request:
-
-- You target an upstream project (the project you forked, and the default
- option).
-- You target your own fork.
-
-To have merge requests from a fork by default target your own fork
-(instead of the upstream project), you can change the default.
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Settings > Merge requests**.
-1. In the **Target project** section, select the option you want to use for
- your default target project.
-1. Select **Save changes**.
+- The combined size of the patches must be 2 MB or less.
+- To be considered a patch, the attachment's file name must end in `.patch`.
+- Patches are processed in order by name.
+- If the source branch from the subject does not exist, it is
+ created from the repository's `HEAD`, or the default target branch.
+ To change the target branch manually, use the
+ [`/target_branch` quick action](../quick_actions.md).
+- If the source branch already exists, patches are applied on top of it.
## Troubleshooting
@@ -249,3 +257,14 @@ To make this button appear, one possible workaround is to
[remove your project's fork relationship](../repository/forking_workflow.md#unlink-a-fork).
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.
+
+### Email message could not be processed
+
+When sending an email to create a merge request, and you attempt to target an
+upstream project, GitLab responds with this error:
+
+```plaintext
+Unfortunately, your email message to GitLab could not be processed.
+
+You are not allowed to perform this action. If you believe this is in error, contact a staff member.
+```
diff --git a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md
index a9cad78449b..3a2729bd64b 100644
--- a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md
+++ b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md
@@ -23,6 +23,9 @@ author can either retry any failed jobs, or push new commits to fix the failure:
- If a retried job succeeds on the second try, the merge request is merged.
- If new commits are added to the merge request, GitLab cancels the request
to ensure the new changes are reviewed before merge.
+- If new commits are added to the target branch of the merge request and
+ fast-forward only merge request is configured, GitLab cancels the request
+ to prevent merge conflicts.
## Auto-merge a merge request
diff --git a/doc/user/project/merge_requests/reviews/index.md b/doc/user/project/merge_requests/reviews/index.md
index 23b1207619e..78e4c19dd57 100644
--- a/doc/user/project/merge_requests/reviews/index.md
+++ b/doc/user/project/merge_requests/reviews/index.md
@@ -19,6 +19,7 @@ review merge requests in Visual Studio Code.
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
For an overview, see [Merge request review](https://www.youtube.com/watch?v=2MayfXKpU08&list=PLFGfElNsQthYDx0A_FaNNfUm9NHsK6zED&index=183).
+<!-- Video published on 2023-04-29 -->
## GitLab Duo Suggested Reviewers **(ULTIMATE SAAS)**
@@ -31,6 +32,7 @@ GitLab uses machine learning to suggest reviewers for your merge request.
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
For an overview, see [GitLab Duo Suggested Reviewers](https://www.youtube.com/embed/ivwZQgh4Rxw).
+<!-- Video published on 2023-11-03 -->
To suggest reviewers, GitLab uses:
diff --git a/doc/user/project/merge_requests/widgets.md b/doc/user/project/merge_requests/widgets.md
index d60bd660b53..a6680e5e4f4 100644
--- a/doc/user/project/merge_requests/widgets.md
+++ b/doc/user/project/merge_requests/widgets.md
@@ -73,3 +73,9 @@ If you have configured [License Compliance](../../compliance/license_scanning_of
If you have configured [external status checks](status_checks.md) you can
see the status of these checks in merge requests
[in a specific widget](status_checks.md#status-checks-widget).
+
+## Application security scanning
+
+If you have enabled any application security scanning tools, the results are shown in the security
+scanning widget. For more information, see
+[security scanning output in merge request widget](../../application_security/index.md#merge-request).
diff --git a/doc/user/project/milestones/index.md b/doc/user/project/milestones/index.md
index a959507b338..f4df178794d 100644
--- a/doc/user/project/milestones/index.md
+++ b/doc/user/project/milestones/index.md
@@ -142,7 +142,7 @@ To edit a milestone:
1. On the left sidebar, select **Search or go to** and find your project or group.
1. Select **Plan > Milestones**.
1. Select a milestone's title.
-1. In the top right corner, select **Milestone actions** (**{ellipsis_v}**) and then select **Edit**.
+1. In the upper-right corner, select **Milestone actions** (**{ellipsis_v}**) and then select **Edit**.
1. Edit the title, start date, due date, or description.
1. Select **Save changes**.
@@ -159,7 +159,7 @@ To edit a milestone:
1. On the left sidebar, select **Search or go to** and find your project or group.
1. Select **Plan > Milestones**.
1. Select a milestone's title.
-1. In the top right corner, select **Milestone actions** (**{ellipsis_v}**) and then select **Delete**.
+1. In the upper-right corner, select **Milestone actions** (**{ellipsis_v}**) and then select **Delete**.
1. Select **Delete milestone**.
## Promote a project milestone to a group milestone
diff --git a/doc/user/project/ml/experiment_tracking/mlflow_client.md b/doc/user/project/ml/experiment_tracking/mlflow_client.md
index 35972f0ad7f..1522fd8e4fc 100644
--- a/doc/user/project/ml/experiment_tracking/mlflow_client.md
+++ b/doc/user/project/ml/experiment_tracking/mlflow_client.md
@@ -39,6 +39,9 @@ To use MLflow client compatibility from a local environment:
1. If the training code contains the call to `mlflow.set_tracking_uri()`, remove it.
+In the model registry, you can copy the tracking URI from the overflow menu in the top right
+by selecting the vertical ellipsis (**{ellipsis_v}**).
+
## Model experiments
When running the training code, MLflow client can be used to create experiments, runs,
@@ -141,11 +144,22 @@ description = 'Model version description'
model_version = client.create_model_version(model_name, source="", description=description)
```
+If the version parameter is not passed, it will be auto-incremented from the latest uploaded
+version. You can set the version by passing a tag during model version creation. The version
+must follow [SemVer](https://semver.org/) format.
+
+```python
+client = MlflowClient()
+model_name = '<your_model_name>'
+version = '<your_version>'
+tags = { "gitlab.version" = version }
+client.create_model)version(model_name, version, description=description, tags=tags)
+```
+
**Notes**
- Argument `run_id` is ignored. Every model version behaves as a Candidate/Run. Creating a mode version from a run is not yet supported.
- Argument `source` is ignored. GitLab will create a package location for the model version files.
-- Argument `tags` is ignored.
- Argument `run_link` is ignored.
- Argument `await_creation_for` is ignored.
diff --git a/doc/user/project/ml/model_registry/index.md b/doc/user/project/ml/model_registry/index.md
index 492ec9940ab..026afc01f22 100644
--- a/doc/user/project/ml/model_registry/index.md
+++ b/doc/user/project/ml/model_registry/index.md
@@ -29,13 +29,14 @@ at least the [Reporter role](../../../permissions.md#roles) to modify or delete
## Exploring models, model versions and model candidates
-Model registry can be accessed on `https/<your-project>-/ml/models`.
+To access the model registry, from the left sidebar, select **Deploy > Model registry**.
## Creating machine learning models and model versions
Models and model versions can be created using the [MLflow](https://www.mlflow.org/docs/latest/tracking.html) client compatibility.
-See [MLflow client compatibility](../experiment_tracking/mlflow_client.md#model-registry) on how to
-create and manage models and model versions.
+For more information about how to create and manage models and model versions, see [MLflow client compatibility](../experiment_tracking/mlflow_client.md#model-registry).
+You can also create models directly on GitLab by selecting **Create Model**
+on the Model registry page.
## Upload files, log metrics, log parameters to a model version
diff --git a/doc/user/project/organize_work_with_projects.md b/doc/user/project/organize_work_with_projects.md
index d41825af613..1371f5e77d0 100644
--- a/doc/user/project/organize_work_with_projects.md
+++ b/doc/user/project/organize_work_with_projects.md
@@ -1,6 +1,7 @@
---
stage: Data Stores
group: Tenant Scale
+description: Project visibility, search, badges, layout.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
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 345a30da198..b34369cb3b7 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
@@ -47,7 +47,7 @@ this document for an [overview on DNS records](dns_concepts.md).
To add your custom domain to GitLab Pages:
1. On the left sidebar, select **Search or go to** and find your project.
-1. On the left sidebar, select **Deploy > Pages**.
+1. Select **Deploy > Pages**.
1. In the upper-right corner, select **New Domain**.
1. In **Domain**, enter the domain name.
1. Optional. In **Certificate**, turn off the **Automatic certificate management using Let's Encrypt** toggle to add an [SSL/TLS certificate](#adding-an-ssltls-certificate-to-pages). You can also add the certificate and key later.
@@ -158,7 +158,7 @@ If you're using Cloudflare, check
After you have added all the DNS records:
1. On the left sidebar, select **Search or go to** and find your project.
-1. On the left sidebar, select **Deploy > Pages**.
+1. Select **Deploy > Pages**.
1. Next to the domain name, select **Edit**.
1. In **Verification status**, select **Retry verification** (**{retry}**).
@@ -287,7 +287,7 @@ domain (as long as you've set a valid certificate for it).
To enable this setting:
1. On the left sidebar, select **Search or go to** and find your project.
-1. On the left sidebar, select **Deploy > Pages**.
+1. Select **Deploy > Pages**.
1. Select the **Force HTTPS (requires valid certificates)** checkbox.
1. Select **Save changes**.
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 9de2703b82b..73583eefdda 100644
--- a/doc/user/project/pages/getting_started/pages_from_scratch.md
+++ b/doc/user/project/pages/getting_started/pages_from_scratch.md
@@ -70,7 +70,7 @@ This specific Ruby image is maintained on [DockerHub](https://hub.docker.com/_/r
Edit your `.gitlab-ci.yml` file and add this text as the first line:
```yaml
-image: ruby:2.7
+image: ruby:3.2
```
If your SSG needs [NodeJS](https://nodejs.org/) to build, you must specify an
@@ -156,7 +156,7 @@ pages:
Your `.gitlab-ci.yml` file should now look like this:
```yaml
-image: ruby:2.7
+image: ruby:3.2
pages:
script:
@@ -185,7 +185,7 @@ GitLab Pages daemon. GitLab runs it in the background and doesn't use a runner.
## Other options for your CI/CD file
If you want to do more advanced tasks, you can update your `.gitlab-ci.yml` file
-with [any of the available settings](../../../../ci/yaml/index.md). You can validate
+with [other CI/CD YAML keywords](../../../../ci/yaml/index.md). You can validate
your `.gitlab-ci.yml` file with the [CI Lint](../../../../ci/lint.md) tool that's included with GitLab.
The following topics show other examples of other options you can add to your CI/CD file.
@@ -198,7 +198,7 @@ First, add a `workflow` section to force the pipeline to run only when changes a
pushed to branches:
```yaml
-image: ruby:2.7
+image: ruby:3.2
workflow:
rules:
@@ -218,7 +218,7 @@ Then configure the pipeline to run the job for the
[default branch](../../repository/branches/default.md) (here, `main`) only.
```yaml
-image: ruby:2.7
+image: ruby:3.2
workflow:
rules:
@@ -249,7 +249,7 @@ To specify a stage for your job to run in,
add a `stage` line to your CI file:
```yaml
-image: ruby:2.7
+image: ruby:3.2
workflow:
rules:
@@ -273,7 +273,7 @@ Now add another job to the CI file, telling it to
test every push to every branch **except** the `main` branch:
```yaml
-image: ruby:2.7
+image: ruby:3.2
workflow:
rules:
@@ -325,7 +325,7 @@ for both jobs, `pages` and `test`.
Move these commands to a `before_script` section:
```yaml
-image: ruby:2.7
+image: ruby:3.2
workflow:
rules:
@@ -366,7 +366,7 @@ This example caches Jekyll dependencies in a `vendor` directory
when you run `bundle install`:
```yaml
-image: ruby:2.7
+image: ruby:3.2
workflow:
rules:
diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md
index d658a09e760..00dfe0c66d9 100644
--- a/doc/user/project/pages/index.md
+++ b/doc/user/project/pages/index.md
@@ -226,7 +226,7 @@ Some other examples of mixing [variables](../../../ci/variables/index.md) with s
### Use multiple deployments to create pages environments
-You can use multiple GitLap Pages deployments to create a new [environment](../../../ci/environments/index.md).
+You can use multiple GitLab Pages deployments to create a new [environment](../../../ci/environments/index.md).
For example:
```yaml
diff --git a/doc/user/project/pages/introduction.md b/doc/user/project/pages/introduction.md
index 42a05e0b1bb..9f40b4d64af 100644
--- a/doc/user/project/pages/introduction.md
+++ b/doc/user/project/pages/introduction.md
@@ -133,8 +133,8 @@ pages:
artifacts:
paths:
- public
- only:
- - main
+ rules:
+ - if: $CI_COMMIT_BRANCH == "main"
```
### `.gitlab-ci.yml` for a static site generator
@@ -145,7 +145,7 @@ See this document for a [step-by-step guide](getting_started/pages_from_scratch.
Remember that GitLab Pages are by default branch/tag agnostic and their
deployment relies solely on what you specify in `.gitlab-ci.yml`. You can limit
-the `pages` job with the [`only` parameter](../../../ci/yaml/index.md#only--except),
+the `pages` job with [`rules:if`](../../../ci/yaml/index.md#rulesif),
whenever a new commit is pushed to a branch used specifically for your
pages.
@@ -175,8 +175,8 @@ pages:
artifacts:
paths:
- public
- only:
- - pages
+ rules:
+ - if: '$CI_COMMIT_REF_NAME == "pages"'
```
See an example that has different files in the [`main` branch](https://gitlab.com/pages/jekyll-branched/tree/main)
diff --git a/doc/user/project/pages/pages_access_control.md b/doc/user/project/pages/pages_access_control.md
index 1c7aa0f182c..07b41f391ba 100644
--- a/doc/user/project/pages/pages_access_control.md
+++ b/doc/user/project/pages/pages_access_control.md
@@ -48,7 +48,8 @@ can access the website.
To sign out of your GitLab Pages website, revoke the application access token
for GitLab Pages:
-1. In the top menu, select your profile, and then select **Settings**.
-1. On the left sidebar, select **Applications**.
-1. Scroll to the **Authorized applications** section, find the **GitLab Pages**
- entry, and select its **Revoke** button.
+1. On the left sidebar, select your avatar.
+1. Select **Edit profile**.
+1. Select **Applications**.
+1. In the **Authorized applications** section, find the **GitLab Pages**
+ entry, and select **Revoke**.
diff --git a/doc/user/project/pages/redirects.md b/doc/user/project/pages/redirects.md
index d13f30060e7..b88e7d2d376 100644
--- a/doc/user/project/pages/redirects.md
+++ b/doc/user/project/pages/redirects.md
@@ -26,7 +26,7 @@ are supported.
| Rewrites (other than `200`) | **{dotted-circle}** No | `/en/* /en/404.html 404` |
| Query parameters | **{dotted-circle}** No | `/store id=:id /blog/:id 301` |
| Force ([shadowing](https://docs.netlify.com/routing/redirects/rewrites-proxies/#shadowing)) | **{dotted-circle}** No | `/app/ /app/index.html 200!` |
-| Domain-level redirects | **{dotted-circle}** No | `http://blog.example.com/* https://www.example.com/blog/:splat 301` |
+| [Domain-level redirects](#domain-level-redirects) | **{check-circle}** Yes | `http://blog.example.com/* https://www.example.com/blog/:splat 301` |
| Redirect by country or language | **{dotted-circle}** No | `/ /anz 302 Country=au,nz` |
| Redirect by role | **{dotted-circle}** No | `/admin/* 200! Role=admin` |
@@ -119,6 +119,31 @@ request matches the `from`:
This status code can be used in combination with [splat rules](#splats) to dynamically
rewrite the URL.
+## Domain-level redirects
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-pages/-/merge_requests/936) in GitLab 16.8 [with a flag](../../../administration/feature_flags.md) named `FF_ENABLE_DOMAIN_REDIRECT`. Disabled by default.
+
+To create a domain-level redirect, add a domain-level path (beginning with `http://`
+or `https://`) to either:
+
+- The `to` path only.
+- The `from` and `to` paths.
+
+The supported [HTTP status codes](#http-status-codes) are `301` and `302`:
+
+```plaintext
+# 301 permanent redirect
+http://blog.example.com/file_1.html https://www.example.com/blog/file_1.html 301
+/file_2.html https://www.example.com/blog/file_2.html 301
+
+# 302 temporary redirect
+http://blog.example.com/file_3.html https://www.example.com/blog/file_3.html 302
+/file_4.html https://www.example.com/blog/file_4.html 302
+```
+
+Domain-level redirects can be used in combination with [splat rules](#splats) (including splat placeholders)
+to dynamically rewrite the URL path.
+
## Splats
> [Introduced](https://gitlab.com/gitlab-org/gitlab-pages/-/merge_requests/458) in GitLab 14.3.
diff --git a/doc/user/project/protected_branches.md b/doc/user/project/protected_branches.md
index 0377ab389a5..60b862a4d3b 100644
--- a/doc/user/project/protected_branches.md
+++ b/doc/user/project/protected_branches.md
@@ -395,6 +395,6 @@ third-party Git clients.
### Branch names are case-sensitive
-Branch names in `git` are case-sensitive. When configuring your protected branch
-or [target branch rule](repository/branches/index.md#configure-rules-for-target-branches),
+Branch names in `git` are case-sensitive. When configuring your protected branch,
+or your [target branch workflow](repository/branches/index.md#configure-workflows-for-target-branches),
`dev` is not the same `DEV` or `Dev`.
diff --git a/doc/user/project/releases/index.md b/doc/user/project/releases/index.md
index 6c31b2ad5d3..1d721d71444 100644
--- a/doc/user/project/releases/index.md
+++ b/doc/user/project/releases/index.md
@@ -70,7 +70,7 @@ You should create a release as one of the last steps in your CI/CD pipeline.
Prerequisites:
- You must have at least the Developer role for a project. For more information, read
-[Release permissions](#release-permissions).
+ [Release permissions](#release-permissions).
To create a release in the Releases page:
diff --git a/doc/user/project/releases/release_fields.md b/doc/user/project/releases/release_fields.md
index c74ebaab89d..7c45a510877 100644
--- a/doc/user/project/releases/release_fields.md
+++ b/doc/user/project/releases/release_fields.md
@@ -50,7 +50,8 @@ A release contains the following types of assets:
### Source code
GitLab automatically generates `zip`, `tar.gz`, `tar.bz2`, and `tar`
-archived source code from the given Git tag. These are read-only assets.
+archived source code from the given Git tag. These assets are read-only,
+and [can be downloaded](../repository/index.md#download-the-code-in-a-repository).
### Links
diff --git a/doc/user/project/remote_development/connect_machine.md b/doc/user/project/remote_development/connect_machine.md
index cf46774741c..b37a2c5fc0f 100644
--- a/doc/user/project/remote_development/connect_machine.md
+++ b/doc/user/project/remote_development/connect_machine.md
@@ -4,7 +4,7 @@ group: IDE
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Tutorial: Connect a remote machine to the Web IDE **(FREE ALL BETA)**
+# Tutorial: Connect a remote machine to the Web IDE **(FREE ALL)**
> - [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.
> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/371084) in GitLab 15.7.
@@ -13,9 +13,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w
FLAG:
On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable 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.
-WARNING:
-This feature is in [Beta](../../../policy/experiment-beta-support.md#beta) and subject to change without notice.
-
This tutorial shows you how to:
- Create a development environment outside of GitLab.
diff --git a/doc/user/project/remote_development/index.md b/doc/user/project/remote_development/index.md
index ac8d7102e40..65445e54949 100644
--- a/doc/user/project/remote_development/index.md
+++ b/doc/user/project/remote_development/index.md
@@ -4,7 +4,7 @@ group: IDE
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Remote development **(FREE ALL BETA)**
+# Remote development **(FREE ALL)**
> - [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.
> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/371084) in GitLab 15.7.
@@ -13,9 +13,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w
FLAG:
On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable 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.
-WARNING:
-This feature is in [Beta](../../../policy/experiment-beta-support.md#beta) and subject to change without notice.
-
You can use remote development to write and compile code hosted on GitLab.
With remote development, you can:
diff --git a/doc/user/project/repository/branches/index.md b/doc/user/project/repository/branches/index.md
index 0a0cbcbb9c8..d6bcae57322 100644
--- a/doc/user/project/repository/branches/index.md
+++ b/doc/user/project/repository/branches/index.md
@@ -35,7 +35,7 @@ To create a new branch from the GitLab UI:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Code > Branches**.
-1. On the top right, select **New branch**.
+1. In the upper-right corner, select **New branch**.
1. Enter a **Branch name**.
1. In **Create from**, select the base of your branch: an existing branch, an existing
tag, or a commit SHA.
@@ -283,62 +283,64 @@ To do this:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Code > Branches**.
-1. On the upper right corner of the page, select **More** **{ellipsis_v}**.
+1. In the upper right corner of the page, select **More** **{ellipsis_v}**.
1. Select **Delete merged branches**.
1. In the dialog, enter the word `delete` to confirm, then select **Delete merged branches**.
-## Configure rules for target branches **(PREMIUM ALL)**
+## Configure workflows for target branches **(PREMIUM ALL)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127115) in GitLab 16.4 [with a flag](../../../../administration/feature_flags.md) named `target_branch_rules_flag`. Enabled by default.
> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136431) in GitLab 16.7.
Some projects use multiple long-term branches for development, like `develop` and `qa`.
In these projects, you might want to keep `main` as the default branch, but expect
-merge requests to target `develop` or `qa` instead. Target branch rules help ensure
+merge requests to target `develop` or `qa` instead. Target branch workflows help ensure
merge requests target the appropriate development branch for your project.
-When you create a merge request, the rule checks the name of the branch. If the
-branch name matches the rule, the merge request targets the branch you specify
-in the rule. If the branch name does not match, the merge request targets the
+When you create a merge request, the workflow checks the name of the branch. If the
+branch name matches the workflow, the merge request targets the branch you specify. If the branch name does not match, the merge request targets the
default branch of the project.
+Rules are processed on a "first-match" basis - if two rules match the same branch name, the top-most rule is applied.
+
Prerequisites:
- You must have at least the Maintainer role.
-To create a target branch rule:
+To create a target branch workflow:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > Merge requests**.
-1. Select **Add target branch rule**.
-1. For **Rule name**, provide a string or wild card to compare against branch names.
-1. Select the **Target branch** to use when the branch name matches the **Rule name**.
+1. Scroll down to **Merge request branch workflow**
+1. Select **Add branch target**.
+1. For **Branch name pattern**, provide a string or wild card to compare against branch names.
+1. Select the **Target branch** to use when the branch name matches the **Branch name pattern**.
1. Select **Save**.
### Example
-You could configure your project to have the following target branch rules:
+You could configure your project to have the following target branch workflows:
-| Rule name | Target branch |
+| Branch name pattern | Target branch |
|-------------|---------------|
| `feature/*` | `develop` |
| `bug/*` | `develop` |
| `release/*` | `main` |
-These rules simplify the process of creating merge requests for a project that:
+These target branches simplify the process of creating merge requests for a project that:
- Uses `main` to represent the deployed state of your application.
- Tracks current, unreleased development work in another long-running branch, like `develop`.
-If your workflow initially places new features in `develop` instead of `main`, these rules
+If your workflow initially places new features in `develop` instead of `main`, these target branches
ensure all branches matching either `feature/*` or `bug/*` do not target `main` by mistake.
-When you're ready to release to `main`, create a branch named `release/*`, and the rules
+When you're ready to release to `main`, create a branch named `release/*`, and
ensure this branch targets `main`.
-## Delete a target branch rule
+## Delete a target branch workflow
-When you remove a target branch rule, existing merge requests remain unchanged.
+When you remove a target branch workflow, existing merge requests remain unchanged.
Prerequisites:
@@ -348,7 +350,7 @@ To do this:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > Merge requests**.
-1. Select **Delete** on the rule you want to delete.
+1. Select **Delete** on the branch target you want to delete.
## Related topics
diff --git a/doc/user/project/repository/code_suggestions/index.md b/doc/user/project/repository/code_suggestions/index.md
index 9e52da6068c..ed9eeac1c2c 100644
--- a/doc/user/project/repository/code_suggestions/index.md
+++ b/doc/user/project/repository/code_suggestions/index.md
@@ -4,40 +4,45 @@ group: Code Creation
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Code Suggestions **(FREE ALL BETA)**
+# Code Suggestions **(FREE ALL)**
> - [Introduced support for Google Vertex AI Codey APIs](https://gitlab.com/groups/gitlab-org/-/epics/10562) in GitLab 16.1.
> - [Removed support for GitLab native model](https://gitlab.com/groups/gitlab-org/-/epics/10752) in GitLab 16.2.
> - [Introduced support for Code Generation](https://gitlab.com/gitlab-org/gitlab/-/issues/415583) in GitLab 16.3.
-
-WARNING:
-This feature is in [Beta](../../../../policy/experiment-beta-support.md#beta).
-Beta users should read about the [known limitations](#known-limitations). We look forward to hearing your [feedback](#feedback).
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/435271) in GitLab 16.7.
Write code more efficiently by using generative AI to suggest code while you're developing.
-With Code Suggestions, you get:
+With [GitLab Duo Code Suggestions](https://about.gitlab.com/solutions/code-suggestions/), you get:
-- Code Completion, which suggests completions the current line you are typing. These suggestions are usually low latency.
-- Code Generation, which generates code based on a natural language code comment block. Generating code can exceed multiple seconds.
+- Code Completion, which suggests completions to the current line you are typing. These suggestions are usually low latency.
+- Code Generation, which generates code based on a natural language code
+ comment block. Write a comment like `# Type more here` to generate the
+ appropriate code, based on the context of your comment and the rest of your code.
+ - Algorithms or large code blocks may take more than 10 seconds to generate.
+ - Streaming of code generation responses is supported in VS Code, leading to faster average response times. Other supported IDEs offer slower response times and will return the generated code in a single block.
## Start using Code Suggestions
GitLab Duo Code Suggestions are available:
-- On [self-managed](self_managed.md) and [SaaS](saas.md). View these pages to get started.
+- In the Premium and Ultimate tier for [self-managed](self_managed.md), and across all tiers for [SaaS](saas.md). View these pages to get started.
- In VS Code, Microsoft Visual Studio, JetBrains IDEs, and Neovim. You must have the corresponding GitLab extension installed.
- In the GitLab Web IDE.
<div class="video-fallback">
- <a href="https://youtu.be/wAYiy05fjF0">View how to setup and use GitLab Duo Code Suggestions</a>.
+ <a href="https://youtu.be/xQUlrbIWo8o">View how to setup and use GitLab Duo Code Suggestions</a>.
</div>
<figure class="video-container">
- <iframe src="https://www.youtube-nocookie.com/embed/wAYiy05fjF0" frameborder="0" allowfullscreen> </iframe>
+ <iframe src="https://www.youtube-nocookie.com/embed/xQUlrbIWo8o" frameborder="0" allowfullscreen> </iframe>
</figure>
-During Beta, usage of Code Suggestions is governed by the [GitLab Testing Agreement](https://about.gitlab.com/handbook/legal/testing-agreement/).
-Learn about [data usage when using Code Suggestions](#code-suggestions-data-usage). As Code Suggestions matures to General Availability it will be governed by our [AI Functionality Terms](https://about.gitlab.com/handbook/legal/ai-functionality-terms/).
+Code Suggestions is available and free to use until February 15, 2024:
+
+- Before February 15, 2024, usage of Code Suggestions is governed by the
+ [GitLab Testing Agreement](https://about.gitlab.com/handbook/legal/testing-agreement/).
+- On February 15, 2024, Code Suggestions becomes a paid add-on and will be governed by our
+ [AI Functionality Terms](https://about.gitlab.com/handbook/legal/ai-functionality-terms/).
## Supported languages
@@ -51,7 +56,11 @@ For languages not listed in the following table, Code Suggestions might not func
### Supported languages in IDEs
-Editor support for languages is documented in the following table.
+Code Suggestions is aware of common popular programming concepts and
+infrastructure-as-code interfaces, like Kubernetes Resource Model (KRM),
+Google Cloud CLI, and Terraform.
+
+The editor supports these languages:
| Language | VS Code | JetBrains IDEs | Visual Studio | Neovim |
|------------------|------------------------|------------------------|------------------------|--------|
@@ -61,16 +70,14 @@ Editor support for languages is documented in the following table.
| Google SQL | **{dotted-circle}** No | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| Java | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| JavaScript | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
-| Kotlin | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
+| Kotlin | **{check-circle}** Yes (Requires third-party extension providing Kotlin support) | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| PHP | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| Python | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| Ruby | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| Rust | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
-| Scala | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
+| Scala | **{check-circle}** Yes (Requires third-party extension providing Scala support) | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| Swift | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
| TypeScript | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes |
-| Google Cloud | **{dotted-circle}** No | **{dotted-circle}** No | **{dotted-circle}** No | **{dotted-circle}** No |
-| Kubernetes Resource Model (KRM) | **{dotted-circle}** No | **{dotted-circle}** No | **{dotted-circle}** No | **{dotted-circle}** No |
| Terraform | **{check-circle}** Yes (Requires third-party extension providing Terraform support) | **{check-circle}** Yes | **{dotted-circle}** No | **{check-circle}** Yes (Requires third-party extension providing the `terraform` file type) |
NOTE:
@@ -81,18 +88,13 @@ plugin support. Refer to the JetBrains documentation for specifics on your IDE.
Code Suggestions supports a variety of popular editors including:
-- VS Code, using [the VS Code GitLab Workflow extension](https://marketplace.visualstudio.com/items?itemName=GitLab.gitlab-workflow).
+- VS Code, using [the VS Code GitLab Workflow extension](https://marketplace.visualstudio.com/items?itemName=GitLab.gitlab-workflow). Supports streaming responses for code generation.
- [GitLab WebIDE (VS Code in the Cloud)](../../../project/web_ide/index.md), with no additional configuration.
- Microsoft Visual Studio, using the [Visual Studio GitLab extension](https://marketplace.visualstudio.com/items?itemName=GitLab.GitLabExtensionForVisualStudio).
- JetBrains IDEs, using the [GitLab plugin](https://plugins.jetbrains.com/plugin/22325-gitlab).
- Neovim, using the [`gitlab.vim` plugin](https://gitlab.com/gitlab-org/editor-extensions/gitlab.vim).
-A [GitLab Language Server for Code Suggestions](https://gitlab.com/gitlab-org/editor-extensions/gitlab-language-server-for-code-suggestions)
-is also in process.
-This improvement should result in:
-
-- Faster iteration and standardization of the IDE extensions.
-- The ability to use Code Suggestions even when an official editor extension isn't available.
+A [GitLab Language Server](https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp) is used in VS Code, Visual Studio, and Neovim. The Language Server supports faster iteration across more platforms. Users can also configure it to support Code Suggestions in IDEs where GitLab doesn't provide official support.
## Code Suggestions data usage
@@ -120,7 +122,7 @@ For self-managed instances that have enabled Code Suggestions and SaaS accounts,
### Inference window context
-Code Suggestions inferences against the currently opened file, the content before and after the cursor, the filename, and the extension type. For more information on possible future context expansion to improve the quality of suggestions, see [epic 11669](https://gitlab.com/groups/gitlab-org/-/epics/11669).
+Code Suggestions inferences against the currently opened file, the content before and after the cursor, the file name, and the extension type. For more information on possible future context expansion to improve the quality of suggestions, see [epic 11669](https://gitlab.com/groups/gitlab-org/-/epics/11669).
### Training data
@@ -133,14 +135,18 @@ For more information on GitLab Code Suggestions data [sub-processors](https://ab
## Known limitations
-While in Beta, we are working on improving the accuracy of overall generated content.
+We are continuing to work on the accuracy of overall generated content.
However, Code Suggestions may generate suggestions that are:
-- Low-quality
-- Incomplete
-- Produce failed pipelines
-- Insecure code
-- Offensive or insensitive
+- Irrelevant.
+- Incomplete.
+- Results in failed pipelines.
+- Potentially insecure.
+- Offensive or insensitive.
+
+When using Code Suggestions, [code review best practice](../../../../development/code_review.md) still applies.
+
+Let us know if you have [feedback](#feedback).
## Progressive enhancement
@@ -151,4 +157,11 @@ Code Suggestions do not prevent you from writing code in your IDE.
## Feedback
-Report issues in the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/405152).
+Let us know about your Code Suggestions experience in [issue 435783](https://gitlab.com/gitlab-org/gitlab/-/issues/435783).
+
+## Troubleshooting
+
+### Disable Code Suggestions
+
+Individual users can disable Code Suggestions by disabling the feature in their
+[installed IDE editor extension](index.md#supported-editor-extensions).
diff --git a/doc/user/project/repository/code_suggestions/repository_xray.md b/doc/user/project/repository/code_suggestions/repository_xray.md
new file mode 100644
index 00000000000..d851ee94e34
--- /dev/null
+++ b/doc/user/project/repository/code_suggestions/repository_xray.md
@@ -0,0 +1,60 @@
+---
+stage: Create
+group: Code Creation
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Repository X-Ray **(PREMIUM)**
+
+Repository X-Ray enhances GitLab Duo Code Suggestions by providing additional context to improve the accuracy and relevance of code recommendations.
+
+Repository X-Ray gives the code assistant more insight into the project's codebase and dependencies to generate better code suggestions. It does this by analyzing key project configuration files such as `Gemfile.lock`, `package.json`, and `go.mod` to build additional context.
+
+By understanding the frameworks, libraries and other dependencies in use, Repository X-Ray helps the code assistant tailor suggestions to match the coding patterns, styles and technologies used in the project. This results in code recommendations that integrate more seamlessly and follow best practices for that stack.
+
+## Supported languages and package managers
+
+| Language | Package Manager | Configuration File |
+| ---------- |-----------------| -------------------- |
+| Go | Go Modules | `go.mod` |
+| JavaScript | NPM, Yarn | `package.json` |
+| Ruby | RubyGems | `Gemfile.lock` |
+| Python | Poetry | `pyproject.toml` |
+| Python | Pip | `requirements.txt` |
+| Python | Conda | `environment.yml` |
+
+## Enable Repository X-Ray
+
+Prerequisites:
+
+- You must have access to [GitLab Duo Code Suggestions](index.md) in the project.
+- GitLab Runner must be set up and enabled for the project, because Repository X-Ray runs analysis pipelines using GitLab runners.
+
+To enable Repository X-Ray, add the following definition job to the project's `.gitlab-ci.yml`.
+
+```yaml
+xray:
+ stage: build
+ image: registry.gitlab.com/gitlab-org/code-creation/repository-x-ray:latest
+ allow_failure: true
+ rules:
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+ variables:
+ OUTPUT_DIR: reports
+ script:
+ - x-ray-scan -p "$CI_PROJECT_DIR" -o "$OUTPUT_DIR"
+ artifacts:
+ reports:
+ repository_xray: "$OUTPUT_DIR/*/*.json"
+```
+
+- The `$OUTPUT_DIR` environment variable defines the:
+ - Output directory for reports.
+ - Path that artifacts are uploaded from.
+- The added rules restrict the job to the default branch only. Restricting the job this way ensures development changes do not impact the baseline X-Ray data used for production code suggestions.
+
+After the initial x-ray job completes and uploads the repository analysis reports, no further action is required. Repository X-Ray automatically enriches all code generation requests from that point forward.
+
+The X-Ray data for your project updates each time a CI/CD pipeline containing the `xray`
+job is run. To learn more about pipeline configuration and triggers, see the
+[pipelines documentation](../../../../ci/pipelines/merge_request_pipelines.md).
diff --git a/doc/user/project/repository/code_suggestions/saas.md b/doc/user/project/repository/code_suggestions/saas.md
index 1af5eef585c..4b1cc762406 100644
--- a/doc/user/project/repository/code_suggestions/saas.md
+++ b/doc/user/project/repository/code_suggestions/saas.md
@@ -4,13 +4,14 @@ group: Code Creation
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Code Suggestions on GitLab SaaS **(FREE SAAS BETA)**
+# Code Suggestions on GitLab SaaS **(FREE SAAS)**
> - [Introduced](https://about.gitlab.com/releases/2023/02/22/gitlab-15-9-released/#code-suggestions-available-in-closed-beta) in GitLab 15.9 as [Beta](../../../../policy/experiment-beta-support.md#beta) for early access Ultimate customers on GitLab.com.
> - [Enabled](https://gitlab.com/gitlab-org/gitlab/-/issues/408104) as opt-in with GitLab 15.11 as [Beta](../../../../policy/experiment-beta-support.md#beta).
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/408158) from GitLab Ultimate to GitLab Premium in 16.0.
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/410801) from GitLab Premium to GitLab Free in 16.0.
> - [Enabled by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121079) in GitLab 16.1.
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/435271) in GitLab 16.7.
Write code more efficiently by using generative AI to suggest code while you're developing.
@@ -20,14 +21,14 @@ Learn about [data usage when using Code Suggestions](index.md#code-suggestions-d
## Enable Code Suggestions
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121079) in GitLab 16.1 as [Beta](../../../../policy/experiment-beta-support.md#beta).
-> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139916) in GitLab 16.8. Available to a percentage of users.
+> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139916) in GitLab 16.8. UI user setting removed.
A group owner must
[enable Code Suggestions for your top-level group](../../../group/manage.md#enable-code-suggestions-for-a-group).
NOTE:
If you are having issues enabling Code Suggestions, view the
-[troubleshooting guide](troubleshooting.md#code-suggestions-arent-displayed).
+[troubleshooting guide](troubleshooting.md#code-suggestions-are-not-displayed).
## Use Code Suggestions
@@ -35,19 +36,23 @@ Prerequisites:
- You must have configured Code Suggestions in a
[supported IDE editor extension](index.md#supported-editor-extensions).
-- Code Suggestions must be enabled for:
- - [The top-level group](../../../group/manage.md#enable-code-suggestions-for-a-group).
- - [Your own account](../../../profile/preferences.md#enable-code-suggestions), if your
- account is not part of the percentage rollout.
+- Code Suggestions must be enabled for [the top-level group](../../../group/manage.md#enable-code-suggestions-for-a-group).
To use Code Suggestions:
-1. Determine if your user account is part of the percentage rollout. See
- [Enable Code Suggestions](../../../profile/preferences.md#enable-code-suggestions)
- for more information.
1. Author your code. As you type, suggestions are displayed.
Code Suggestions provide code snippets or complete the current line, depending on the cursor position.
-1. Describe the requirements in natural language. Be concise and specific. Code Suggestions generates functions and code snippets as appropriate.
+1. Describe the requirements in natural language. Code Suggestions generates functions and code snippets based on the context provided. To get the best results from code generation:
+ - Be as specific as possible while remaining concise. State the outcome you want to generate (for example, a function) and provide details on what you want to achieve. Add additional information, such as the framework or library you want to use when applicable.
+ For example, to create a Python web service with some specific requirements, you might write something similar to the following:
+
+ ```plaintext
+ # Create a web service using Tornado that allows a user to log in, run a security scan, and review the scan results.
+ # Each action (log in, run a scan, and review results) should be its own resource in the web service
+ ...
+ ```
+
+ - Add a space or go to a new line after each comment. This tells the code generator that you have completed your instructions.
1. To accept a suggestion, press <kbd>Tab</kbd>.
1. To ignore a suggestion, keep typing as you usually would.
1. To explicitly reject a suggestion, press <kbd>Esc</kbd>.
diff --git a/doc/user/project/repository/code_suggestions/self_managed.md b/doc/user/project/repository/code_suggestions/self_managed.md
index 26850bc8b5f..8cd499c13d0 100644
--- a/doc/user/project/repository/code_suggestions/self_managed.md
+++ b/doc/user/project/repository/code_suggestions/self_managed.md
@@ -4,12 +4,13 @@ group: Code Creation
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Code Suggestions on self-managed GitLab **(SELF BETA)**
+# Code Suggestions on self-managed GitLab **(PREMIUM SELF)**
> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/10653) in GitLab 16.1 as [Beta](../../../../policy/experiment-beta-support.md#beta) on self-managed GitLab.
> - [Introduced support for Google Vertex AI Codey APIs](https://gitlab.com/groups/gitlab-org/-/epics/10562) in GitLab 16.1.
> - [Removed support for GitLab native model](https://gitlab.com/groups/gitlab-org/-/epics/10752) in GitLab 16.2.
> - Code Suggestions in the GitLab WebIDE enabled for all GitLab-hosted customers.
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/435271) in GitLab 16.7.
Write code more efficiently by using generative AI to suggest code while you're developing.
@@ -28,16 +29,19 @@ Learn about [data usage when using Code Suggestions](index.md#code-suggestions-d
## Enable Code Suggestions on self-managed GitLab
> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/10653) in GitLab 16.1 as [Beta](../../../../policy/experiment-beta-support.md#beta).
-> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139916) in GitLab 16.8. Available to a percentage of users.
+> - [Enabled self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139916) in GitLab 16.8.
When you enable Code Suggestions for your self-managed instance, you:
- Agree to the [GitLab testing agreement](https://about.gitlab.com/handbook/legal/testing-agreement/).
- Acknowledge that GitLab sends data from the instance, including personal data, to GitLab.com infrastructure.
-How you enable Code Suggestions for your instance differs depending on your version of GitLab.
+How you enable Code Suggestions for your instance differs depending on your
+version of GitLab. This setting is visible only in self-managed GitLab instances.
-### GitLab 16.3 and later **(PREMIUM)**
+::Tabs
+
+:::TabTitle GitLab 16.3 and later
Prerequisites:
@@ -53,17 +57,12 @@ To enable Code Suggestions for your self-managed GitLab instance:
In GitLab 16.3, you do not need to enter anything into the **Personal access token** field.
In GitLab 16.4 and later, there is no **Personal access token** field.
1. Select **Save changes**.
-
-This setting is visible only in self-managed GitLab instances.
-
-WARNING:
-In GitLab 16.2 and earlier, if you clear the **Turn on Code Suggestions for this instance** checkbox, the users in your instance can still use Code Suggestions for up to one hour, until the issued JSON web token (JWT) expires.
-
-To make sure Code Suggestions works immediately, you must [manually synchronize your subscription](#manually-synchronize-your-subscription).
+1. To make sure Code Suggestions works immediately, you must
+ [manually synchronize your subscription](#manually-synchronize-your-subscription).
The users in your instance can now use Code Suggestions.
-### GitLab 16.2 and earlier
+:::TabTitle GitLab 16.2 and earlier
FLAG:
On self-managed GitLab 16.0 and earlier, GitLab Duo Code Suggestions is not available. To use this feature, you must have GitLab 16.1 or later. For optimal performance and full feature access, you should upgrade to GitLab 16.3 or later, which supports cloud licensing.
@@ -75,7 +74,7 @@ Prerequisites:
- You have a [GitLab SaaS account](https://gitlab.com/users/sign_up). You do not need to have a GitLab SaaS subscription.
NOTE:
-If you do not have a customer success manager, you cannot participate in the free trial of Code Suggestions on self-managed GitLab. Upgrade to GitLab 16.3 to [perform self-service onboarding](#gitlab-163-and-later).
+If you do not have a customer success manager, you cannot participate in the free trial of Code Suggestions on self-managed GitLab. Upgrade to GitLab 16.3 or later to perform self-service onboarding.
Then, you will:
@@ -83,7 +82,7 @@ Then, you will:
1. Enable Code Suggestions for the instance.
1. [Request early access](#request-access-to-code-suggestions) to the Code Suggestions Beta.
-#### Enable Code Suggestions for your SaaS account
+### Enable Code Suggestions for your SaaS account
To enable Code Suggestions for your GitLab SaaS account:
@@ -94,7 +93,7 @@ To enable Code Suggestions for your GitLab SaaS account:
1. In the **Code Suggestions** section, select **Enable Code Suggestions**.
1. Select **Save changes**.
-#### Enable Code Suggestions for the instance
+### Enable Code Suggestions for the instance
To enable Code Suggestions for your self-managed GitLab instance:
@@ -110,7 +109,9 @@ This setting is visible only in self-managed GitLab instances.
WARNING:
If you clear the **Turn on Code Suggestions for this instance** checkbox, the users in your instance can still use Code Suggestions for up to one hour, until the issued JSON web token (JWT) expires.
-#### Request access to Code Suggestions
+::EndTabs
+
+### Request access to Code Suggestions
GitLab provisions access on a customer-by-customer basis for Code Suggestions
on self-managed instances. To request access, contact your customer success manager.
@@ -120,7 +121,7 @@ Your customer success manager then provisions access by commenting on [issue 415
After GitLab has provisioned access to Code Suggestions for your instance,
the users in your instance can now enable Code Suggestions.
-### Configure network and proxy settings
+## Configure network and proxy settings
Configure any firewalls to allow outbound connections to `https://codesuggestions.gitlab.com/`.
@@ -128,7 +129,7 @@ If your GitLab instance uses an HTTP proxy server to access the internet, ensure
the server is configured to allow outbound connections, including the
[`gitlab_workhorse` environment variable](https://docs.gitlab.com/omnibus/settings/environment-variables.html).
-### Upgrade GitLab
+## Upgrade GitLab
In GitLab 16.3 and later, GitLab is enforcing the cloud licensing requirement for Code Suggestions:
@@ -138,11 +139,11 @@ In GitLab 16.3 and later, GitLab is enforcing the cloud licensing requirement fo
If you have a GitLab Free subscription and upgrade to GitLab 16.3 or later,
to continue having early access to Code Suggestions, you must:
-1. Have a [subscription that supports cloud licensing](https://about.gitlab.com/pricing/).
+1. Have a [subscription that supports cloud licensing](https://about.gitlab.com/pricing/licensing-faq/cloud-licensing/).
1. Make sure you have the latest version of your [IDE extension](index.md#supported-editor-extensions).
1. [Manually synchronize your subscription](#manually-synchronize-your-subscription).
-#### Manually synchronize your subscription
+### Manually synchronize your subscription
You must [manually synchronize your subscription](../../../../subscriptions/self_managed/index.md#manually-synchronize-your-subscription-details) if either:
diff --git a/doc/user/project/repository/code_suggestions/troubleshooting.md b/doc/user/project/repository/code_suggestions/troubleshooting.md
index c18ea2dd26b..47327d7a28f 100644
--- a/doc/user/project/repository/code_suggestions/troubleshooting.md
+++ b/doc/user/project/repository/code_suggestions/troubleshooting.md
@@ -4,35 +4,34 @@ group: Code Creation
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Troubleshooting Code Suggestions **(FREE ALL BETA)**
+# Troubleshooting Code Suggestions **(FREE ALL)**
When working with GitLab Duo Code Suggestions, you might encounter the following issues.
-## Code Suggestions aren't displayed
+## Code Suggestions are not displayed
If Code Suggestions are not displayed, and you have [installed a supported IDE extension](index.md#supported-editor-extensions), try the following troubleshooting steps.
-In GitLab, ensure Code Suggestions is enabled:
-
-- [For your user account](../../../profile/preferences.md#enable-code-suggestions).
-- [For **all** top-level groups your account belongs to](../../../group/manage.md#enable-code-suggestions-for-a-group). If you don't have a role that lets you view the top-level group's settings, contact a group owner.
+In GitLab, ensure Code Suggestions is enabled for **at least one**
+[top-level group your account belongs to](../../../group/manage.md#enable-code-suggestions-for-a-group).
+If you don't have a role that lets you view the top-level group's settings, contact a group owner.
### Code Suggestions not displayed in VS Code or GitLab WebIDE
-Check all the steps in [Code Suggestions aren't displayed](#code-suggestions-arent-displayed) first.
+Check all the steps in [Code Suggestions are not displayed](#code-suggestions-are-not-displayed) first.
If you are a self-managed user, ensure that Code Suggestions for the [GitLab WebIDE](../../../project/web_ide/index.md) are enabled. The same settings apply to VS Code as local IDE.
1. On the left sidebar, select **Extensions > GitLab Workflow**.
1. Select **Settings** (**{settings}**), and then select **Extension Settings**.
-1. In **GitLab > AI Assisted Code Suggestions**, select the **Enable code completion (Beta)**
+1. In **GitLab > AI Assisted Code Suggestions**, select the **Enable code completion**
checkbox.
If the settings are enabled, but Code Suggestions are still not displayed, try the following steps:
1. Enable the `Debug` checkbox in the GitLab Workflow **Extension Settings**.
1. Open the extension log in **View > Output** and change the dropdown list to **GitLab Workflow** as the log filter. The command palette command is `GitLab: Show Extension Logs`.
-1. Disable and re-enable the **Enable code completion (Beta)** checkbox.
+1. Disable and re-enable the **Enable code completion** checkbox.
1. Verify that the debug log contains similar output:
```shell
@@ -43,7 +42,7 @@ If the settings are enabled, but Code Suggestions are still not displayed, try t
### Code Suggestions not displayed in Microsoft Visual Studio
-Check all the steps in [Code Suggestions aren't displayed](#code-suggestions-arent-displayed) first.
+Check all the steps in [Code Suggestions are not displayed](#code-suggestions-are-not-displayed) first.
1. Ensure you have properly [set up the extension](https://gitlab.com/gitlab-org/editor-extensions/gitlab-visual-studio-extension#setup).
1. From the **Tools > Options** menu, find the **GitLab** option. Ensure **Log Level** is set to **Debug**.
diff --git a/doc/user/project/repository/git_blame.md b/doc/user/project/repository/git_blame.md
index a602638d244..f1fb118b8d5 100644
--- a/doc/user/project/repository/git_blame.md
+++ b/doc/user/project/repository/git_blame.md
@@ -34,6 +34,28 @@ to the left of the user avatar shows the general age of the commit. The newest
commits have a dark blue bar. As the age of the commit increases, the bar color
changes to light gray.
+### View blame directly in the file view
+<!--
+When feature flags `graphql_git_blame`, `blob_blame_info` and `highlight_js_worker` are removed,
+delete this section and update the steps in "View blame for a file".
+-->
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/430950) in GitLab 16.7 [with flags](../../../administration/feature_flags.md) named `graphql_git_blame`, `blob_blame_info` and `highlight_js_worker`. Enabled by default.
+
+FLAG:
+On self-managed GitLab, by default this feature is available.
+To hide the feature, an administrator can [disable the feature flag](../../../administration/feature_flags.md) named `blob_blame_info`.
+On GitLab.com, this feature is available.
+
+When this feature is enabled, you can additionally view blame for a file directly from the file page.
+
+To do so:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Code > Repository**.
+1. Select the file you want to review.
+1. In the file header, select **Blame**, and go to the line you want to see.
+
### Blame previous commit
To see earlier revisions of a specific line:
diff --git a/doc/user/project/repository/gpg_signed_commits/index.md b/doc/user/project/repository/gpg_signed_commits/index.md
deleted file mode 100644
index 592041ef4e2..00000000000
--- a/doc/user/project/repository/gpg_signed_commits/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../signed_commits/gpg.md'
-remove_date: '2023-12-01'
----
-
-This document was moved to [another location](../signed_commits/gpg.md).
-
-<!-- This redirect file can be deleted after <2023-12-01>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md
index dd8ee61f6ae..550ff25e0b1 100644
--- a/doc/user/project/repository/index.md
+++ b/doc/user/project/repository/index.md
@@ -39,7 +39,7 @@ You can upload a file from the GitLab UI.
1. Go to the directory where you want to upload the file.
1. Next to the directory name, select the plus icon (**{plus}**) > **Upload file**.
1. Complete the fields.
- - To create a merge request with your changes, enter a branch name
+ To create a merge request with your changes, enter a branch name
that's not your repository's [default branch](branches/default.md).
1. Select **Upload file**.
@@ -85,7 +85,7 @@ Projects that contain a `.xcodeproj` or `.xcworkspace` directory can be cloned
into Xcode on macOS.
1. From the GitLab UI, go to the project's overview page.
-1. Select **Clone**.
+1. In the upper-right corner, select **Code**.
1. Select **Xcode**.
The project is cloned onto your computer and you are
@@ -101,7 +101,7 @@ Visual Studio Code:
- From the GitLab interface:
1. Go to the project's overview page.
- 1. Select **Clone**.
+ 1. In the upper-right corner, select **Code**.
1. Under **Open in your IDE**, select **Visual Studio Code (SSH)** or **Visual Studio Code (HTTPS)**.
1. Select a folder to clone the project into.
@@ -121,16 +121,15 @@ Prerequisites:
To do this:
1. Go to the project's overview page.
-1. Select **Clone**.
+1. In the upper-right corner, select **Code**.
1. Under **Open in your IDE**, select **IntelliJ IDEA (SSH)** or **IntelliJ IDEA (HTTPS)**.
## Download the code in a repository
-> Support for [including Git LFS blobs](../../../topics/git/lfs#lfs-objects-in-project-archives) was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/15079) in GitLab 13.5.
-
You can download the source code that's stored in a repository.
-1. Above the file list, select the download icon (**{download}**).
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Above the file list, select **Code**.
1. From the options, select the files you want to download.
- **Source code:**
diff --git a/doc/user/project/repository/managing_large_repositories.md b/doc/user/project/repository/managing_large_repositories.md
deleted file mode 100644
index 1fedd8da20c..00000000000
--- a/doc/user/project/repository/managing_large_repositories.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: 'monorepos/index.md'
-remove_date: '2023-12-17'
----
-
-This document was moved to [another location](monorepos/index.md).
-
-<!-- This redirect file can be deleted after <2023-12-17>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/project/repository/mirror/bidirectional.md b/doc/user/project/repository/mirror/bidirectional.md
index d4ab550cb8a..dc789d28a4f 100644
--- a/doc/user/project/repository/mirror/bidirectional.md
+++ b/doc/user/project/repository/mirror/bidirectional.md
@@ -39,7 +39,7 @@ instance can help reduce race conditions by syncing changes more frequently.
Prerequisites:
- You have configured the [push](push.md#set-up-a-push-mirror-to-another-gitlab-instance-with-2fa-activated)
-and [pull](pull.md#pull-from-a-remote-repository) mirrors in the upstream GitLab instance.
+ and [pull](pull.md#pull-from-a-remote-repository) mirrors in the upstream GitLab instance.
To create the webhook in the downstream instance:
diff --git a/doc/user/project/repository/mirror/index.md b/doc/user/project/repository/mirror/index.md
index 34a2757bb67..9d5048a4fed 100644
--- a/doc/user/project/repository/mirror/index.md
+++ b/doc/user/project/repository/mirror/index.md
@@ -208,4 +208,4 @@ Older versions of SSH may require you to remove `-E md5` from the command.
- [Troubleshooting](troubleshooting.md) for repository mirroring.
- Configure a [Pull Mirroring Interval](../../../../administration/instance_limits.md#pull-mirroring-interval)
- [Disable mirrors for a project](../../../../administration/settings/visibility_and_access_controls.md#enable-project-mirroring)
-- [Secrets file and mirroring](../../../../administration/backup_restore/backup_gitlab.md#when-the-secrets-file-is-lost)
+- [Secrets file and mirroring](../../../../administration/backup_restore/troubleshooting_backup_gitlab.md#when-the-secrets-file-is-lost)
diff --git a/doc/user/project/repository/mirror/push.md b/doc/user/project/repository/mirror/push.md
index 3aa4c768ebe..babe99441ef 100644
--- a/doc/user/project/repository/mirror/push.md
+++ b/doc/user/project/repository/mirror/push.md
@@ -161,7 +161,7 @@ To set up a mirror from GitLab to AWS CodeCommit:
1. Copy or download the special Git HTTPS user ID and password.
1. In the AWS CodeCommit console, create a new repository to mirror from your GitLab repository.
-1. Open your new repository, and then select **Clone URL > Clone HTTPS** (not **Clone HTTPS (GRC)**).
+1. Open your new repository, in the upper-right corner, select **Code > Clone HTTPS** (not **Clone HTTPS (GRC)**).
1. In GitLab, open the repository to be push-mirrored.
1. Select **Settings > Repository**, and then expand **Mirroring repositories**.
1. Fill in the **Git repository URL** field using this format, replacing
diff --git a/doc/user/project/repository/mirror/troubleshooting.md b/doc/user/project/repository/mirror/troubleshooting.md
index 57a9351e85d..f252c047072 100644
--- a/doc/user/project/repository/mirror/troubleshooting.md
+++ b/doc/user/project/repository/mirror/troubleshooting.md
@@ -215,3 +215,13 @@ Project.where(mirror: true).each do |project|
project.save
end
```
+
+## `The requested URL returned error: 301`
+
+When mirroring using the `http://` or `https://` protocols, be sure to specify the exact URL to the repository: `https://gitlab.example.com/group/project.git`
+
+HTTP redirects are not followed and omitting `.git` can result in a 301 error:
+
+```plaintext
+13:fetch remote: "fatal: unable to access 'https://gitlab.com/group/project': The requested URL returned error: 301\n": exit status 128.
+```
diff --git a/doc/user/project/repository/push_rules.md b/doc/user/project/repository/push_rules.md
index fc36748a8dd..b15d66e27fb 100644
--- a/doc/user/project/repository/push_rules.md
+++ b/doc/user/project/repository/push_rules.md
@@ -118,20 +118,20 @@ Some validation examples:
- Branches must start with `JIRA-`.
```plaintext
- `^JIRA-`
+ ^JIRA-
```
- Branches must end with `-JIRA`.
```plaintext
- `-JIRA$`
+ -JIRA$
```
- Branches must be between `4` and `15` characters long,
accepting only lowercase letters, numbers and dashes.
```plaintext
- `^[a-z0-9\\-]{4,15}$`
+ ^[a-z0-9\\-]{4,15}$
```
## Prevent unintended consequences
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 a060973d89f..528e9eefa44 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
@@ -190,7 +190,7 @@ no longer being available.
To clean up a repository:
-1. Go to the project for the repository.
+1. On the left sidebar, select **Search or go to** and find your project.
1. Go to **Settings > Repository**.
1. Upload a list of objects. For example, a `commit-map` file created by `git filter-repo` which is located in the
`filter-repo` directory.
diff --git a/doc/user/project/repository/signed_commits/ssh.md b/doc/user/project/repository/signed_commits/ssh.md
index e1c2a73be3e..1d3fca6d681 100644
--- a/doc/user/project/repository/signed_commits/ssh.md
+++ b/doc/user/project/repository/signed_commits/ssh.md
@@ -156,7 +156,7 @@ To revoke an SSH key:
1. On the left sidebar, select your avatar.
1. Select **Edit profile**.
-1. On the left sidebar, select (**{key}**) **SSH Keys**.
+1. On the left sidebar, select **SSH Keys** (**{key}**).
1. Select **Revoke** next to the SSH key you want to delete.
## Related topics
diff --git a/doc/user/project/repository/ssh_signed_commits/index.md b/doc/user/project/repository/ssh_signed_commits/index.md
deleted file mode 100644
index 89e3d811dba..00000000000
--- a/doc/user/project/repository/ssh_signed_commits/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../signed_commits/ssh.md'
-remove_date: '2023-12-01'
----
-
-This document was moved to [another location](../signed_commits/ssh.md).
-
-<!-- This redirect file can be deleted after <2023-12-01>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/project/repository/web_editor.md b/doc/user/project/repository/web_editor.md
index 3899890ea7e..d2df9cc18ae 100644
--- a/doc/user/project/repository/web_editor.md
+++ b/doc/user/project/repository/web_editor.md
@@ -20,7 +20,7 @@ To create a text file in the Web Editor:
1. Go to the directory where you want to create the new file.
1. Next to the directory name, select the plus icon (**{plus}**) > **New file**.
1. Complete the fields.
- - To create a merge request with your changes, enter a branch name
+ To create a merge request with your changes, enter a branch name
that's not your repository's [default branch](branches/default.md).
1. Select **Commit changes**.
@@ -31,14 +31,14 @@ To create a text file from a template in the Web Editor:
1. On the left sidebar, select **Search or go to** and find your project.
1. Go to the directory where you want to create the new file.
1. Next to the directory name, select the plus icon (**{plus}**) > **New file**.
-1. In **Filename**, enter a filename that GitLab provides a template for:
+1. In **Filename**, enter a name that GitLab provides a template for:
- `.gitignore`
- `.gitlab-ci.yml`
- `LICENSE`
- `Dockerfile`
1. From the **Apply a template** dropdown list, select a template.
1. Complete the fields.
- - To create a merge request with your changes, enter a branch name
+ To create a merge request with your changes, enter a branch name
that's not your repository's [default branch](branches/default.md).
1. Select **Commit changes**.
@@ -50,7 +50,7 @@ To edit a text file in the Web Editor:
1. Go to the file you want to edit.
1. Select **Edit > Edit single file**.
1. Complete the fields.
- - To create a merge request with your changes, enter a branch name
+ To create a merge request with your changes, enter a branch name
that's not your repository's [default branch](branches/default.md).
1. Select **Commit changes**.
@@ -72,7 +72,7 @@ To close the preview panel, select the **Write** tab.
### Link to specific lines
To link to single or multiple lines in the Web Editor, add hash
-information to the filename segment of the URL. For example:
+information to the file name segment of the URL. For example:
- `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`.
@@ -90,7 +90,7 @@ To upload a file in the Web Editor:
1. Go to the directory where you want to upload the file.
1. Next to the directory name, select the plus icon (**{plus}**) > **Upload file**.
1. Complete the fields.
- - To create a merge request with your changes, enter a branch name
+ To create a merge request with your changes, enter a branch name
that's not your repository's [default branch](branches/default.md).
1. Select **Upload file**.
@@ -102,7 +102,7 @@ To create a directory in the Web Editor:
1. Go to the directory where you want to create the new directory.
1. Next to the directory name, select the plus icon (**{plus}**) > **New directory**.
1. Complete the fields.
- - To create a merge request with your changes, enter a branch name
+ To create a merge request with your changes, enter a branch name
that's not your repository's [default branch](branches/default.md).
1. Select **Create directory**.
diff --git a/doc/user/project/repository/x509_signed_commits/index.md b/doc/user/project/repository/x509_signed_commits/index.md
deleted file mode 100644
index ae418581820..00000000000
--- a/doc/user/project/repository/x509_signed_commits/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../signed_commits/x509.md'
-remove_date: '2023-12-01'
----
-
-This document was moved to [another location](../signed_commits/x509.md).
-
-<!-- This redirect file can be deleted after <2023-12-01>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/project/requirements/index.md b/doc/user/project/requirements/index.md
index 0594f3fe2ee..e489f19585c 100644
--- a/doc/user/project/requirements/index.md
+++ b/doc/user/project/requirements/index.md
@@ -50,7 +50,7 @@ To create a requirement:
1. In a project, go to **Plan > Requirements**.
1. Select **New requirement**.
-1. Enter a title and description and select **Create requirement**.
+1. Enter a title and description and select **New requirement**.
![requirement create view](img/requirement_create_v13_5.png)
@@ -240,7 +240,8 @@ To import requirements:
1. In a project, go to **Plan > Requirements**.
- For a project with requirements, in the
- upper-right corner, select the import icon (**{import}**).
+ upper-right corner, select the vertical ellipsis (**{ellipsis_v}**),
+ then select **Import requirements** (**{import}**).
- For a project without requirements, in the middle of the page, select **Import CSV**.
1. Select the file and select **Import requirements**.
@@ -300,7 +301,8 @@ Prerequisites:
To export requirements:
1. In a project, go to **Plan > Requirements**.
-1. In the upper-right corner, select **Export as CSV** (**{export}**).
+1. In the upper-right corner, select the vertical ellipsis (**{ellipsis_v}**),
+ then select **Export as CSV** (**{export}**).
A confirmation modal appears.
diff --git a/doc/user/project/service_desk/configure.md b/doc/user/project/service_desk/configure.md
index 91dbe7a38dd..95c15ef42b7 100644
--- a/doc/user/project/service_desk/configure.md
+++ b/doc/user/project/service_desk/configure.md
@@ -63,14 +63,14 @@ For example, you can format the emails to include a header and footer in accorda
organization's brand guidelines. You can also include the following placeholders to display dynamic
content specific to the Service Desk ticket or your GitLab instance.
-| Placeholder | `thank_you.md` | `new_note.md` | Description
-| ---------------------- | ---------------------- | ---------------------- | -----------
-| `%{ISSUE_ID}` | **{check-circle}** Yes | **{check-circle}** Yes | Ticket IID.
-| `%{ISSUE_PATH}` | **{check-circle}** Yes | **{check-circle}** Yes | Project path appended with the ticket IID.
-| `%{ISSUE_URL}` | **{check-circle}** Yes | **{check-circle}** Yes | URL of the ticket. External participants can only view the ticket if the project is public and ticket is not confidential (Service Desk tickets are confidential by default).
-| `%{ISSUE_DESCRIPTION}` | **{check-circle}** Yes | **{check-circle}** Yes | Ticket description. If a user has edited the description, it may contain sensitive information that is not intended to be delivered to external participants. Use this placeholder with care and ideally only if you never modify descriptions or your team is aware of the template design.
-| `%{UNSUBSCRIBE_URL}` | **{check-circle}** Yes | **{check-circle}** Yes | Unsubscribe URL.
-| `%{NOTE_TEXT}` | **{dotted-circle}** No | **{check-circle}** Yes | The new comment added to the ticket by a user. Take care to include this placeholder in `new_note.md`. Otherwise, the requesters may never see the updates on their Service Desk ticket.
+| Placeholder | `thank_you.md` | `new_note.md` | Description |
+|------------------------|------------------------|------------------------|-------------|
+| `%{ISSUE_ID}` | **{check-circle}** Yes | **{check-circle}** Yes | Ticket IID. |
+| `%{ISSUE_PATH}` | **{check-circle}** Yes | **{check-circle}** Yes | Project path appended with the ticket IID. |
+| `%{ISSUE_URL}` | **{check-circle}** Yes | **{check-circle}** Yes | URL of the ticket. External participants can only view the ticket if the project is public and ticket is not confidential (Service Desk tickets are confidential by default). |
+| `%{ISSUE_DESCRIPTION}` | **{check-circle}** Yes | **{check-circle}** Yes | Ticket description. If a user has edited the description, it may contain sensitive information that is not intended to be delivered to external participants. Use this placeholder with care and ideally only if you never modify descriptions or your team is aware of the template design. |
+| `%{UNSUBSCRIBE_URL}` | **{check-circle}** Yes | **{check-circle}** Yes | Unsubscribe URL. |
+| `%{NOTE_TEXT}` | **{dotted-circle}** No | **{check-circle}** Yes | The new comment added to the ticket by a user. Take care to include this placeholder in `new_note.md`. Otherwise, the requesters may never see the updates on their Service Desk ticket. |
### Thank you email
@@ -105,7 +105,7 @@ Instance administrators can add a header, footer or additional text to the GitLa
them to all emails sent from GitLab. If you're using a custom `thank_you.md` or `new_note.md`, to include
this content, add `%{SYSTEM_HEADER}`, `%{SYSTEM_FOOTER}`, or `%{ADDITIONAL_TEXT}` to your templates.
-For more information, see [System header and footer messages](../../../administration/appearance.md#system-header-and-footer-messages) and [custom additional text](../../../administration/settings/email.md#custom-additional-text).
+For more information, see [System header and footer messages](../../../administration/appearance.md#add-system-header-and-footer-messages) and [custom additional text](../../../administration/settings/email.md#custom-additional-text).
## Use a custom template for Service Desk tickets
@@ -165,6 +165,7 @@ the assignees of the issue and creates to-do items for them.
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
For a walkthrough, see [a short showcase video](https://youtu.be/163wDM1e43o).
+<!-- Video published on 2023-12-12 -->
Prerequisites:
@@ -191,6 +192,7 @@ Maintain brand identity and instill confidence among support requesters with a d
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
For an overview, see [a short showcase video](https://youtu.be/_moD5U3xcQs).
+<!-- Video published on 2023-09-12 -->
This feature is in [Beta](../../../policy/experiment-beta-support.md#beta).
A Beta feature is not production-ready, but is unlikely to change drastically
@@ -225,12 +227,12 @@ Configure and verify a custom email address when you want to send Service Desk e
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > General**.
-1. Expand **Service Desk** and find the **Custom email** settings.
+1. Expand **Service Desk** and find the **Configure a custom email address** section.
1. Note the presented Service Desk address of this project, and with your email provider
(for example, Gmail), set up email forwarding from the custom email address to the
Service Desk address.
1. Back in GitLab, complete the fields.
-1. Select **Save & test settings**.
+1. Select **Save & test connection**.
The configuration has been saved and the verification of the custom email address is triggered.
@@ -945,7 +947,7 @@ or completely separately.
::EndTabs
1. GitLab offers two methods to transport emails from `mail_room` to the GitLab
-application. You can configure the `delivery_method` for each email setting individually:
+ application. You can configure the `delivery_method` for each email setting individually:
1. Recommended: `webhook` (default in GitLab 15.3 and later) sends the email payload via an API POST request to your GitLab
application. It uses a shared token to authenticate. If you choose this method,
make sure the `mail_room` process can access the API endpoint and distribute the shared
diff --git a/doc/user/project/service_desk/index.md b/doc/user/project/service_desk/index.md
index 9ab69c4bdb8..6a15b9798f7 100644
--- a/doc/user/project/service_desk/index.md
+++ b/doc/user/project/service_desk/index.md
@@ -14,6 +14,10 @@ Service Desk emails are created in your GitLab project as new issues.
Your team can respond directly from the project, while customers interact with the thread only
through email.
+<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
+For a video overview, see [Introducing GitLab Service Desk (GitLab 16.7)](https://www.youtube.com/watch?v=LDVQXv3I5rI).
+<!-- Video published on 2023-12-19 -->
+
## Service Desk workflow
For example, let's assume you develop a game for iOS or Android.
diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md
index fc9b24362e0..f2faa0676b5 100644
--- a/doc/user/project/settings/import_export.md
+++ b/doc/user/project/settings/import_export.md
@@ -4,27 +4,31 @@ group: Import and Integrate
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments"
---
-# Migrating projects using file exports **(FREE ALL)**
+# Migrate projects and groups by using file exports **(FREE ALL)**
+
+You can migrate projects and groups by using file exports. However, using
+[direct transfer](../../group/import/index.md) is recommended if possible.
+
+## Migrate projects by uploading an export file
Existing projects on any self-managed GitLab instance or GitLab.com can be exported to a file and
-then imported into another GitLab instance. You can also copy GitLab projects to another location with more automation by
-[migrating groups by direct transfer](../../group/import/index.md#migrate-groups-by-direct-transfer-recommended).
+then imported into another GitLab instance.
-## Preserving user contributions
+### Preserving user contributions
Preserving user contribution depends on meeting the following requirements:
-### Migrating from GitLab self-managed to GitLab.com
+#### Migrating from GitLab self-managed to GitLab.com
When migrating projects by using file exports, an administrator's access token is required for user contributions to map correctly.
Therefore, user contributions never map correctly when importing file exports from a self-managed instance to GitLab.com. Instead, all GitLab user associations (such as
comment author) are changed to the user importing the project. To preserve contribution history, do one of the following:
-- [Migrate by direct transfer](../../group/import/index.md#migrate-groups-by-direct-transfer-recommended).
+- [Migrate by direct transfer](../../group/import/index.md).
- Consider paid GitLab [migration services](https://about.gitlab.com/services/migration/).
-### Migrating to GitLab self-managed
+#### Migrating to GitLab self-managed
To ensure GitLab maps users and their contributions correctly:
@@ -43,7 +47,7 @@ That user becomes an author of merge requests created by other users. Supplement
- Added for comments, merge request approvals, linked tasks, and items.
- Not added for the merge request or issue creator, added or removed labels, and merged-by information.
-## Edit project export files
+### Edit project export files
You can add or remove data from export files. For example, you can:
@@ -58,7 +62,7 @@ To edit a project export file:
You can also make sure that all members were exported by checking the `project_members.ndjson` file.
-## Compatibility
+### Compatibility
> Support for JSON-formatted project file exports [removed](https://gitlab.com/gitlab-org/gitlab/-/issues/389888) in GitLab 15.11.
@@ -75,7 +79,7 @@ For example:
| 13.0 | 13.0, 12.10, 12.9 |
| 13.1 | 13.1, 13.0, 12.10 |
-## Configure file exports as an import source **(FREE SELF)**
+### Configure file exports as an import source **(FREE SELF)**
Before you can migrate projects on a self-managed GitLab instance using file exports, GitLab administrators must:
@@ -92,7 +96,7 @@ To enable file exports as an import source for the destination instance:
1. Scroll to **Import sources**.
1. Select the **GitLab export** checkbox.
-## Between CE and EE
+### Between CE and EE
You can export projects from the [Community Edition to the Enterprise Edition](https://about.gitlab.com/install/ce-or-ee/)
and vice versa, assuming [compatibility](#compatibility) is met.
@@ -101,7 +105,7 @@ If you're exporting a project from the Enterprise Edition to the Community Editi
data that is retained only in the Enterprise Edition. For more information, see
[downgrading from EE to CE](../../../index.md).
-## Export a project and its data
+### Export a project and its data
Before you can import a project, you must export it.
@@ -124,7 +128,7 @@ To export a project and its data, follow these steps:
The export is generated in your configured `shared_path`, a temporary shared directory, and then
moved to your configured `uploads_directory`. Every 24 hours, a worker deletes these export files.
-### Items that are exported
+#### Items that are exported
Exported project items depend on the version of GitLab you use. To determine if a
specific project item is exported:
@@ -166,7 +170,7 @@ For a quick overview, items that are exported include:
- Project and inherited group members, as long as the user has the Maintainer role in the
exported project's group or is an administrator
-### Items that are not exported
+#### Items that are not exported
Items that are **not** exported include:
@@ -189,7 +193,7 @@ Items that are **not** exported include:
Migrating projects with file exports uses the same export and import mechanisms as creating projects from templates at the [group](../../group/custom_project_templates.md) and
[instance](../../../administration/custom_project_templates.md) levels. Therefore, the list of exported items is the same.
-## Import a project and its data
+### Import a project and its data
> Default maximum import file size [changed](https://gitlab.com/gitlab-org/gitlab/-/issues/251106) from 50 MB to unlimited in GitLab 13.8. Administrators of self-managed instances can [set maximum import file size](#set-maximum-import-file-size). On GitLab.com, the value is [set to 5 GB](../../gitlab_com/index.md#account-and-limit-settings).
@@ -199,7 +203,7 @@ WARNING:
Only import projects from sources you trust. If you import a project from an untrusted source, it
may be possible for an attacker to steal your sensitive data.
-### Prerequisites
+#### Prerequisites
> Requirement for Maintainer role instead of Developer role introduced in GitLab 16.0 and backported to GitLab 15.11.1 and GitLab 15.10.5.
@@ -209,7 +213,7 @@ may be possible for an attacker to steal your sensitive data.
- Review [compatibility](#compatibility) for any issues.
- At least the Maintainer role on the destination group to migrate to.
-### Import a project
+#### Import a project
To import a project:
@@ -222,7 +226,7 @@ To import a project:
To get the status of an import, you can query it through the [API](../../../api/project_import_export.md#import-status).
As described in the API documentation, the query may return an import error or exceptions.
-### Changes to imported items
+#### Changes to imported items
Exported items are imported with the following changes:
@@ -235,11 +239,11 @@ Exported items are imported with the following changes:
Deploy keys aren't imported. To use deploy keys, you must enable them in your imported project and update protected branches.
-### Import large projects **(FREE SELF)**
+#### Import large projects **(FREE SELF)**
If you have a larger project, consider [using a Rake task](../../../administration/raketasks/project_import_export.md#import-large-projects).
-## Set maximum import file size **(FREE SELF)**
+### Set maximum import file size **(FREE SELF)**
Administrators can set the maximum import file size one of two ways:
@@ -248,7 +252,7 @@ Administrators can set the maximum import file size one of two ways:
The default is `0` (unlimited).
-## Rate limits
+### Rate limits
To help avoid abuse, by default, users are rate limited to:
@@ -258,11 +262,161 @@ To help avoid abuse, by default, users are rate limited to:
| Download export | 1 download per group per minute |
| Import | 6 projects per minute |
+## Migrate groups by uploading an export file (deprecated)
+
+> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/2888) in GitLab 13.0 as an experimental feature. May change in future releases.
+> - [Deprecated](https://gitlab.com/groups/gitlab-org/-/epics/4619) in GitLab 14.6.
+
+WARNING:
+This feature was [deprecated](https://gitlab.com/groups/gitlab-org/-/epics/4619) in GitLab 14.6 and replaced by
+[migrating groups by direct transfer](../../group/import/index.md). However, this feature is still recommended for migrating groups between
+offline systems. To follow progress on an alternative solution for [offline environments](../../application_security/offline_deployments/index.md), see
+[the relevant epic](https://gitlab.com/groups/gitlab-org/-/epics/8985).
+
+Prerequisites:
+
+- Owner role on the group to migrate.
+
+Using file exports, you can:
+
+- Export any group to a file and upload that file to another GitLab instance or to another location on the same instance.
+- Use either the GitLab UI or the [API](../../../api/group_import_export.md).
+- Migrate groups one by one, then export and import each project for the groups one by one.
+
+GitLab maps user contributions correctly when an admin access token is used to perform the import. GitLab does not map
+user contributions correctly when you are importing from a self-managed instance to GitLab.com. Correct mapping of user
+contributions when importing from a self-managed instance to GitLab.com can be preserved with paid involvement of
+Professional Services team.
+
+Note the following:
+
+- Exports are stored in a temporary directory and are deleted every 24 hours by a specific worker.
+- To preserve group-level relationships from imported projects, export and import groups first so that projects can
+ be imported into the desired group structure.
+- Imported groups are given a `private` visibility level, unless imported into a parent group.
+- If imported into a parent group, a subgroup inherits the same level of visibility unless otherwise restricted.
+- You can export groups from the [Community Edition to the Enterprise Edition](https://about.gitlab.com/install/ce-or-ee/)
+ and vice versa. The Enterprise Edition retains some group data that isn't part of the Community Edition. If you're
+ exporting a group from the Enterprise Edition to the Community Edition, you may lose this data. For more information,
+ see [downgrading from EE to CE](../../../index.md).
+
+### Compatibility
+
+> Support for JSON-formatted project file exports [removed](https://gitlab.com/gitlab-org/gitlab/-/issues/383682) in GitLab 15.8.
+
+Group file exports are in NDJSON format.
+
+You can import group file exports that were exported from a version of GitLab up to two
+[minor](../../../policy/maintenance.md#versioning) versions behind, which is similar to our process for
+[security releases](../../../policy/maintenance.md#security-releases).
+
+For example:
+
+| Destination version | Compatible source versions |
+|:--------------------|:---------------------------|
+| 13.0 | 13.0, 12.10, 12.9 |
+| 13.1 | 13.1, 13.0, 12.10 |
+
+### Exported contents
+
+The [`import_export.yml`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/import_export/group/import_export.yml)
+file for groups lists items exported and imported when migrating groups using file exports. View this file in the branch
+for your version of GitLab to check which items can be imported to the destination GitLab instance. For example,
+[`import_export.yml` on the `14-10-stable-ee` branch](https://gitlab.com/gitlab-org/gitlab/-/blob/14-10-stable-ee/lib/gitlab/import_export/group/import_export.yml).
+
+Group items that are exported include:
+
+- Milestones
+- Group Labels (_without_ associated label priorities)
+- Boards and Board Lists
+- Badges
+- Subgroups (including all the aforementioned data)
+- Epics
+ - Epic resource state events ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/291983) in GitLab 15.4)
+- Events
+- [Wikis](../../project/wiki/group.md)
+ ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/53247) in GitLab 13.9)
+- Iterations cadences ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95372) in 15.4)
+
+Items that are **not** exported include:
+
+- Projects
+- Runner tokens
+- SAML discovery tokens
+
+### Preparation
+
+- To preserve the member list and their respective permissions on imported groups, review the users in these groups. Make
+ sure these users exist before importing the desired groups.
+- Users must set a public email in the source GitLab instance that matches their confirmed primary email in the destination GitLab instance. Most users receive an email asking them to confirm their email address.
+
+### Enable export for a group
+
+Prerequisites:
+
+- You must have the Owner role for the group.
+
+To enable import and export for a group:
+
+1. On the left sidebar, at the bottom, select **Admin Area**.
+1. Select **Settings > General**.
+1. Expand **Visibility and access controls**.
+1. In the **Import sources** section, select the checkboxes for the sources you want.
+
+### Export a group
+
+Prerequisites:
+
+- You must have the Owner role for the group.
+
+To export the contents of a group:
+
+1. On the left sidebar, select **Search or go to** and find your group.
+1. Select **Settings > General**.
+1. In the **Advanced** section, select **Export group**.
+1. After the export is generated, you should receive an email with a link to the [exported contents](#exported-contents)
+ in a compressed tar archive, with contents in NDJSON format.
+1. Alternatively, you can download the export from the UI:
+
+ 1. Return to your group's **Settings > General** page.
+ 1. In the **Advanced** section, select **Download export**.
+ You can also generate a new file by selecting **Regenerate export**.
+
+You can also export a group [using the API](../../../api/group_import_export.md).
+
+### Import the group
+
+1. On the left sidebar, at the top, select **Create new** (**{plus}**) and **New subgroup**.
+1. Select the **import an existing group** link.
+1. Enter your group name.
+1. Accept or modify the associated group URL.
+1. Select **Choose file...**.
+1. Select the file that you exported in the [Export a group](#export-a-group) section.
+1. To begin importing, select **Import**.
+
+Your newly imported group page appears after the operation completes.
+
+NOTE:
+The maximum import file size can be set by the administrator, default is `0` (unlimited).
+As an administrator, you can modify the maximum import file size. To do so, use the `max_import_size` option in the
+[Application settings API](../../../api/settings.md#change-application-settings) or the
+[Admin Area](../../../administration/settings/account_and_limit_settings.md).
+Default [modified](https://gitlab.com/gitlab-org/gitlab/-/issues/251106) from 50 MB to 0 in GitLab 13.8.
+
+### Rate limits
+
+To help avoid abuse, by default, users are rate limited to:
+
+| Request Type | Limit |
+|-----------------|-------|
+| Export | 6 groups per minute |
+| Download export | 1 download per group per minute |
+| Import | 6 groups per minute |
+
## Related topics
- [Project import and export API](../../../api/project_import_export.md)
- [Project import and export administration Rake tasks](../../../administration/raketasks/project_import_export.md)
- [Migrating GitLab groups](../../group/import/index.md)
- [Group import and export API](../../../api/group_import_export.md)
-- [Migrate groups by direct transfer](../../group/import/index.md#migrate-groups-by-direct-transfer-recommended).
-- [Migrate groups by using file exports](../../group/import/index.md#migrate-groups-by-uploading-an-export-file-deprecated).
+- [Migrate groups by direct transfer](../../group/import/index.md).
diff --git a/doc/user/project/settings/project_features_permissions.md b/doc/user/project/settings/project_features_permissions.md
index 27c0668079c..c1fe9045ea5 100644
--- a/doc/user/project/settings/project_features_permissions.md
+++ b/doc/user/project/settings/project_features_permissions.md
@@ -173,7 +173,7 @@ To subscribe to a topic:
- From the **Explore topics** page:
- 1. On the left sidebar, expand the top-most chevron ({**chevron-down**}).
+ 1. On the left sidebar, expand the top-most chevron (**{chevron-down}**).
1. Select **Explore**.
1. Select **Topics**.
1. Select the topic you want to subscribe to.
diff --git a/doc/user/project/use_project_as_go_package.md b/doc/user/project/use_project_as_go_package.md
index 54e9eac7756..bf11cd784cb 100644
--- a/doc/user/project/use_project_as_go_package.md
+++ b/doc/user/project/use_project_as_go_package.md
@@ -10,7 +10,7 @@ Prerequisites:
- Contact your administrator to enable the [GitLab Go Proxy](../packages/go_proxy/index.md).
- To use a private project in a subgroup as a Go package, you must [authenticate Go requests](#authenticate-go-requests-to-private-projects). Go requests that are not authenticated cause
-`go get` to fail. You don't need to authenticate Go requests for projects that are not in subgroups.
+ `go get` to fail. You don't need to authenticate Go requests for projects that are not in subgroups.
To use a project as a Go package, use the `go get` and `godoc.org` discovery requests. You can use the meta tags:
diff --git a/doc/user/project/web_ide/index.md b/doc/user/project/web_ide/index.md
index 49efd463334..4aaf7f27229 100644
--- a/doc/user/project/web_ide/index.md
+++ b/doc/user/project/web_ide/index.md
@@ -17,71 +17,65 @@ The Web IDE is an advanced editor with commit staging.
You can use the Web IDE to make changes to multiple files directly from the GitLab UI.
For a more basic implementation, see [Web Editor](../repository/web_editor.md).
-To pair the Web IDE with a remote development environment, see [remote development](../remote_development/index.md).
+To pair the Web IDE with a remote development environment, see [Remote development](../remote_development/index.md).
-## Use the Web IDE
+## Open the Web IDE
-To open the Web IDE from the GitLab UI:
+To open the Web IDE:
1. On the left sidebar, select **Search or go to** and find your project.
1. Use the <kbd>.</kbd> keyboard shortcut.
-You can also open the Web IDE from:
+### From a file or directory
-- A file
-- The repository file list
-- A merge request
+To open the Web IDE from a file or directory:
-### From a file or the repository file list
-
-To open the Web IDE from a file or the repository file list:
-
-- In the upper right, select **Edit > Open in Web IDE**.
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Go to your file or directory.
+1. Select **Edit > Open in Web IDE**.
### From a merge request
To open the Web IDE from a merge request:
+1. On the left sidebar, select **Search or go to** and find your project.
1. Go to your merge request.
-1. In the upper-right corner, select **Code > Open in Web IDE**.
+1. In the upper right, select **Code > Open in Web IDE**.
-The Web IDE opens new and modified files in separate tabs and displays changes side by side with the original source.
-To optimize loading time, only the top 10 files (by number of lines changed) are opened automatically.
+The Web IDE opens new and modified files in separate tabs and displays changes side by side.
+To reduce load time, only 10 files with the most lines changed are opened automatically.
-In the file tree, any new or modified file in the merge request is indicated by an icon next to the filename.
-To view changes to a file, right-click the filename and select **Compare with merge request base**.
+On the left **Explorer** sidebar, any new or modified file is indicated
+by the merge request icon (**{merge-request}**) next to the file name.
+To view changes to a file, right-click the file and select **Compare with merge request base**.
-## Open a file in the Web IDE
+## Open a file
-To open any file by its name:
+To open a file by name in the Web IDE:
1. Press <kbd>Command</kbd>+<kbd>P</kbd>.
-1. Enter the name of your file.
+1. In the search box, enter the file name.
-## Search across files
+## Search open files
-You can use the Web IDE to search all files in the opened folder.
-
-To search across files:
+To search across open files in the Web IDE:
1. Press <kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>F</kbd>.
-1. Enter your search term.
-
-In the Web IDE, only partial results from opened files are displayed.
+1. In the search box, enter your search term.
-## View a list of changed files
+## View a list of modified files
-To view a list of files you changed in the Web IDE:
+To view a list of files you modified in the Web IDE:
-- On the activity bar on the left, select **Source Control**,
- or press <kbd>Control</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>.
+- On the left activity bar, select **Source Control**, or
+ press <kbd>Control</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>.
Your `CHANGES`, `STAGED CHANGES`, and `MERGE CHANGES` are displayed.
For more information, see the [VS Code documentation](https://code.visualstudio.com/docs/sourcecontrol/overview#_commit).
## Restore uncommitted changes
-You don't have to manually save any file you modify in the Web IDE.
+You do not have to manually save any file you modify in the Web IDE.
Modified files are automatically staged and can be [committed](#commit-changes).
Uncommitted changes are saved in your browser's local storage and persist
even if you close the browser tab or refresh the Web IDE.
@@ -93,68 +87,67 @@ To restore uncommitted changes in the Web IDE:
1. In the search box, enter `Local History: Find Entry to Restore`.
1. Select the file that contains the uncommitted changes.
-## Upload a new file
+## Upload a file
+
+To upload a file in the Web IDE:
+
+1. On the left activity bar, select **Explorer**, or
+ press <kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>E</kbd>.
+1. Go to the directory where you want to upload the file.
+ To create a new directory:
-To upload a new file in the Web IDE:
+ - On the left **Explorer** sidebar, in the upper right,
+ select **New Folder** (**{folder-new}**).
-1. On the activity bar on the left, select **Explorer** and go to the directory where you want to upload the file.
-1. Optional. For a new directory, go to the path where you want to have the directory and do one of the following:
- - Right-click the path, and select **New Folder...**. You can create a nested path with `/` (for example, `parentdir/subdir1/subdir2`).
- - In the upper right of the **Explorer** panel, select **New Folder...** (**{folder-new}**).
-1. Enter the name of the new directory, and press <kbd>Enter</kbd>.
-1. Right-click the path, and select **Upload...**.
-1. Select the file you want to upload, then select **Open**. You can upload multiple files at once.
+1. Right-click the directory and select **Upload**.
+1. Select the file you want to upload.
-The new file is uploaded and automatically added to the repository.
+You can upload multiple files at once.
+The files are uploaded and automatically added to the repository.
## Switch branches
-The Web IDE uses the currently selected branch by default.
+The Web IDE uses the current branch by default.
To switch branches in the Web IDE:
-1. On the status bar, in the lower-left corner, select the current branch name.
-1. In the search box, start typing the branch name.
-1. From the dropdown list, select the branch.
+1. On the bottom status bar, on the left, select the current branch name.
+1. Enter or select an existing branch.
## Create a branch
To create a branch from the current branch in the Web IDE:
-1. On the status bar, in the lower-left corner, select the current branch name.
-1. From the dropdown list, select **Create new branch...**.
-1. Enter the branch name.
-1. Press <kbd>Enter</kbd>.
+1. On the bottom status bar, on the left, select the current branch name.
+1. From the dropdown list, select **Create new branch**.
+1. Enter the new branch name.
-If you don't have write access to the repository, **Create new branch...** is not visible.
+If you do not have write access to the repository, **Create new branch** is not visible.
## Commit changes
To commit changes in the Web IDE:
-1. On the activity bar on the left, select **Source Control**,
- or press <kbd>Control</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>.
+1. On the left activity bar, select **Source Control**, or
+ press <kbd>Control</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>.
1. Enter your commit message.
-1. Select **Commit & Push**.
-1. Commit to the current branch, or [create a new branch](#create-a-branch).
+1. Commit to the current branch or [create a new branch](#create-a-branch).
## Create a merge request
-To create a merge request in the Web IDE:
+To create a [merge request](../merge_requests/index.md) in the Web IDE:
1. [Commit the changes](#commit-changes).
-1. In the pop-up notification in the lower-right corner, select **Create Merge Request**.
- A new window opens for you to create the [merge request](../merge_requests/index.md).
+1. In the notification that appears in the lower right, select **Create MR**.
-To access missed notifications, see [Access notifications](#access-notifications).
+For more information, see [View missed notifications](#view-missed-notifications).
## Use the command palette
-In the Web IDE, you can access many commands through the command palette.
+You can use the command palette to access many commands.
To open the command palette and run a command in the Web IDE:
1. Press <kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd>.
-1. In the search box, start typing the command name.
-1. From the dropdown list, select the command.
+1. Enter or select the command.
## Edit settings
@@ -168,7 +161,8 @@ In the settings editor, you can search for the settings you want to modify.
## Edit keyboard shortcuts
-You can use the keyboard shortcuts editor to view and modify the default keybindings for all available commands.
+You can use the keyboard shortcuts editor to view and modify
+the default keybindings for all available commands.
To open the keyboard shortcuts editor in the Web IDE:
- On the top menu bar, select **File > Preferences > Keyboard Shortcuts**,
@@ -179,13 +173,15 @@ In the keyboard shortcuts editor, you can search for:
- The keybindings you want to change
- The commands you want to add or remove keybindings for
-Keybindings are based on your keyboard layout. If you change your keyboard layout, existing keybindings are updated automatically.
+Keybindings are based on your keyboard layout.
+If you change your keyboard layout, existing keybindings are updated automatically.
-## Change themes
+## Change the color theme
-You can choose between different themes for the Web IDE. The default theme for the Web IDE is **GitLab Dark**.
+You can choose between different color themes for the Web IDE.
+The default theme is **GitLab Dark**.
-To change the Web IDE theme:
+To change the color theme in the Web IDE:
1. On the top menu bar, select **File > Preferences > Theme > Color Theme**,
or press <kbd>Command</kbd>+<kbd>K</kbd> then <kbd>Command</kbd>+<kbd>T</kbd>.
@@ -194,12 +190,13 @@ To change the Web IDE theme:
The active color theme is stored in the [user settings](#edit-settings).
-## Access notifications
+## View missed notifications
-When you perform actions in the Web IDE, notifications appear in the lower-right corner. To access missed notifications:
+When you perform actions in the Web IDE, notifications appear in the lower right.
+To view any notification you might have missed:
-1. On the status bar, in the lower-right corner, select the bell (**{notifications}**) for a list of notifications.
-1. Select the notification you want to access.
+1. On the bottom status bar, on the right, select the bell icon (**{notifications}**) for a list of notifications.
+1. Select the notification you want to view.
<!-- ## Privacy and data collection for extensions
@@ -215,7 +212,7 @@ To protect your privacy and data:
- Carefully review the permissions requested by an extension before you install the extension.
- Keep your extensions up to date to ensure that any security or privacy vulnerabilities are addressed promptly. -->
-## Interactive web terminals for the Web IDE **(BETA)**
+## Interactive web terminals **(BETA)**
WARNING:
This feature is in [Beta](../../../policy/experiment-beta-support.md#beta) and subject to change without notice.
@@ -228,21 +225,25 @@ When you set up a remote development server in the Web IDE, you can use interact
You cannot use interactive web terminals to interact with a runner.
However, you can use a terminal to install dependencies and compile and debug code.
-For more information about configuring a workspace that supports interactive web terminals, see [remote development](../remote_development/index.md).
+For more information, see [Remote development](../remote_development/index.md).
## Related topics
-- [GitLab Duo Chat in the Web IDE](../../gitlab_duo_chat.md#web-ide)
+- [GitLab Duo Chat in the Web IDE](../../gitlab_duo_chat.md#use-gitlab-duo-chat-in-the-web-ide)
## Troubleshooting
When working with the Web IDE, you might encounter the following issues.
-### Character offset in the Web IDE
+### Character offset when typing
-When you type in the Web IDE, you might get a four-character offset. To resolve the issue, do one of the following:
+When you type in the Web IDE, you might get a four-character offset.
+As a workaround:
-- Add `"editor.disableMonospaceOptimizations": true` to your settings.
-- Modify your `"editor.font"` setting.
+1. On the top menu bar, select **File > Preferences > Settings**,
+ or press <kbd>Command</kbd>+<kbd>,</kbd>.
+1. In the upper-right corner, select **Open Settings (JSON)**.
+1. In the `settings.json` file, add `"editor.disableMonospaceOptimizations": true`
+ or modify the `"editor.fontFamily"` setting.
For more information, see [VS Code issue 80170](https://github.com/microsoft/vscode/issues/80170).
diff --git a/doc/user/project/wiki/group.md b/doc/user/project/wiki/group.md
index 64f6fa2c75e..59e949c5218 100644
--- a/doc/user/project/wiki/group.md
+++ b/doc/user/project/wiki/group.md
@@ -37,7 +37,7 @@ To access a group wiki:
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/53247) in GitLab 13.9.
Users with the Owner role in a group can
-[import or export a group wiki](../../group/import/index.md#migrate-groups-by-uploading-an-export-file-deprecated) when they
+[import or export a group wiki](../../project/settings/import_export.md#migrate-groups-by-uploading-an-export-file-deprecated) when they
import or export a group.
Content created in a group wiki is not deleted when an account is downgraded or a
@@ -47,7 +47,7 @@ the wiki is exported.
To access the group wiki data from the export file if the feature is no longer
available, you have to:
-1. Extract the [export file tarball](../../group/import/index.md#migrate-groups-by-uploading-an-export-file-deprecated)
+1. Extract the [export file tarball](../../project/settings/import_export.md#migrate-groups-by-uploading-an-export-file-deprecated)
with this command, replacing `FILENAME` with your file's name:
`tar -xvzf FILENAME.tar.gz`
1. Browse to the `repositories` directory. This directory contains a
diff --git a/doc/user/project/wiki/index.md b/doc/user/project/wiki/index.md
index f4946230360..07c5ce73470 100644
--- a/doc/user/project/wiki/index.md
+++ b/doc/user/project/wiki/index.md
@@ -94,8 +94,12 @@ Users with at least the Developer role can create new wiki pages:
Wikis are based on Git repositories, so you can clone them locally and edit
them like you would do with every other Git repository. To clone a wiki repository
-locally, select **Clone repository** from the right-hand sidebar of any wiki page,
-and follow the on-screen instructions.
+locally:
+
+1. On the left sidebar, select **Search or go to** and find your project or group.
+1. Select **Plan > Wiki**.
+1. On the right sidebar, select **Clone repository**.
+1. Follow the on-screen instructions.
Files you add to your wiki locally must use one of the following
supported extensions, depending on the markup language you wish to use.
@@ -155,7 +159,9 @@ For an example, read [Table of contents](../../markdown.md#table-of-contents).
## Delete a wiki page
-You need at least the Developer role to delete a wiki page:
+Prerequisites:
+
+- You must have at least the Developer role.
1. On the left sidebar, select **Search or go to** and find your project or group.
1. Select **Plan > Wiki**.
@@ -166,7 +172,9 @@ You need at least the Developer role to delete a wiki page:
## Move a wiki page
-You need at least the Developer role to move a wiki page:
+Prerequisites:
+
+- You must have at least the Developer role.
1. On the left sidebar, select **Search or go to** and find your project or group.
1. Select **Plan > Wiki**.
@@ -245,8 +253,11 @@ Commits to wikis are not counted in [repository analytics](../../analytics/repos
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/23109) in GitLab 13.8, the sidebar can be customized by selecting the **Edit sidebar** button.
-You need at least the Developer role to customize the wiki
-navigation sidebar. This process creates a wiki page named `_sidebar` which fully
+Prerequisites:
+
+- You must have at least the Developer role.
+
+This process creates a wiki page named `_sidebar` which fully
replaces the default sidebar navigation:
1. On the left sidebar, select **Search or go to** and find your project or group.
@@ -312,7 +323,7 @@ To disable a project's internal wiki:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > General**.
1. Expand **Visibility, project features, permissions**.
-1. Scroll down to find **Wiki** and toggle it off (in gray).
+1. Scroll down to find and turn off the **Wiki** toggle (in gray).
1. Select **Save changes**.
The internal wiki is now disabled, and users and project members:
diff --git a/doc/user/project/working_with_projects.md b/doc/user/project/working_with_projects.md
index 1c60f3bebf3..7d8305519e4 100644
--- a/doc/user/project/working_with_projects.md
+++ b/doc/user/project/working_with_projects.md
@@ -61,7 +61,7 @@ Prerequisites:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > General**.
1. In the **Project name** text box, enter your project name. See the [limitations on project names](../../user/reserved_names.md).
-1. In the **Project description** text box, enter your project description. The description is limited to 500 characters.
+1. In the **Project description** text box, enter your project description. The description is limited to 2,000 characters.
1. Under **Project avatar**, to change your project avatar, select **Choose file**.
## Star a project
@@ -121,7 +121,7 @@ You can [view projects that are pending deletion](#view-projects-pending-deletio
and use the Rails console to
[find projects that are pending deletion](#find-projects-that-are-pending-deletion).
-### Delete a project immediately
+### Delete a project immediately **(PREMIUM ALL)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/191367) in GitLab 14.1.
> - Option to delete projects immediately from the Admin Area and as a group setting removed [on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/393622) and [on self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119606) in GitLab 16.0.
@@ -144,7 +144,7 @@ To immediately delete a project marked for deletion:
1. In the **Delete this project** section, select **Delete project**.
1. On the confirmation dialog, enter the project name and select **Yes, delete project**.
-### View projects pending deletion
+### View projects pending deletion **(PREMIUM ALL)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/37014) in GitLab 13.3 for Administrators.
> - [Tab renamed](https://gitlab.com/gitlab-org/gitlab/-/issues/347468) from **Deleted projects** in GitLab 14.6.
@@ -309,7 +309,7 @@ Prerequisites:
1. [Create a group](../group/index.md#create-a-group) to track membership of your project.
1. [Set up LDAP synchronization](../../administration/auth/ldap/ldap_synchronization.md) for that group.
1. To use LDAP groups to manage access to a project,
-[add the LDAP-synchronized group as a member](../group/manage.md) to the project.
+ [add the LDAP-synchronized group as a member](../group/manage.md) to the project.
## Troubleshooting