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:
Diffstat (limited to 'doc/user/project')
-rw-r--r--doc/user/project/badges.md7
-rw-r--r--doc/user/project/clusters/serverless/aws.md2
-rw-r--r--doc/user/project/code_owners.md34
-rw-r--r--doc/user/project/deploy_keys/index.md2
-rw-r--r--doc/user/project/deploy_tokens/index.md10
-rw-r--r--doc/user/project/description_templates.md161
-rw-r--r--doc/user/project/file_lock.md3
-rw-r--r--doc/user/project/img/description_templates.pngbin7903 -> 0 bytes
-rw-r--r--doc/user/project/img/description_templates_v14_7.pngbin0 -> 13186 bytes
-rw-r--r--doc/user/project/import/bitbucket_server.md1
-rw-r--r--doc/user/project/import/github.md9
-rw-r--r--doc/user/project/import/index.md11
-rw-r--r--doc/user/project/index.md9
-rw-r--r--doc/user/project/insights/index.md4
-rw-r--r--doc/user/project/integrations/discord_notifications.md12
-rw-r--r--doc/user/project/integrations/github.md5
-rw-r--r--doc/user/project/integrations/gitlab_slack_application.md3
-rw-r--r--doc/user/project/integrations/hangouts_chat.md2
-rw-r--r--doc/user/project/integrations/overview.md2
-rw-r--r--doc/user/project/integrations/pipeline_status_emails.md23
-rw-r--r--doc/user/project/integrations/prometheus.md12
-rw-r--r--doc/user/project/integrations/prometheus_library/cloudwatch.md8
-rw-r--r--doc/user/project/integrations/prometheus_library/haproxy.md8
-rw-r--r--doc/user/project/integrations/prometheus_library/index.md8
-rw-r--r--doc/user/project/integrations/prometheus_library/kubernetes.md10
-rw-r--r--doc/user/project/integrations/prometheus_library/nginx.md8
-rw-r--r--doc/user/project/integrations/prometheus_library/nginx_ingress.md8
-rw-r--r--doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md8
-rw-r--r--doc/user/project/integrations/slack.md28
-rw-r--r--doc/user/project/integrations/webhooks.md15
-rw-r--r--doc/user/project/issues/img/issue_board.pngbin85331 -> 0 bytes
-rw-r--r--doc/user/project/issues/managing_issues.md5
-rw-r--r--doc/user/project/labels.md7
-rw-r--r--doc/user/project/members/index.md4
-rw-r--r--doc/user/project/members/share_project_with_groups.md2
-rw-r--r--doc/user/project/merge_requests/accessibility_testing.md80
-rw-r--r--doc/user/project/merge_requests/allow_collaboration.md113
-rw-r--r--doc/user/project/merge_requests/approvals/rules.md6
-rw-r--r--doc/user/project/merge_requests/approvals/settings.md9
-rw-r--r--doc/user/project/merge_requests/browser_performance_testing.md2
-rw-r--r--doc/user/project/merge_requests/code_quality.md14
-rw-r--r--doc/user/project/merge_requests/commit_templates.md9
-rw-r--r--doc/user/project/merge_requests/creating_merge_requests.md9
-rw-r--r--doc/user/project/merge_requests/fail_fast_testing.md2
-rw-r--r--doc/user/project/merge_requests/fast_forward_merge.md12
-rw-r--r--doc/user/project/merge_requests/getting_started.md6
-rw-r--r--doc/user/project/merge_requests/img/commit-button_v13_12.pngbin8834 -> 0 bytes
-rw-r--r--doc/user/project/merge_requests/img/ff_merge_rebase.pngbin26945 -> 0 bytes
-rw-r--r--doc/user/project/merge_requests/img/ff_merge_rebase_v14_7.pngbin0 -> 13865 bytes
-rw-r--r--doc/user/project/merge_requests/img/squash_edit_form.pngbin4231 -> 0 bytes
-rw-r--r--doc/user/project/merge_requests/img/squash_mr_commits.pngbin31491 -> 0 bytes
-rw-r--r--doc/user/project/merge_requests/img/squash_mr_message.pngbin37675 -> 0 bytes
-rw-r--r--doc/user/project/merge_requests/img/squash_mr_widget.pngbin3573 -> 0 bytes
-rw-r--r--doc/user/project/merge_requests/img/squash_squashed_commit.pngbin16725 -> 0 bytes
-rw-r--r--doc/user/project/merge_requests/load_performance_testing.md2
-rw-r--r--doc/user/project/merge_requests/revert_changes.md6
-rw-r--r--doc/user/project/merge_requests/reviews/img/suggestions_custom_commit_messages_v13_1.jpgbin35055 -> 0 bytes
-rw-r--r--doc/user/project/merge_requests/reviews/img/suggestions_custom_commit_messages_v14_7.pngbin0 -> 14774 bytes
-rw-r--r--doc/user/project/merge_requests/reviews/suggestions.md2
-rw-r--r--doc/user/project/merge_requests/squash_and_merge.md152
-rw-r--r--doc/user/project/merge_requests/versions.md2
-rw-r--r--doc/user/project/pages/getting_started/pages_new_project_template.md3
-rw-r--r--doc/user/project/pages/img/icons/lock.pngbin3404 -> 0 bytes
-rw-r--r--doc/user/project/pages/introduction.md2
-rw-r--r--doc/user/project/pages/pages_access_control.md4
-rw-r--r--doc/user/project/protected_branches.md5
-rw-r--r--doc/user/project/protected_tags.md5
-rw-r--r--doc/user/project/push_options.md5
-rw-r--r--doc/user/project/quick_actions.md142
-rw-r--r--doc/user/project/releases/img/feature_count_v14_6.pngbin24569 -> 6846 bytes
-rw-r--r--doc/user/project/releases/index.md10
-rw-r--r--doc/user/project/repository/gpg_signed_commits/index.md6
-rw-r--r--doc/user/project/repository/index.md6
-rw-r--r--doc/user/project/repository/jupyter_notebooks/index.md4
-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/reducing_the_repo_size_using_git.md3
-rw-r--r--doc/user/project/repository/web_editor.md3
-rw-r--r--doc/user/project/requirements/index.md4
-rw-r--r--doc/user/project/service_desk.md15
-rw-r--r--doc/user/project/settings/img/import_export_download_export.pngbin23285 -> 0 bytes
-rw-r--r--doc/user/project/settings/img/import_export_export_button.pngbin31790 -> 0 bytes
-rw-r--r--doc/user/project/settings/img/import_export_mail_link.pngbin6307 -> 0 bytes
-rw-r--r--doc/user/project/settings/img/import_export_new_project.pngbin8011 -> 0 bytes
-rw-r--r--doc/user/project/settings/img/import_export_select_file.pngbin11254 -> 0 bytes
-rw-r--r--doc/user/project/settings/import_export.md296
-rw-r--r--doc/user/project/settings/index.md23
-rw-r--r--doc/user/project/settings/project_access_tokens.md93
-rw-r--r--doc/user/project/time_tracking.md9
-rw-r--r--doc/user/project/web_ide/index.md48
-rw-r--r--doc/user/project/wiki/index.md15
-rw-r--r--doc/user/project/working_with_projects.md4
92 files changed, 716 insertions, 850 deletions
diff --git a/doc/user/project/badges.md b/doc/user/project/badges.md
index 9ca11d43864..79d395d51c3 100644
--- a/doc/user/project/badges.md
+++ b/doc/user/project/badges.md
@@ -1,14 +1,11 @@
---
stage: Create
group: Source Code
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: reference, howto
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
# Badges **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/41174) in GitLab 10.7.
-
Badges are a unified way to present condensed pieces of information about your
projects. They consist of a small image and a URL that the image
points to. Examples for badges can be the [pipeline status](../../ci/pipelines/settings.md#pipeline-status-badge),
@@ -87,7 +84,7 @@ Badges directly associated with a project can be configured on the
## Placeholders
-The URL a badge points to, as well as the image URL, can contain placeholders
+Both the URL a badge points to and the image URL can contain placeholders
which are evaluated when displaying the badge. The following placeholders
are available:
diff --git a/doc/user/project/clusters/serverless/aws.md b/doc/user/project/clusters/serverless/aws.md
index ccf90a3d3dd..cf571abbf8a 100644
--- a/doc/user/project/clusters/serverless/aws.md
+++ b/doc/user/project/clusters/serverless/aws.md
@@ -394,6 +394,8 @@ stages:
production:
stage: deploy
before_script:
+ - apt-get update
+ - apt-get install -y python3-pip
- pip3 install awscli --upgrade
- pip3 install aws-sam-cli --upgrade
script:
diff --git a/doc/user/project/code_owners.md b/doc/user/project/code_owners.md
index a95e4d2bc26..4068d8e056c 100644
--- a/doc/user/project/code_owners.md
+++ b/doc/user/project/code_owners.md
@@ -1,19 +1,12 @@
---
stage: Create
group: Source Code
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: reference
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
# Code Owners **(PREMIUM)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6916) in GitLab 11.3.
-> - Code Owners for merge request approvals was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/4418) in GitLab Premium 11.9.
-> - Moved to GitLab Premium in 13.9.
-
-INFO:
-Get access to Code Owners and more with a
-[free 30-day trial of GitLab Ultimate](https://about.gitlab.com/free-trial/index.html?glm_source=docs.gitlab.com&glm_content=p-code-owners-docs).
+> Moved to GitLab Premium in 13.9.
Code Owners define who owns specific files or directories in a repository.
@@ -283,3 +276,26 @@ model/db @database
[DOCUMENTATION]
README.md @docs
```
+
+## Troubleshooting
+
+### Approvals shown as optional
+
+A Code Owner approval rule is optional if these conditions are not met:
+
+- The user or group are not a member of the project or parent group.
+- [Code Owner approval on a protected branch](protected_branches.md#require-code-owner-approval-on-a-protected-branch) has not been set up.
+- The section is [marked as optional](#make-a-code-owners-section-optional).
+
+### Approvals do not show
+
+Code Owner approval rules only update when the merge request is created.
+If you update the `CODEOWNERS` file, close the merge request and create a new one.
+
+### User not shown as possible approver
+
+A user might not show as an approver on the Code Owner merge request approval rules.
+
+This result occurs when a rule prevents the specific user from approving the merge request.
+Check the project
+[merge request approval setting](merge_requests/approvals/settings.md#edit-merge-request-approval-settings).
diff --git a/doc/user/project/deploy_keys/index.md b/doc/user/project/deploy_keys/index.md
index c5950347ae9..2e876b24b53 100644
--- a/doc/user/project/deploy_keys/index.md
+++ b/doc/user/project/deploy_keys/index.md
@@ -5,7 +5,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
type: howto, reference
---
-# Deploy keys
+# Deploy keys **(FREE)**
Deploy keys allow read-only or read-write access to your
repositories by importing an SSH public key into your GitLab instance.
diff --git a/doc/user/project/deploy_tokens/index.md b/doc/user/project/deploy_tokens/index.md
index c840f6c8698..f57fa5aa57d 100644
--- a/doc/user/project/deploy_tokens/index.md
+++ b/doc/user/project/deploy_tokens/index.md
@@ -4,12 +4,12 @@ group: Release
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# Deploy tokens
+# Deploy tokens **(FREE)**
-> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/199370) from **Settings > Repository** in GitLab 12.9.
-> - [Added `write_registry` scope](https://gitlab.com/gitlab-org/gitlab/-/issues/22743) in GitLab 12.10.
-> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29280) from **Settings > CI/CD** in GitLab 12.10.1.
-> - [Added package registry scopes](https://gitlab.com/gitlab-org/gitlab/-/issues/213566) in GitLab 13.0.
+> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/199370) from **Settings > Repository** to **Settings > CI/CD** in GitLab 12.9.
+> - [Added](https://gitlab.com/gitlab-org/gitlab/-/issues/22743) `write_registry` scope in GitLab 12.10.
+> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29280) from **Settings > CI/CD** to **Settings > Repository** in GitLab 12.10.1.
+> - [Added](https://gitlab.com/gitlab-org/gitlab/-/issues/213566) package registry scopes in GitLab 13.0.
Deploy tokens allow you to download (`git clone`) or push and pull packages and
container registry images of a project without having a user and a password.
diff --git a/doc/user/project/description_templates.md b/doc/user/project/description_templates.md
index 66e5931fa4c..6c17964f3a5 100644
--- a/doc/user/project/description_templates.md
+++ b/doc/user/project/description_templates.md
@@ -6,73 +6,42 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Description templates **(FREE)**
-We all know that a properly submitted issue is more likely to be addressed in
-a timely manner by the developers of a project.
+You can define templates to use as descriptions
+for your [issues](issues/index.md) and [merge requests](merge_requests/index.md).
-With description templates, you can define context-specific templates for issue and merge request
-description fields for your project, and filter out unnecessary noise from issues.
+You can define these templates in a project, group, or instance. Projects
+inherit the templates defined at a higher level.
-By using the description templates, users that create a new issue or merge
-request can select a description template to help them communicate with other
-contributors effectively.
+You might want to use these templates:
-Every GitLab project can define its own set of description templates as they
-are added to the root directory of a GitLab project's repository.
+- For different stages of your workflow, for example, feature proposal, feature improvement, or a bug report.
+- For every issue or merge request for a specific project, so the layout is consistent.
+- For a [Service Desk email template](service_desk.md#new-service-desk-issues).
-Description templates must be written in [Markdown](../markdown.md) and stored
-in your project's repository in the `.gitlab` directory. Only the
-templates of the default branch are taken into account.
+For description templates to work, they must be:
-To learn how to create templates for various file types in groups, visit
-[Group file templates](../group/index.md#group-file-templates).
-
-## Use cases
-
-These are some situations when you might find description templates useful:
-
-- You can create issues and merge request templates for different
- stages of your workflow, for example, feature proposal, feature improvement, or a bug report.
-- Add a template to be used in every issue for a specific project,
- giving instructions and guidelines, requiring for information specific to that subject.
- For example, if you have a project for tracking new blog posts, you can require the
- title, outlines, author name, and author social media information.
-- Following the previous example, you can make a template for every MR submitted
- with a new blog post, requiring information about the post date, front matter data,
- images guidelines, link to the related issue, reviewer name, and so on.
-- You can also create issues and merge request templates for different
- stages of your workflow, for example, feature proposal, feature improvement, or a bug report.
-- You can use an [issue description template](#create-an-issue-template) as a
- [Service Desk email template](service_desk.md#new-service-desk-issues).
+- Saved with the `.md` extension.
+- Stored in your project's repository in the `.gitlab/issue_templates`
+ or `.gitlab/merge_request_templates` directory.
+- Be present on the default branch.
## Create an issue template
Create a new Markdown (`.md`) file inside the `.gitlab/issue_templates/`
-directory in your repository. Commit and push to your default branch.
+directory in your repository.
-To create a Markdown file:
+To create an issue description template:
-1. In a project, go to **Repository**.
-1. Next to the default branch, select the **{plus}** button.
+1. On the top bar, select **Menu > Projects** and find your project.
+1. On the left sidebar, select **Repository**.
+1. Next to the default branch, select **{plus}**.
1. Select **New file**.
-1. Next to the default branch, in the **File name** field, add the name of your issue template.
- Make sure that your file has the `.md` extension, for
- example `feature_request.md` or `Feature Request.md`.
-1. Commit and push to your default branch.
-
-If you don't have a `.gitlab/issue_templates` directory in your repository, you need to create it.
-
-To create the `.gitlab/issue_templates` directory:
-
-1. In a project, go to **Repository**.
-1. Next to the default branch, select the **{plus}** button.
-1. Select **New directory**.
-1. Name this new directory `.gitlab` and commit to your default branch.
-1. Next to the default branch, select the **{plus}** button.
-1. Select **New directory**.
-1. Name your directory `issue_templates` and commit to your default branch.
+1. Next to the default branch, in the **File name** text box, enter `.gitlab/issue_templates/mytemplate.md`,
+ where `mytemplate` is the name of your issue template.
+1. Commit to your default branch.
To check if this has worked correctly, [create a new issue](issues/managing_issues.md#create-an-issue)
-and see if you can choose a description template.
+and see if you can find your description template in the **Choose a template** dropdown list.
## Create a merge request template
@@ -80,51 +49,48 @@ Similarly to issue templates, create a new Markdown (`.md`) file inside the
`.gitlab/merge_request_templates/` directory in your repository. Commit and
push to your default branch.
-## Use the templates
-
-Let's take for example that you've created the file `.gitlab/issue_templates/Bug.md`.
-This enables the `Bug` dropdown option when creating or editing issues. When
-`Bug` is selected, the content from the `Bug.md` template file is copied
-to the issue description field. The **Reset template** button discards any
-changes you made after picking the template and returns it to its initial status.
+To create a merge request description template:
-NOTE:
-You can create shortcut links to create an issue using a designated template.
-For example: `https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Feature%20proposal`.
+1. On the top bar, select **Menu > Projects** and find your project.
+1. On the left sidebar, select **Repository**.
+1. Next to the default branch, select **{plus}**.
+1. Select **New file**.
+1. Next to the default branch, in the **File name** text box, enter `.gitlab/merge_request_templates/mytemplate.md`,
+ where `mytemplate` is the name of your merge request template.
+1. Commit to your default branch.
-![Description templates](img/description_templates.png)
+To check if this has worked correctly, [create a new merge request](merge_requests/creating_merge_requests.md)
+and see if you can find your description template in the **Choose a template** dropdown list.
-You can set description templates at various levels:
+## Use the templates
-- The entire [instance](#set-instance-level-description-templates)
-- A specific [group or subgroup](#set-group-level-description-templates)
-- A specific [project](#set-a-default-template-for-merge-requests-and-issues)
+When you create or edit an issue or a merge request, it shows in the **Choose a template** dropdown list.
-The templates are inherited. For example, in a project, you can also access templates set for the
-instance or the project's parent groups.
+To apply a template:
-### Set instance-level description templates **(PREMIUM SELF)**
+1. Create or edit an issue or a merge request.
+1. Select the **Choose a template** dropdown list.
+1. If the **Description** text box hasn't been empty, to confirm, select **Apply template**.
+1. Select **Save changes**.
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52360) in GitLab 13.9.
-> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/321247) in GitLab 14.0.
+When you select a description template, its content is copied to the description text box.
-You can set a description template at the **instance level** for issues
-and merge requests.
-As a result, these templates are available in all projects within the instance.
+To discard any changes to the description you've made after selecting the template: expand the **Choose a template** dropdown list and select **Reset template**.
-Only instance administrators can set instance-level templates.
+![Choosing a description template in an issue](img/description_templates_v14_7.png)
-To set the instance-level description template repository:
+NOTE:
+You can create shortcut links to create an issue using a designated template.
+For example: `https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Feature%20proposal`. Read more about [creating issues using a URL with prefilled values](issues/managing_issues.md#using-a-url-with-prefilled-values).
-1. On the top bar, select **Menu > Admin**.
-1. On the left sidebar, select **Settings > Templates**.
-1. Expand **Templates**
-1. From the dropdown, select your template project as the template repository at instance level.
-1. Select **Save changes**.
+### Set instance-level description templates **(PREMIUM SELF)**
-![Setting templates in the Admin Area](../admin_area/settings/img/file_template_admin_area_v14_0.png)
+You can set a description template at the **instance level** for issues
+and merge requests by using an [instance template repository](../admin_area/settings/instance_template_repository.md).
+You can also use the instance template repository for file templates.
-Learn more about [instance template repository](../admin_area/settings/instance_template_repository.md).
+You might also be interested [project templates](../admin_area/custom_project_templates.md)
+that you can use when creating a new project in the instance.
### Set group-level description templates **(PREMIUM)**
@@ -137,23 +103,27 @@ As a result, you can use the same templates in issues and merge requests in all
To re-use templates [you've created](../project/description_templates.md#create-an-issue-template):
-1. Go to the group's **Settings > General > Templates**.
-1. From the dropdown, select your template project as the template repository at group level.
+1. On the top bar, select **Menu > Groups** and find your group.
+1. On the left sidebar, select **Settings > General**.
+1. Expand **Templates**.
+1. From the dropdown list, select your template project as the template repository at group level.
1. Select **Save changes**.
![Group template settings](../group/img/group_file_template_settings.png)
+You might also be interested in templates for various
+[file types in groups](../group/index.md#group-file-templates).
+
### Set a default template for merge requests and issues **(PREMIUM)**
In a project, you can choose a default description template for new issues and merge requests.
As a result, every time a new merge request or issue is created, it's pre-filled with the text you
entered in the template.
-The visibility of issues or merge requests should be set to either "Everyone
-with access" or "Only Project Members" in your project's
-**Settings / Visibility, project features, permissions** section. Otherwise, the
-template text areas don't show. This is the default behavior, so in most cases
-you should be fine.
+Prerequisites:
+
+- On your project's left sidebar, select **Settings > General** and expand **Visibility, project features, permissions**.
+ Ensure issues or merge requests are set to either **Everyone with access** or **Only Project Members**.
To set a default description template for merge requests:
@@ -170,11 +140,10 @@ To set a default description template for issues:
Because GitLab merge request and issues support [Markdown](../markdown.md), you can use it to format
headings, lists, and so on.
-[GitLab versions 13.10 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/885)
-provide `issues_template` and `merge_requests_template` attributes in the
-[Projects API](../../api/projects.md) to help you keep your templates up to date.
+You can also provide `issues_template` and `merge_requests_template` attributes in the
+[Projects REST API](../../api/projects.md) to keep your default issue and merge request templates up to date.
-## Description template example
+## Example description template
We use description templates for issues and merge requests in the
[`.gitlab` folder](https://gitlab.com/gitlab-org/gitlab/-/tree/master/.gitlab) of the
diff --git a/doc/user/project/file_lock.md b/doc/user/project/file_lock.md
index 10dcbddac17..1d06b605aa9 100644
--- a/doc/user/project/file_lock.md
+++ b/doc/user/project/file_lock.md
@@ -2,7 +2,6 @@
stage: Create
group: Source Code
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
-type: reference, howto
---
# File Locking **(FREE)**
@@ -43,8 +42,6 @@ locked by Administrator`.
## Exclusive file locks **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/35856) in GitLab 10.5.
-
This process allows you to lock single files or file extensions and it is
done through the command line. It doesn't require GitLab paid subscriptions.
diff --git a/doc/user/project/img/description_templates.png b/doc/user/project/img/description_templates.png
deleted file mode 100644
index e9d45029532..00000000000
--- a/doc/user/project/img/description_templates.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/img/description_templates_v14_7.png b/doc/user/project/img/description_templates_v14_7.png
new file mode 100644
index 00000000000..acb1b9f79d9
--- /dev/null
+++ b/doc/user/project/img/description_templates_v14_7.png
Binary files differ
diff --git a/doc/user/project/import/bitbucket_server.md b/doc/user/project/import/bitbucket_server.md
index 81e7d159a06..da47b673c29 100644
--- a/doc/user/project/import/bitbucket_server.md
+++ b/doc/user/project/import/bitbucket_server.md
@@ -33,6 +33,7 @@ created as private in GitLab as well.
and quote part of the original comment.
- Declined pull requests have unreachable commits, which prevents the GitLab importer from
generating a proper diff. These pull requests show up as empty changes.
+- Pull request approvals are not imported.
- Attachments in Markdown are not imported.
- Task lists are not imported.
- Emoji reactions are not imported.
diff --git a/doc/user/project/import/github.md b/doc/user/project/import/github.md
index 72bf0841687..d4cca723333 100644
--- a/doc/user/project/import/github.md
+++ b/doc/user/project/import/github.md
@@ -26,6 +26,7 @@ The following aspects of a project are imported:
- Regular issue and pull request comments
- [Git Large File Storage (LFS) Objects](../../../topics/git/lfs/index.md)
- Pull request comments replies in discussions ([GitLab.com & 14.5+](https://gitlab.com/gitlab-org/gitlab/-/issues/336596))
+- Diff Notes suggestions ([GitLab.com & 14.7+](https://gitlab.com/gitlab-org/gitlab/-/issues/340624)) [with a flag](../../../administration/feature_flags.md) named `github_importer_use_diff_note_with_suggestions`. Enabled by default.
References to pull requests and issues are preserved (GitLab.com & 8.7+), and
each imported repository maintains visibility level unless that [visibility
@@ -164,16 +165,16 @@ your GitHub repositories are listed.
![GitHub importer page](img/import_projects_from_github_importer_v12_3.png)
-## Mirror a repository and share pipeline status
+## Mirror a repository and share pipeline status **(PREMIUM)**
Depending on your GitLab tier, [repository mirroring](../repository/mirror/index.md) can be set up to keep
your imported repository in sync with its GitHub copy.
-Additionally, you can configure GitLab to send pipeline status updates back GitHub with the
-[GitHub Project Integration](../integrations/github.md). **(PREMIUM)**
+Additionally, you can configure GitLab to send pipeline status updates back to GitHub with the
+[GitHub Project Integration](../integrations/github.md).
If you import your project using [CI/CD for external repository](../../../ci/ci_cd_for_external_repos/index.md), then both
-of the above are automatically configured. **(PREMIUM)**
+of the above are automatically configured.
NOTE:
Mirroring does not sync any new or updated pull requests from your GitHub project.
diff --git a/doc/user/project/import/index.md b/doc/user/project/import/index.md
index 9d7ed593d41..001f0d56cc5 100644
--- a/doc/user/project/import/index.md
+++ b/doc/user/project/import/index.md
@@ -28,7 +28,7 @@ See these documents to migrate to GitLab:
You can also import any Git repository through HTTP from the **New Project** page. Note that if the
repository is too large, the import can timeout.
-You can also [connect your external repository to get CI/CD benefits](../../../ci/ci_cd_for_external_repos/index.md). **(PREMIUM)**
+You can also [connect your external repository to get CI/CD benefits](../../../ci/ci_cd_for_external_repos/index.md).
## LFS authentication
@@ -42,7 +42,10 @@ However, you can't import issues and merge requests this way. To retain all meta
merge requests, use the [import/export feature](../settings/import_export.md)
to export projects from self-managed GitLab and import those projects into GitLab.com. All GitLab
user associations (such as comment author) are changed to the user importing the project. For more
-information, see [the import notes](../settings/import_export.md#important-notes).
+information, see the prerequisites and important notes in these sections:
+
+- [Export a project and its data](../settings/import_export.md#export-a-project-and-its-data).
+- [Import the project](../settings/import_export.md#import-a-project-and-its-data).
NOTE:
When migrating to GitLab.com, you must create users manually unless [SCIM](../../../user/group/saml_sso/scim_setup.md)
@@ -56,7 +59,7 @@ Migrate the assets in this order:
1. [Projects](../../../api/projects.md)
1. [Project variables](../../../api/project_level_variables.md)
-Keep in mind the limitations of the [import/export feature](../settings/import_export.md#exported-contents).
+Keep in mind the limitations of the [import/export feature](../settings/import_export.md#items-that-are-exported).
You must still migrate your [Container Registry](../../packages/container_registry/)
over a series of Docker pulls and pushes. Re-run any CI pipelines to retrieve any build artifacts.
@@ -87,7 +90,7 @@ to migrate users.
## Project aliases **(PREMIUM SELF)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/3264) in GitLab Premium 12.1.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/3264) in GitLab 12.1.
GitLab repositories are usually accessed with a namespace and a project name. When migrating
frequently accessed repositories to GitLab, however, you can use project aliases to access those
diff --git a/doc/user/project/index.md b/doc/user/project/index.md
index 07e8ea1dc06..bee097cdcbe 100644
--- a/doc/user/project/index.md
+++ b/doc/user/project/index.md
@@ -1,8 +1,7 @@
---
stage: Manage
group: Workspace
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: reference
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
# Organize work with projects **(FREE)**
@@ -43,9 +42,9 @@ Projects include the following [features](https://about.gitlab.com/features/):
- [Issue tracker](issues/index.md): Discuss implementations with your team.
- [Issue boards](issue_board.md): Organize and prioritize your workflow.
- [Multiple issue boards](issue_board.md#multiple-issue-boards): Create team-specific workflows (issue boards) for a project.
-- [Merge Requests](merge_requests/index.md): Apply a branching
+- [Merge requests](merge_requests/index.md): Apply a branching
strategy and get reviewed by your team.
- - [Merge Request Approvals](merge_requests/approvals/index.md): Ask for approval before
+ - [Merge request approvals](merge_requests/approvals/index.md): Ask for approval before
implementing a change.
- [Fix merge conflicts from the UI](merge_requests/conflicts.md): View Git diffs from the GitLab UI.
- [Review Apps](../../ci/review_apps/index.md): By branch, preview the results
@@ -144,7 +143,7 @@ There are numerous [APIs](../../api/index.md) to use with your projects:
- [Issue board](../../api/boards.md)
- [Labels](../../api/labels.md)
- [Markdown](../../api/markdown.md)
-- [Merge Requests](../../api/merge_requests.md)
+- [Merge requests](../../api/merge_requests.md)
- [Milestones](../../api/milestones.md)
- [Services](../../api/integrations.md)
- [Snippets](../../api/project_snippets.md)
diff --git a/doc/user/project/insights/index.md b/doc/user/project/insights/index.md
index 957290c5f20..0609b843e86 100644
--- a/doc/user/project/insights/index.md
+++ b/doc/user/project/insights/index.md
@@ -6,7 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Insights **(ULTIMATE)**
-> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/725) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.0.
+> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/725) in GitLab 12.0.
Configure the Insights that matter for your projects to explore data such as
triage hygiene, issues created/closed per a given period, average time for merge
@@ -297,7 +297,7 @@ you may see `created_at` in place of `merged_at`. `created_at` is used instead.
### `projects`
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/10904) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.4.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/10904) in GitLab 12.4.
You can limit where the "issuables" can be queried from:
diff --git a/doc/user/project/integrations/discord_notifications.md b/doc/user/project/integrations/discord_notifications.md
index c9333b879f3..ad7719f0e5b 100644
--- a/doc/user/project/integrations/discord_notifications.md
+++ b/doc/user/project/integrations/discord_notifications.md
@@ -6,8 +6,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Discord Notifications service **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/22684) in GitLab 11.6.
-
The Discord Notifications service sends event notifications from GitLab to the channel for which the webhook was created.
To send GitLab event notifications to a Discord channel, [create a webhook in Discord](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks)
@@ -17,10 +15,12 @@ and configure it in GitLab.
1. Open the Discord channel you want to receive GitLab event notifications.
1. From the channel menu, select **Edit channel**.
-1. Click on **Webhooks** menu item.
-1. Click the **Create Webhook** button and fill in the name of the bot to post the messages. Optionally, edit the avatar.
-1. Note the URL from the **WEBHOOK URL** field.
-1. Click the **Save** button.
+1. Select **Integrations**.
+1. If there are no existing webhooks, select **Create Webhook**. Otherwise, select **View Webhooks** then **New Webhook**.
+1. Enter the name of the bot to post the message.
+1. Optional. Edit the avatar.
+1. Copy the URL from the **WEBHOOK URL** field.
+1. Select **Save**.
## Configure created webhook in GitLab
diff --git a/doc/user/project/integrations/github.md b/doc/user/project/integrations/github.md
index 9f1ea3796c6..c07142d6edf 100644
--- a/doc/user/project/integrations/github.md
+++ b/doc/user/project/integrations/github.md
@@ -6,8 +6,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# GitHub project integration **(PREMIUM)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/3836) in GitLab 10.6.
-
You can update GitHub with pipeline status updates from GitLab.
This integration can help you if you use GitLab for CI/CD.
@@ -46,8 +44,7 @@ to configure pipelines to run for open pull requests.
### Static or dynamic status check names
-> - Introduced in GitLab 11.5 with static status check names as an opt-in option.
-> - [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/9931) in GitLab 12.4 to make static status check names the default behavior for new projects.
+> [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/9931) in GitLab 12.4 to make static status check names the default behavior for new projects.
A status check name can be static or dynamic:
diff --git a/doc/user/project/integrations/gitlab_slack_application.md b/doc/user/project/integrations/gitlab_slack_application.md
index 0d8ea636eba..0a685ad0efb 100644
--- a/doc/user/project/integrations/gitlab_slack_application.md
+++ b/doc/user/project/integrations/gitlab_slack_application.md
@@ -6,9 +6,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# GitLab Slack application **(FREE SAAS)**
-> - Introduced in GitLab 9.4.
-> - Distributed to Slack App Directory in GitLab 10.2.
-
NOTE:
The GitLab Slack application is only configurable for GitLab.com. It will **not**
work for on-premises installations where you can configure the
diff --git a/doc/user/project/integrations/hangouts_chat.md b/doc/user/project/integrations/hangouts_chat.md
index 7a96bb74e3f..fbfa7d914a5 100644
--- a/doc/user/project/integrations/hangouts_chat.md
+++ b/doc/user/project/integrations/hangouts_chat.md
@@ -6,8 +6,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Google Chat integration **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/43756) in GitLab 11.2.
-
Integrate your project to send notifications from GitLab to a
room of your choice in [Google Chat](https://chat.google.com/) (former Google
Hangouts).
diff --git a/doc/user/project/integrations/overview.md b/doc/user/project/integrations/overview.md
index 819c17c12fd..5b83df9b22e 100644
--- a/doc/user/project/integrations/overview.md
+++ b/doc/user/project/integrations/overview.md
@@ -51,7 +51,7 @@ Click on the service links to see further configuration instructions and details
| [Mattermost slash commands](mattermost_slash_commands.md) | Perform common tasks with slash commands. | **{dotted-circle}** No |
| [Microsoft Teams notifications](microsoft_teams.md) | Receive event notifications. | **{dotted-circle}** No |
| Packagist | Keep your PHP dependencies updated on Packagist. | **{check-circle}** Yes |
-| Pipelines emails | Send the pipeline status to a list of recipients by email. | **{dotted-circle}** No |
+| [Pipelines emails](pipeline_status_emails.md) | Send the pipeline status to a list of recipients by email. | **{dotted-circle}** No |
| [Pivotal Tracker](pivotal_tracker.md) | Add commit messages as comments to Pivotal Tracker stories. | **{dotted-circle}** No |
| [Prometheus](prometheus.md) | Monitor application metrics. | **{dotted-circle}** No |
| Pushover | Get real-time notifications on your device. | **{dotted-circle}** No |
diff --git a/doc/user/project/integrations/pipeline_status_emails.md b/doc/user/project/integrations/pipeline_status_emails.md
new file mode 100644
index 00000000000..742ab977090
--- /dev/null
+++ b/doc/user/project/integrations/pipeline_status_emails.md
@@ -0,0 +1,23 @@
+---
+stage: Ecosystem
+group: Integrations
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
+---
+
+# Pipeline status emails **(FREE)**
+
+You can send notifications about pipeline status changes in a group or
+project to a list of email addresses.
+
+## Enable pipeline status email notifications
+
+To enable pipeline status emails:
+
+1. In your project or group, on the left sidebar, select **Settings > Integrations**.
+1. Select **Pipeline status emails**.
+1. Ensure the **Active** checkbox is selected.
+1. In **Recipients**, enter a comma-separated list of email addresses.
+1. Optional. To receive notifications for broken pipelines only, select
+ **Notify only broken pipelines**.
+1. Select the branches to send notifications for.
+1. Select **Save changes**.
diff --git a/doc/user/project/integrations/prometheus.md b/doc/user/project/integrations/prometheus.md
index 680f787c83c..de7ac6782d6 100644
--- a/doc/user/project/integrations/prometheus.md
+++ b/doc/user/project/integrations/prometheus.md
@@ -6,8 +6,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Prometheus integration **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/8935) in GitLab 9.0.
-
GitLab offers powerful integration with [Prometheus](https://prometheus.io) for
monitoring key metrics of your apps, directly in GitLab.
Metrics for each environment are retrieved from Prometheus, and then displayed
@@ -41,10 +39,9 @@ See [Prometheus cluster integration](../../clusters/integrations.md#prometheus-c
Integration with Prometheus requires the following:
-1. GitLab 9.0 or higher
-1. Prometheus must be configured to collect one of the [supported metrics](prometheus_library/index.md)
-1. Each metric must be have a label to indicate the environment
-1. GitLab must have network connectivity to the Prometheus server
+- Prometheus must be configured to collect one of the [supported metrics](prometheus_library/index.md)
+- Each metric must have a label to indicate the environment
+- GitLab must have network connectivity to the Prometheus server
#### Getting started
@@ -113,9 +110,6 @@ can use only one:
## Determining the performance impact of a merge
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/10408) in GitLab 9.2.
-> - GitLab 9.3 added the [numeric comparison](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/27439) of the 30 minute averages.
-
Developers can view the performance impact of their changes in the merge
request workflow. This feature requires [Kubernetes](prometheus_library/kubernetes.md) metrics.
diff --git a/doc/user/project/integrations/prometheus_library/cloudwatch.md b/doc/user/project/integrations/prometheus_library/cloudwatch.md
index b35ebacbd31..a07abf26fba 100644
--- a/doc/user/project/integrations/prometheus_library/cloudwatch.md
+++ b/doc/user/project/integrations/prometheus_library/cloudwatch.md
@@ -4,7 +4,13 @@ group: Monitor
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# Monitoring AWS resources **(FREE)**
+# Monitoring AWS resources (DEPRECATED) **(FREE)**
+
+> [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541) in GitLab 14.7.
+
+WARNING:
+This feature is in its end-of-life process. It is [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541)
+for use in GitLab 14.7, and is planned for removal in GitLab 15.0.
GitLab supports automatically detecting and monitoring AWS resources, starting
with the [Elastic Load Balancer](https://aws.amazon.com/elasticloadbalancing/) (ELB).
diff --git a/doc/user/project/integrations/prometheus_library/haproxy.md b/doc/user/project/integrations/prometheus_library/haproxy.md
index 11b74c35a74..97f69d65412 100644
--- a/doc/user/project/integrations/prometheus_library/haproxy.md
+++ b/doc/user/project/integrations/prometheus_library/haproxy.md
@@ -4,9 +4,13 @@ group: Monitor
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# Monitoring HAProxy **(FREE)**
+# Monitoring HAProxy (DEPRECATED) **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/12621) in GitLab 9.4
+> [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541) in GitLab 14.7.
+
+WARNING:
+This feature is in its end-of-life process. It is [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541)
+for use in GitLab 14.7, and is planned for removal in GitLab 15.0.
GitLab has support for automatically detecting and monitoring HAProxy. This is provided by leveraging the [HAProxy Exporter](https://github.com/prometheus/haproxy_exporter), which translates HAProxy statistics into a Prometheus readable form.
diff --git a/doc/user/project/integrations/prometheus_library/index.md b/doc/user/project/integrations/prometheus_library/index.md
index fe74ea6834b..a5fc398e558 100644
--- a/doc/user/project/integrations/prometheus_library/index.md
+++ b/doc/user/project/integrations/prometheus_library/index.md
@@ -4,9 +4,13 @@ group: Monitor
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# Prometheus Metrics library **(FREE)**
+# Prometheus Metrics library (DEPRECATED) **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/8935) in GitLab 9.0.
+> [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541) in GitLab 14.7.
+
+WARNING:
+This feature is in its end-of-life process. It is [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541)
+for use in GitLab 14.7, and is planned for removal in GitLab 15.0.
GitLab offers automatic detection of select [Prometheus exporters](https://prometheus.io/docs/instrumenting/exporters/).
diff --git a/doc/user/project/integrations/prometheus_library/kubernetes.md b/doc/user/project/integrations/prometheus_library/kubernetes.md
index 429df7f7e27..26d006adeb9 100644
--- a/doc/user/project/integrations/prometheus_library/kubernetes.md
+++ b/doc/user/project/integrations/prometheus_library/kubernetes.md
@@ -4,9 +4,13 @@ group: Monitor
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# Monitoring Kubernetes **(FREE)**
+# Monitoring Kubernetes (DEPRECATED) **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/8935) in GitLab 9.0.
+> [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541) in GitLab 14.7.
+
+WARNING:
+This feature is in its end-of-life process. It is [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541)
+for use in GitLab 14.7, and is planned for removal in GitLab 15.0.
GitLab has support for automatically detecting and monitoring Kubernetes metrics.
@@ -44,8 +48,6 @@ Instead, the [Deployment](https://kubernetes.io/docs/concepts/workloads/controll
## Displaying Canary metrics **(PREMIUM)**
-> Introduced in [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15201).
-
GitLab also gathers Kubernetes metrics for [canary deployments](../../canary_deployments.md), allowing easy comparison between the current deployed version and the canary.
These metrics expect the [Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) or [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/) name to begin with `$CI_ENVIRONMENT_SLUG-canary`, to isolate the canary metrics.
diff --git a/doc/user/project/integrations/prometheus_library/nginx.md b/doc/user/project/integrations/prometheus_library/nginx.md
index 3f888a89b1b..ad89543e9a6 100644
--- a/doc/user/project/integrations/prometheus_library/nginx.md
+++ b/doc/user/project/integrations/prometheus_library/nginx.md
@@ -4,9 +4,13 @@ group: Monitor
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# Monitoring NGINX **(FREE)**
+# Monitoring NGINX (DEPRECATED) **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/12621) in GitLab 9.4
+> [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541) in GitLab 14.7.
+
+WARNING:
+This feature is in its end-of-life process. It is [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541)
+for use in GitLab 14.7, and is planned for removal in GitLab 15.0.
GitLab has support for automatically detecting and monitoring NGINX. This is provided by leveraging the [NGINX VTS exporter](https://github.com/hnlq715/nginx-vts-exporter), which translates [VTS statistics](https://github.com/vozlt/nginx-module-vts) into a Prometheus readable form.
diff --git a/doc/user/project/integrations/prometheus_library/nginx_ingress.md b/doc/user/project/integrations/prometheus_library/nginx_ingress.md
index 6478011b730..03bf9258659 100644
--- a/doc/user/project/integrations/prometheus_library/nginx_ingress.md
+++ b/doc/user/project/integrations/prometheus_library/nginx_ingress.md
@@ -4,9 +4,13 @@ group: Monitor
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# Monitoring NGINX Ingress Controller **(FREE)**
+# Monitoring NGINX Ingress Controller (DEPRECATED) **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/22133) in GitLab 11.7.
+> [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541) in GitLab 14.7.
+
+WARNING:
+This feature is in its end-of-life process. It is [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541)
+for use in GitLab 14.7, and is planned for removal in GitLab 15.0.
GitLab has support for automatically detecting and monitoring the Kubernetes NGINX Ingress controller. This is provided by leveraging the built-in Prometheus metrics included with Kubernetes NGINX Ingress controller [version 0.16.0](https://github.com/kubernetes/ingress-nginx/blob/master/Changelog.md#0160) onward.
diff --git a/doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md b/doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md
index 6bdd2c64dcf..89c174f8fb9 100644
--- a/doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md
+++ b/doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md
@@ -4,9 +4,13 @@ group: Monitor
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# Monitoring NGINX Ingress Controller with VTS metrics **(FREE)**
+# Monitoring NGINX Ingress Controller with VTS metrics (DEPRECATED) **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13438) in GitLab 9.5.
+> [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541) in GitLab 14.7.
+
+WARNING:
+This feature is in its end-of-life process. It is [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/346541)
+for use in GitLab 14.7, and is planned for removal in GitLab 15.0.
NOTE:
[NGINX Ingress version 0.16](nginx_ingress.md) and above have built-in Prometheus metrics, which are different than the VTS based metrics.
diff --git a/doc/user/project/integrations/slack.md b/doc/user/project/integrations/slack.md
index 87f38c3482b..870554100b7 100644
--- a/doc/user/project/integrations/slack.md
+++ b/doc/user/project/integrations/slack.md
@@ -59,20 +59,20 @@ Your Slack team now starts receiving GitLab event notifications as configured.
The following triggers are available for Slack notifications:
-| Trigger name | Trigger event |
-| ------------------------ | ------------------------------------------------------ |
-| **Push** | A push to the repository. |
-| **Issue** | An issue is created, updated, or closed. |
-| **Confidential issue** | A confidential issue is created, updated, or closed. |
-| **Merge request** | A merge request is created, updated, or merged. |
-| **Note** | A comment is added. |
-| **Confidential note** | A confidential note is added. |
-| **Tag push** | A new tag is pushed to the repository. |
-| **Pipeline** | A pipeline status changed. |
-| **Wiki page** | A wiki page is created or updated. |
-| **Deployment** | A deployment starts or finishes. |
-| **Alert** | A new, unique alert is recorded. |
-| **Vulnerability** | **(ULTIMATE)** A new, unique vulnerability is recorded. |
+| Trigger name | Trigger event |
+|--------------------------------------------------------------------------|------------------------------------------------------|
+| **Push** | A push to the repository. |
+| **Issue** | An issue is created, updated, or closed. |
+| **Confidential issue** | A confidential issue is created, updated, or closed. |
+| **Merge request** | A merge request is created, updated, or merged. |
+| **Note** | A comment is added. |
+| **Confidential note** | A confidential note is added. |
+| **Tag push** | A new tag is pushed to the repository. |
+| **Pipeline** | A pipeline status changed. |
+| **Wiki page** | A wiki page is created or updated. |
+| **Deployment** | A deployment starts or finishes. |
+| **Alert** | A new, unique alert is recorded. |
+| [**Vulnerability**](../../application_security/vulnerabilities/index.md) | A new, unique vulnerability is recorded. |
## Troubleshooting
diff --git a/doc/user/project/integrations/webhooks.md b/doc/user/project/integrations/webhooks.md
index e0405955d3d..8bc2b51276a 100644
--- a/doc/user/project/integrations/webhooks.md
+++ b/doc/user/project/integrations/webhooks.md
@@ -21,11 +21,10 @@ you can use webhooks to:
every time an issue is created for a specific project or group in GitLab.
- [Automatically assign labels to merge requests](https://about.gitlab.com/blog/2016/08/19/applying-gitlab-labels-automatically/).
-You can configure your GitLab project or [group](#group-webhooks) to trigger
-a percent-encoded webhook URL when an event occurs. For example, when new code
-is pushed or a new issue is created.
-The webhook listens for specific [events](#events) and
-GitLab sends a POST request with data to the webhook URL.
+You can configure your GitLab project or [group](#group-webhooks) to trigger a
+[percent-encoded](https://developer.mozilla.org/en-US/docs/Glossary/percent-encoding) webhook URL
+when an event occurs. For example, when new code is pushed or a new issue is created. The webhook
+listens for specific [events](#events) and GitLab sends a POST request with data to the webhook URL.
Usually, you set up your own [webhook receiver](#create-an-example-webhook-receiver)
to receive information from GitLab and send it to another app, according to your requirements.
@@ -55,7 +54,7 @@ You can configure a webhook for a group or a project.
1. In your project or group, on the left sidebar, select **Settings > Webhooks**.
1. In **URL**, enter the URL of the webhook endpoint.
- The URL must be percentage-encoded, if necessary.
+ The URL must be percent-encoded if it contains one or more special characters.
1. In **Secret token**, enter the [secret token](#validate-payloads-by-using-a-secret-token) to validate payloads.
1. In the **Trigger** section, select the [events](webhook_events.md) to trigger the webhook.
1. Optional. Clear the **Enable SSL verification** checkbox to disable [SSL verification](#verify-an-ssl-certificate).
@@ -135,8 +134,6 @@ in your GitLab projects.
## Filter push events by branch
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/20338) in GitLab 11.3.
-
Push events can be filtered by branch using a branch name or wildcard pattern
to limit which push events are sent to your webhook endpoint. By default,
all push events are sent to your webhook endpoint. You can configure branch filtering
@@ -159,8 +156,6 @@ GitLab webhooks, keep in mind the following:
## How image URLs are displayed in the webhook body
-> Introduced in GitLab 11.2.
-
Relative image references are rewritten to use an absolute URL
in the body of a webhook.
For example, if an image, merge request, comment, or wiki page includes the
diff --git a/doc/user/project/issues/img/issue_board.png b/doc/user/project/issues/img/issue_board.png
deleted file mode 100644
index dd40740aec5..00000000000
--- a/doc/user/project/issues/img/issue_board.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/issues/managing_issues.md b/doc/user/project/issues/managing_issues.md
index 1a23902514a..d120df82dbf 100644
--- a/doc/user/project/issues/managing_issues.md
+++ b/doc/user/project/issues/managing_issues.md
@@ -22,7 +22,7 @@ You can create an issue in many ways in GitLab:
- [From another issue](#from-another-issue)
- [From an issue board](#from-an-issue-board)
- [By sending an email](#by-sending-an-email)
-- Using a URL with prefilled fields
+- [Using a URL with prefilled values](#using-a-url-with-prefilled-values)
- [Using Service Desk](#using-service-desk)
### From a project
@@ -639,6 +639,9 @@ You can then see the issue's status in the issues list and the epic tree.
After an issue is closed, its health status can't be edited and the **Edit** button becomes disabled
until the issue is reopened.
+You can also set and clear health statuses using the `/health_status` and `/clear_health_status`
+[quick actions](../quick_actions.md#issues-merge-requests-and-epics).
+
## Publish an issue **(ULTIMATE)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30906) in GitLab 13.1.
diff --git a/doc/user/project/labels.md b/doc/user/project/labels.md
index 8874512f9c3..7ccc39eeb8b 100644
--- a/doc/user/project/labels.md
+++ b/doc/user/project/labels.md
@@ -90,9 +90,10 @@ label section of the right sidebar of an issue or a merge request:
color value for a specific color.
1. Click **Create**.
-Once created, you can edit a label by clicking the pencil (**{pencil}**), or delete
-a label by clicking the three dots (**{ellipsis_v}**) next to the **Subscribe** button
-and selecting **Delete**.
+To edit a label after you create it, select (**{pencil}**).
+
+To delete a project label, select (**{ellipsis_v}**) next to the **Subscribe** button
+and select **Delete** or select **Delete** when you edit a label.
WARNING:
If you delete a label, it is permanently deleted. All references to the label are removed from the system and you cannot undo the deletion.
diff --git a/doc/user/project/members/index.md b/doc/user/project/members/index.md
index 283576fb4e9..2dc29f5d725 100644
--- a/doc/user/project/members/index.md
+++ b/doc/user/project/members/index.md
@@ -1,6 +1,6 @@
---
stage: Manage
-group: Access
+group: Authentication & Authorization
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
@@ -211,7 +211,7 @@ Instead of adding users one by one, you can [share a project with an entire grou
> - Enabled on GitLab.com.
> - Recommended for production use.
> - Replaces the existing form with buttons to open a modal window.
-> - To use in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enable-or-disable-modal-window). **(FREE SELF)**
+> - To use in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enable-or-disable-modal-window).
WARNING:
This feature might not be available to you. Check the **version history** note above for details.
diff --git a/doc/user/project/members/share_project_with_groups.md b/doc/user/project/members/share_project_with_groups.md
index 4c96c4d9f56..4e3bae2dc30 100644
--- a/doc/user/project/members/share_project_with_groups.md
+++ b/doc/user/project/members/share_project_with_groups.md
@@ -52,7 +52,7 @@ Administrators can share projects with any group in the system.
> - Enabled on GitLab.com.
> - Recommended for production use.
> - Replaces the existing form with buttons to open a modal window.
-> - To use in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enable-or-disable-modal-window). **(FREE SELF)**
+> - To use in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enable-or-disable-modal-window).
WARNING:
This feature might not be available to you. Check the **version history** note above for details.
diff --git a/doc/user/project/merge_requests/accessibility_testing.md b/doc/user/project/merge_requests/accessibility_testing.md
index 8f803f9207c..e67af8dc936 100644
--- a/doc/user/project/merge_requests/accessibility_testing.md
+++ b/doc/user/project/merge_requests/accessibility_testing.md
@@ -9,71 +9,69 @@ type: reference, howto
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/25144) in GitLab 12.8.
-If your application offers a web interface and you are using
-[GitLab CI/CD](../../../ci/index.md), you can quickly determine the accessibility
+If your application offers a web interface, you can use
+[GitLab CI/CD](../../../ci/index.md) to determine the accessibility
impact of pending code changes.
-## Overview
-
-GitLab uses [pa11y](https://pa11y.org/), a free and open source tool for
-measuring the accessibility of web sites, and has built a simple
+[Pa11y](https://pa11y.org/) is a free and open source tool for
+measuring the accessibility of web sites. GitLab integrates Pa11y into a
[CI job template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Verify/Accessibility.gitlab-ci.yml).
-This job outputs accessibility violations, warnings, and notices for each page
-analyzed to a file called `accessibility`.
+The `a11y` job analyzes a defined set of web pages and reports
+accessibility violations, warnings, and notices in a file named
+`accessibility`.
-From [GitLab 14.5](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73309), the version of `pa11y` uses
-[WCAG 2.1 rules](https://www.w3.org/TR/WCAG21/#new-features-in-wcag-2-1), which may report more issues.
+As of [GitLab 14.5](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73309), Pa11y uses
+[WCAG 2.1 rules](https://www.w3.org/TR/WCAG21/#new-features-in-wcag-2-1).
## Accessibility merge request widget
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/39425) in GitLab 13.0 behind the disabled [feature flag](../../../administration/feature_flags.md) `:accessibility_report_view`.
> - [Feature Flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/217372) in GitLab 13.1.
-In addition to the report artifact that is created, GitLab will also show the
-Accessibility Report in the merge request widget area:
+GitLab displays an **Accessibility Report** in the merge request widget area:
![Accessibility merge request widget](img/accessibility_mr_widget_v13_0.png)
-## Configure Accessibility Testing
-
-This example shows how to run [pa11y](https://pa11y.org/)
-on your code with GitLab CI/CD using the [GitLab Accessibility Docker image](https://gitlab.com/gitlab-org/ci-cd/accessibility).
+## Configure accessibility testing
-For GitLab 12.9 and later, to define the `a11y` job, you must
-[include](../../../ci/yaml/index.md#includetemplate) the
-[`Accessibility.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Verify/Accessibility.gitlab-ci.yml)
-included with your GitLab installation, as shown below.
+You can run Pa11y with GitLab CI/CD using the
+[GitLab Accessibility Docker image](https://gitlab.com/gitlab-org/ci-cd/accessibility).
-Add the following to your `.gitlab-ci.yml` file:
+To define the `a11y` job for GitLab 12.9 and later:
-```yaml
-stages:
- - accessibility
+1. [Include](../../../ci/yaml/index.md#includetemplate) the
+ [`Accessibility.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Verify/Accessibility.gitlab-ci.yml)
+ from your GitLab installation.
+1. Add the following configuration to your `.gitlab-ci.yml` file.
-variables:
- a11y_urls: "https://about.gitlab.com https://gitlab.com/users/sign_in"
+ ```yaml
+ stages:
+ - accessibility
+
+ variables:
+ a11y_urls: "https://about.gitlab.com https://gitlab.com/users/sign_in"
+
+ include:
+ - template: "Verify/Accessibility.gitlab-ci.yml"
+ ```
-include:
- - template: "Verify/Accessibility.gitlab-ci.yml"
-```
+1. Customize the `a11y_urls` variable to list the URLs of the web pages to test with Pa11y.
-creates an `a11y` job in your CI/CD pipeline, runs
-Pa11y against the web pages defined in `a11y_urls`, and builds an HTML report for each.
+The `a11y` job in your CI/CD pipeline generates these files:
-The report for each URL is saved as an artifact that can be [viewed directly in your browser](../../../ci/pipelines/job_artifacts.md#download-job-artifacts).
+- One HTML report per URL listed in the `a11y_urls` variable.
+- One file containing the collected report data. In GitLab versions 12.11 and later, this
+ file is named `gl-accessibility.json`. In GitLab versions 12.10 and earlier, this file
+ is named [`accessibility.json`](https://gitlab.com/gitlab-org/ci-cd/accessibility/-/merge_requests/9).
-A single `gl-accessibility.json` artifact is created and saved along with the individual HTML reports.
-It includes report data for all URLs scanned.
-
-NOTE:
-For GitLab 12.10 and earlier, the [artifact generated is named `accessibility.json`](https://gitlab.com/gitlab-org/ci-cd/accessibility/-/merge_requests/9).
+You can [view job artifacts in your browser](../../../ci/pipelines/job_artifacts.md#download-job-artifacts).
NOTE:
-For GitLab versions earlier than 12.9, you can use `include:remote` and use a
+For GitLab versions earlier than 12.9, use `include:remote` and
link to the [current template in the default branch](https://gitlab.com/gitlab-org/gitlab/-/raw/master/lib/gitlab/ci/templates/Verify/Accessibility.gitlab-ci.yml)
NOTE:
-The job definition provided by the template does not support Kubernetes yet.
+The job definition provided by the template does not support Kubernetes.
-It is not yet possible to pass configurations into Pa11y via CI configuration. To change anything,
-copy the template to your CI file and make the desired edits.
+You cannot pass configurations into Pa11y via CI configuration.
+To change the configuration, edit a copy of the template in your CI file.
diff --git a/doc/user/project/merge_requests/allow_collaboration.md b/doc/user/project/merge_requests/allow_collaboration.md
index 5d1a04e1fe0..b10d6597c1e 100644
--- a/doc/user/project/merge_requests/allow_collaboration.md
+++ b/doc/user/project/merge_requests/allow_collaboration.md
@@ -2,77 +2,99 @@
stage: Create
group: Code Review
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
-type: reference, howto
---
-# Allow collaboration on merge requests across forks **(FREE)**
+# Collaborate on merge requests across forks **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17395) in GitLab 10.6.
+When you open a merge request from your fork, you can allow upstream
+members to collaborate with you on your branch.
+When you enable this option, members who have permission to merge to the target branch get
+permission to write to the merge request's source branch.
-When a user opens a merge request from a fork, they are given the option to allow
-upstream members to collaborate with them on the source branch. This allows
-the members of the upstream project to make small fixes or rebase branches
-before merging, reducing the back and forth of accepting external contributions.
+The members of the upstream project can then make small fixes or rebase branches
+before merging.
This feature is available for merge requests across forked projects that are
publicly accessible.
-When enabled for a merge request, members with merge access to the target
-branch of the project is granted write permissions to the source branch
-of the merge request.
+## Allow commits from upstream members
-## Enabling commit edits from upstream members
+> Enabled by default in [GitLab 13.7 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/23308).
-In [GitLab 13.7 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/23308),
-this setting is enabled by default. It can be changed by users with the
-Developer [role](../../permissions.md) for the source project. After it's enabled,
-upstream members can retry the pipelines and jobs of the merge request:
+As the author of a merge request, you can allow commit edits from
+upstream members of the project you're contributing to:
1. While creating or editing a merge request, scroll to **Contribution** and
- then select the **Allow commits from members who can merge to the target branch**.
+ select the **Allow commits from members who can merge to the target branch**
checkbox.
1. Finish creating your merge request.
-After you create the merge request, the merge request widget displays a message:
-**Members who can merge are allowed to add commits.**
+After you create the merge request, the merge request widget displays the message
+**Members who can merge are allowed to add commits**. Upstream members can then
+commit directly to your branch, as well as retry the pipelines and jobs of the
+merge request.
-## Pushing to the fork as the upstream member
+## Prevent commits from upstream members
-If the creator of the merge request has enabled contributions from upstream
-members, you can push directly to the branch of the forked repository.
+As the author of a merge request, you can prevent commit edits from
+upstream members of the project you're contributing to:
-Assuming that:
+1. While creating or editing a merge request, scroll to **Contribution** and
+ clear the **Allow commits from members who can merge to the target branch**
+ checkbox.
+1. Finish creating your merge request.
+
+## Push to the fork as the upstream member
-- The forked project URL is `git@gitlab.com:thedude/awesome-project.git`.
-- The branch of the merge request is `update-docs`.
+You can push directly to the branch of the forked repository if:
-To find and work with the changes from the fork:
+- The author of the merge request has enabled contributions from upstream
+ members.
+- You have at least the [Developer role](../../permissions.md) in the
+ upstream project.
+
+In the following example:
+
+- The forked repository URL is `git@gitlab.com:contributor/forked-project.git`.
+- The branch of the merge request is `fork-branch`.
+
+To change or add a commit to the contributor's merge request:
1. Open the merge request page, and select the **Overview** tab.
-1. Scroll to the merge request widget, and select **Check out branch**:
- ![Check out branch button](img/commit-button_v13_12.png)
-1. In the modal window, select **{copy-to-clipboard}** (**Copy**) for step 1
- to copy the `git fetch` and `git checkout` instructions to your clipboard.
- Paste the commands (which look like this example) into your terminal:
+1. Scroll to the merge request widget, and select **Check out branch**.
+1. In the modal window, select **Copy** (**{copy-to-clipboard}**).
+1. In your terminal, navigate to your cloned version of the repository, and
+ paste the commands. For example:
```shell
- git fetch git@gitlab.com:thedude/awesome-project.git update-docs
- git checkout -b thedude-awesome-project-update-docs FETCH_HEAD
+ git fetch "git@gitlab.com:contributor/forked-project.git" 'fork-branch'
+ git checkout -b contributor/fork-branch' FETCH_HEAD
```
- These commands fetch the branch from the forked project, and create a local branch
- based off the fetched branch.
+ Those commands fetch the branch from the forked project, and create a local branch
+ for you to work on.
+
+1. Make your changes to your local copy of the branch, and then commit them.
+1. Push your local changes to the forked project. The following command pushes
+ the local branch `contributor/fork-branch` to the `fork-branch` branch of
+ the `git@gitlab.com:contributor/forked-project.git` repository:
-1. Make your changes to the local copy of the branch, and then commit them.
-1. In your terminal, push your local changes back up to the forked project. This
- command pushes the local branch `thedude-awesome-project-update-docs` to the
- `update-docs` branch of the `git@gitlab.com:thedude/awesome-project.git` repository:
+ ```shell
+ git push git@gitlab.com:contributor/forked-project.git contributor/fork-branch:fork-branch
+ ```
+
+ If you have amended or squashed any commits, you must force push. Proceed
+ with caution as this command rewrites the commit history:
```shell
- git push git@gitlab.com:thedude/awesome-project.git thedude-awesome-project-update-docs:update-docs
+ git push --force git@gitlab.com:contributor/forked-project.git contributor/fork-branch:fork-branch
```
- Note the colon (`:`) between the two branches.
+ Note the colon (`:`) between the two branches. The general scheme is:
+
+ ```shell
+ git push <forked_repository_git_url> <local_branch>:<fork_branch>
+ ```
## Troubleshooting
@@ -89,14 +111,3 @@ going back to the original project:
1. Create a group containing all the upstream members.
1. Go to the **Project information > Members** page in the forked project and invite the newly-created
group to the forked project.
-
-<!-- ## Troubleshooting
-Include any troubleshooting steps that you can foresee. If you know beforehand what issues
-one might have when setting this up, or when something is changed, or on upgrading, it's
-important to describe those, too. Think of things that may go wrong and include them here.
-This is important to minimize requests for support, and to avoid doc comments with
-questions that you know someone might ask.
-
-Each scenario can be a third-level heading, e.g. `### Getting error message X`.
-If you have none to add when creating a doc, leave this section in place
-but commented out to help encourage others to add to it in the future. -->
diff --git a/doc/user/project/merge_requests/approvals/rules.md b/doc/user/project/merge_requests/approvals/rules.md
index f4393b2b76d..129010010e7 100644
--- a/doc/user/project/merge_requests/approvals/rules.md
+++ b/doc/user/project/merge_requests/approvals/rules.md
@@ -1,8 +1,7 @@
---
stage: Create
group: Source Code
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: reference, concepts
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
# Merge request approval rules **(PREMIUM)**
@@ -146,8 +145,7 @@ approve in these ways:
### Code owners as eligible approvers **(PREMIUM)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7933) in GitLab 11.5.
-> - Moved to GitLab Premium in 13.9.
+> Moved to GitLab Premium in 13.9.
If you add [code owners](../../code_owners.md) to your repository, the owners of files
become eligible approvers in the project. To enable this merge request approval rule:
diff --git a/doc/user/project/merge_requests/approvals/settings.md b/doc/user/project/merge_requests/approvals/settings.md
index a6ca9423df0..1e1c8ccb241 100644
--- a/doc/user/project/merge_requests/approvals/settings.md
+++ b/doc/user/project/merge_requests/approvals/settings.md
@@ -1,8 +1,7 @@
---
stage: Create
group: Source Code
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: reference, concepts
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
# Merge request approval settings **(PREMIUM)**
@@ -32,8 +31,7 @@ In this section of general settings, you can configure the following settings:
## Prevent approval by author
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/3349) in GitLab 11.3.
-> - Moved to GitLab Premium in 13.9.
+> Moved to GitLab Premium in 13.9.
By default, the author of a merge request cannot approve it. To change this setting:
@@ -54,8 +52,7 @@ this setting, unless you configure one of these options:
## Prevent approvals by users who add commits
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/10441) in GitLab 11.10.
-> - Moved to GitLab Premium in 13.9.
+> Moved to GitLab Premium in 13.9.
By default, users who commit to a merge request can still approve it. At both
the project level or [instance level](../../../admin_area/merge_requests_approvals.md)
diff --git a/doc/user/project/merge_requests/browser_performance_testing.md b/doc/user/project/merge_requests/browser_performance_testing.md
index e59456e5b34..6668e1736cf 100644
--- a/doc/user/project/merge_requests/browser_performance_testing.md
+++ b/doc/user/project/merge_requests/browser_performance_testing.md
@@ -63,7 +63,7 @@ on your code by using GitLab CI/CD and [sitespeed.io](https://www.sitespeed.io)
using Docker-in-Docker.
1. First, set up GitLab Runner with a
- [Docker-in-Docker build](../../../ci/docker/using_docker_build.md#use-the-docker-executor-with-the-docker-image-docker-in-docker).
+ [Docker-in-Docker build](../../../ci/docker/using_docker_build.md#use-docker-in-docker).
1. Configure the default Browser Performance Testing CI/CD job as follows in your `.gitlab-ci.yml` file:
```yaml
diff --git a/doc/user/project/merge_requests/code_quality.md b/doc/user/project/merge_requests/code_quality.md
index b791bce5749..30d463efa69 100644
--- a/doc/user/project/merge_requests/code_quality.md
+++ b/doc/user/project/merge_requests/code_quality.md
@@ -2,13 +2,11 @@
stage: Secure
group: Static Analysis
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
-type: reference, howto
---
# Code Quality **(FREE)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1984) in GitLab 9.3.
-> - Made [available in all tiers](https://gitlab.com/gitlab-org/gitlab/-/issues/212499) in 13.2.
+> [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/212499) to GitLab Free in 13.2.
To ensure your project's code stays simple, readable, and easy to contribute to,
you can use [GitLab CI/CD](../../../ci/index.md) to analyze your source code quality.
@@ -32,8 +30,7 @@ Code Quality:
## Code Quality Widget
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1984) in GitLab 9.3.
-> - Made [available in all tiers](https://gitlab.com/gitlab-org/gitlab/-/issues/212499) in 13.2.
+> [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/212499) to GitLab Free in 13.2.
Going a step further, GitLab can show the Code Quality report right
in the merge request widget area if a report from the target branch is available to compare to:
@@ -69,11 +66,8 @@ the merge request's diff view displays an indicator next to lines with new Code
## Example configuration
This example shows how to run Code Quality on your code by using GitLab CI/CD and Docker.
-It requires GitLab 11.11 or later, and GitLab Runner 11.5 or later. If you are using
-GitLab 11.4 or earlier, you can view the deprecated job definitions in the
-[documentation archive](https://docs.gitlab.com/12.10/ee/user/project/merge_requests/code_quality.html#previous-job-definitions).
-- Using shared runners, the job should be configured For the [Docker-in-Docker workflow](../../../ci/docker/using_docker_build.md#use-the-docker-executor-with-the-docker-image-docker-in-docker).
+- Using shared runners, the job should be configured For the [Docker-in-Docker workflow](../../../ci/docker/using_docker_build.md#use-docker-in-docker).
- Using private runners, there is an [alternative configuration](#set-up-a-private-runner-for-code-quality-without-docker-in-docker) recommended for running Code Quality analysis more efficiently.
In either configuration, the runner must have enough disk space to handle generated Code Quality files. For example on the [GitLab project](https://gitlab.com/gitlab-org/gitlab) the files are approximately 7 GB.
@@ -232,7 +226,7 @@ are configured with `privileged=true`, and they do not expose `docker.sock` into
the job container. As a result, socket binding cannot be used to make `docker` available
in the context of the job script.
-[Docker-in-Docker](../../../ci/docker/using_docker_build.md#use-the-docker-executor-with-the-docker-image-docker-in-docker)
+[Docker-in-Docker](../../../ci/docker/using_docker_build.md#use-docker-in-docker)
was chosen as an operational decision by the runner team, instead of exposing `docker.sock`.
### Disabling the code quality job
diff --git a/doc/user/project/merge_requests/commit_templates.md b/doc/user/project/merge_requests/commit_templates.md
index bffb66755e0..0cc18d2117b 100644
--- a/doc/user/project/merge_requests/commit_templates.md
+++ b/doc/user/project/merge_requests/commit_templates.md
@@ -67,6 +67,8 @@ GitLab creates a squash commit message with this template:
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/20263) in GitLab 14.5.
> - [Added](https://gitlab.com/gitlab-org/gitlab/-/issues/346805) `first_commit` and `first_multiline_commit` variables in GitLab 14.6.
+> - [Added](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75639) `url`, `approved_by`, and `merged_by` variables in GitLab 14.7.
+> - [Added](https://gitlab.com/gitlab-org/gitlab/-/issues/20421) `co_authored_by` variable in GitLab 14.7.
Commit message templates support these variables:
@@ -80,8 +82,13 @@ Commit message templates support these variables:
| `%{reference}` | Reference to the merge request. | `group-name/project-name!72359` |
| `%{first_commit}` | Full message of the first commit in merge request diff. | `Update README.md` |
| `%{first_multiline_commit}` | Full message of the first commit that's not a merge commit and has more than one line in message body. Merge Request title if all commits aren't multiline. | `Update README.md`<br><br>`Improved project description in readme file.` |
+| `%{url}` | Full URL to the merge request. | `https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1` |
+| `%{approved_by}` | Line-separated list of the merge request approvers. This value is not updated until the first page refresh after an approval. | `Approved-by: Sidney Jones <sjones@example.com>` <br> `Approved-by: Zhang Wei <zwei@example.com>` |
+| `%{merged_by}` | User who merged the merge request. | `Alex Garcia <agarcia@example.com>` |
+| `%{co_authored_by}` | Names and emails of commit authors in a `Co-authored-by` Git commit trailer format. Limited to authors of 100 most recent commits in merge request. | `Co-authored-by: Zane Doe <zdoe@example.com>` <br> `Co-authored-by: Blake Smith <bsmith@example.com>` |
-Empty variables that are the only word in a line are removed, along with all newline characters preceding it.
+Any line containing only an empty variable is removed. If the line to be removed is both
+preceded and followed by an empty line, the preceding empty line is also removed.
## Related topics
diff --git a/doc/user/project/merge_requests/creating_merge_requests.md b/doc/user/project/merge_requests/creating_merge_requests.md
index 220049d9a88..6ee02238a22 100644
--- a/doc/user/project/merge_requests/creating_merge_requests.md
+++ b/doc/user/project/merge_requests/creating_merge_requests.md
@@ -2,7 +2,6 @@
stage: Create
group: Code Review
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
-type: howto
description: "How to create merge requests in GitLab."
disqus_identifier: 'https://docs.gitlab.com/ee/gitlab-basics/add-merge-request.html'
---
@@ -78,7 +77,7 @@ You can create a merge request by running Git commands on your local machine.
```plaintext
...
- remote: To create a merge request for docs-new-merge-request, visit:
+ remote: To create a merge request for my-new-branch, visit:
remote: https://gitlab.example.com/my-group/my-project/merge_requests/new?merge_request%5Bsource_branch%5D=my-new-branch
```
@@ -111,10 +110,6 @@ For more information, [see the forking workflow documentation](../repository/for
## By sending an email
-> The format of the generated email address changed in GitLab 11.7.
- The earlier format is still supported so existing aliases
- or contacts still work.
-
You can create a merge request by sending an email message to GitLab.
The merge request target branch is the project's default branch.
@@ -142,8 +137,6 @@ A merge request is created.
### Add attachments when creating a merge request by email
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/22723) in GitLab 11.5.
-
You can add commits to a merge request by adding
patches as attachments to the email. All attachments with a filename
ending in `.patch` are considered patches and are processed
diff --git a/doc/user/project/merge_requests/fail_fast_testing.md b/doc/user/project/merge_requests/fail_fast_testing.md
index 0d87a04461b..3cb50195f5a 100644
--- a/doc/user/project/merge_requests/fail_fast_testing.md
+++ b/doc/user/project/merge_requests/fail_fast_testing.md
@@ -42,7 +42,7 @@ This template requires:
- A project built in Rails that uses RSpec for testing.
- CI/CD configured to:
- Use a Docker image with Ruby available.
- - Use [Pipelines for merge requests](../../../ci/pipelines/merge_request_pipelines.md#configure-pipelines-for-merge-requests)
+ - Use [Pipelines for merge requests](../../../ci/pipelines/merge_request_pipelines.md#prerequisites)
- [Pipelines for Merged Results](../../../ci/pipelines/pipelines_for_merged_results.md#enable-pipelines-for-merged-results)
enabled in the project settings.
- A Docker image with Ruby available. The template uses `image: ruby:2.6` by default, but you [can override](../../../ci/yaml/includes.md#override-included-configuration-values) this.
diff --git a/doc/user/project/merge_requests/fast_forward_merge.md b/doc/user/project/merge_requests/fast_forward_merge.md
index 078f8048900..cd65fe20e66 100644
--- a/doc/user/project/merge_requests/fast_forward_merge.md
+++ b/doc/user/project/merge_requests/fast_forward_merge.md
@@ -38,9 +38,12 @@ Now, when you visit the merge request page, you can accept it
If a fast-forward merge is not possible but a conflict free rebase is possible,
a rebase button is offered.
+You can also rebase without running a CI/CD pipeline.
+[Introduced in](https://gitlab.com/gitlab-org/gitlab/-/issues/118825) GitLab 14.7.
+
The rebase action is also available as a [quick action command: `/rebase`](../../../topics/git/git_rebase.md#rebase-from-the-gitlab-ui).
-![Fast forward merge request](img/ff_merge_rebase.png)
+![Fast forward merge request](img/ff_merge_rebase_v14_7.png)
If the target branch is ahead of the source branch and a conflict free rebase is
not possible, you need to rebase the
@@ -48,6 +51,13 @@ source branch locally before you can do a fast-forward merge.
![Fast forward merge rebase locally](img/ff_merge_rebase_locally.png)
+## Fast-forward merges prevent squashing commits
+
+If your project has enabled fast-forward merges, to merge cleanly, the code in a
+merge request cannot use [squashing during merge](squash_and_merge.md). Squashing
+is available only when accepting a merge request. Rebasing may be required before
+squashing, even though squashing can itself be considered equivalent to rebasing.
+
<!-- ## Troubleshooting
Include any troubleshooting steps that you can foresee. If you know beforehand what issues
diff --git a/doc/user/project/merge_requests/getting_started.md b/doc/user/project/merge_requests/getting_started.md
index 323b7505190..ec509f58723 100644
--- a/doc/user/project/merge_requests/getting_started.md
+++ b/doc/user/project/merge_requests/getting_started.md
@@ -2,7 +2,6 @@
stage: Create
group: Code Review
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
-type: index, reference
description: "Getting started with merge requests."
---
@@ -92,8 +91,7 @@ and the merge request is added to their
#### Multiple assignees **(PREMIUM)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/2004) in GitLab 11.11.
-> - Moved to GitLab Premium in 13.9
+> Moved to GitLab Premium in 13.9
Multiple people often review merge requests at the same time.
GitLab allows you to have multiple assignees for merge requests
@@ -207,7 +205,7 @@ This improvement is [tracked as a follow-up](https://gitlab.com/gitlab-org/gitla
- When working locally in your branch, add multiple commits and only push when
you're done, so GitLab runs only one pipeline for all the commits pushed
- at once. By doing so, you save pipeline minutes.
+ at once. By doing so, you save CI/CD minutes.
- Delete feature branches on merge or after merging them to keep your repository clean.
- Take one thing at a time and ship the smallest changes possible. By doing so,
reviews are faster and your changes are less prone to errors.
diff --git a/doc/user/project/merge_requests/img/commit-button_v13_12.png b/doc/user/project/merge_requests/img/commit-button_v13_12.png
deleted file mode 100644
index be154b9e60b..00000000000
--- a/doc/user/project/merge_requests/img/commit-button_v13_12.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/merge_requests/img/ff_merge_rebase.png b/doc/user/project/merge_requests/img/ff_merge_rebase.png
deleted file mode 100644
index f6139f189ce..00000000000
--- a/doc/user/project/merge_requests/img/ff_merge_rebase.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/merge_requests/img/ff_merge_rebase_v14_7.png b/doc/user/project/merge_requests/img/ff_merge_rebase_v14_7.png
new file mode 100644
index 00000000000..3c845d277e4
--- /dev/null
+++ b/doc/user/project/merge_requests/img/ff_merge_rebase_v14_7.png
Binary files differ
diff --git a/doc/user/project/merge_requests/img/squash_edit_form.png b/doc/user/project/merge_requests/img/squash_edit_form.png
deleted file mode 100644
index 326d74b68cb..00000000000
--- a/doc/user/project/merge_requests/img/squash_edit_form.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/merge_requests/img/squash_mr_commits.png b/doc/user/project/merge_requests/img/squash_mr_commits.png
deleted file mode 100644
index dfc1ee38435..00000000000
--- a/doc/user/project/merge_requests/img/squash_mr_commits.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/merge_requests/img/squash_mr_message.png b/doc/user/project/merge_requests/img/squash_mr_message.png
deleted file mode 100644
index 8c7dc7886f7..00000000000
--- a/doc/user/project/merge_requests/img/squash_mr_message.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/merge_requests/img/squash_mr_widget.png b/doc/user/project/merge_requests/img/squash_mr_widget.png
deleted file mode 100644
index 81334ca9758..00000000000
--- a/doc/user/project/merge_requests/img/squash_mr_widget.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/merge_requests/img/squash_squashed_commit.png b/doc/user/project/merge_requests/img/squash_squashed_commit.png
deleted file mode 100644
index 7def5339d8a..00000000000
--- a/doc/user/project/merge_requests/img/squash_squashed_commit.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/merge_requests/load_performance_testing.md b/doc/user/project/merge_requests/load_performance_testing.md
index 7b157aa94d8..40859c6b572 100644
--- a/doc/user/project/merge_requests/load_performance_testing.md
+++ b/doc/user/project/merge_requests/load_performance_testing.md
@@ -103,7 +103,7 @@ job.
An example configuration workflow:
1. Set up GitLab Runner to run Docker containers, like the
- [Docker-in-Docker workflow](../../../ci/docker/using_docker_build.md#use-the-docker-executor-with-the-docker-image-docker-in-docker).
+ [Docker-in-Docker workflow](../../../ci/docker/using_docker_build.md#use-docker-in-docker).
1. Configure the default Load Performance Testing CI/CD job in your `.gitlab-ci.yml` file.
You need to include the template and configure it with CI/CD variables:
diff --git a/doc/user/project/merge_requests/revert_changes.md b/doc/user/project/merge_requests/revert_changes.md
index e6fb619d365..6441ccb73fe 100644
--- a/doc/user/project/merge_requests/revert_changes.md
+++ b/doc/user/project/merge_requests/revert_changes.md
@@ -2,7 +2,6 @@
stage: Create
group: Code Review
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
-type: reference, concepts
---
# Revert changes **(FREE)**
@@ -13,11 +12,6 @@ by clicking the **Revert** button in merge requests and commit details.
## Revert a merge request
NOTE:
-The **Revert** button is available only for merge requests
-created in GitLab 8.5 and later. However, you can still revert a merge request
-by reverting the merge commit from the list of Commits page.
-
-NOTE:
The **Revert** button is shown only for projects that use the
merge method "Merge Commit", which can be set under the project's
**Settings > General > Merge request**. [Fast-forward commits](fast_forward_merge.md)
diff --git a/doc/user/project/merge_requests/reviews/img/suggestions_custom_commit_messages_v13_1.jpg b/doc/user/project/merge_requests/reviews/img/suggestions_custom_commit_messages_v13_1.jpg
deleted file mode 100644
index a4c9df0ebb9..00000000000
--- a/doc/user/project/merge_requests/reviews/img/suggestions_custom_commit_messages_v13_1.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/merge_requests/reviews/img/suggestions_custom_commit_messages_v14_7.png b/doc/user/project/merge_requests/reviews/img/suggestions_custom_commit_messages_v14_7.png
new file mode 100644
index 00000000000..2805ef19f2d
--- /dev/null
+++ b/doc/user/project/merge_requests/reviews/img/suggestions_custom_commit_messages_v14_7.png
Binary files differ
diff --git a/doc/user/project/merge_requests/reviews/suggestions.md b/doc/user/project/merge_requests/reviews/suggestions.md
index c25b9e15974..1b2a35ba139 100644
--- a/doc/user/project/merge_requests/reviews/suggestions.md
+++ b/doc/user/project/merge_requests/reviews/suggestions.md
@@ -89,7 +89,7 @@ These commit messages can be customized to follow any guidelines you might have.
To do so, expand the **Merge requests** tab within your project's **General**
settings and change the **Merge suggestions** text:
-![Custom commit message for applied suggestions](img/suggestions_custom_commit_messages_v13_1.jpg)
+![Custom commit message for applied suggestions](img/suggestions_custom_commit_messages_v14_7.png)
You can also use following variables besides static text:
diff --git a/doc/user/project/merge_requests/squash_and_merge.md b/doc/user/project/merge_requests/squash_and_merge.md
index 3fe82fb8ef3..f90296e9626 100644
--- a/doc/user/project/merge_requests/squash_and_merge.md
+++ b/doc/user/project/merge_requests/squash_and_merge.md
@@ -2,131 +2,79 @@
stage: Create
group: Source Code
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
-type: reference, concepts
---
# Squash and merge **(FREE)**
-> - [Moved](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18956) from GitLab Premium to GitLab Free in 11.0.
+As you work on a feature branch, you often create small, self-contained commits. These small commits
+help describe the process of building a feature, but can clutter your Git history after the feature
+is finished. As you finish features, you can combine these commits and ensure a cleaner merge history
+in your Git repository by using the _squash and merge_ strategy.
-With squash and merge you can combine all your merge request's commits into one
-and retain a clean history.
+- Small commits are joined together, making it simpler to [revert all parts of a change](revert_changes.md).
+- When the single commit merges into the target branch, it retains the full commit history.
+- Your base branch remains clean, and contains meaningful commit messages.
-Squashing lets you tidy up the commit history of a branch when accepting a merge
-request. It applies all of the changes in the merge request as a single commit,
-and then merges that commit using the merge method set for the project.
+Each time a branch merges into your base branch, up to two commits are added:
-In other words, squashing a merge request turns a long list of commits:
+- The single commit created by squashing the commits from the branch.
+- A merge commit, unless you have [enabled fast-forward merges](fast_forward_merge.md#enabling-fast-forward-merges)
+ in your project. Fast-forward merges disable both merge commits and squashing.
-![List of commits from a merge request](img/squash_mr_commits.png)
+By default, squashed commits contain the following metadata:
-Into a single commit on merge:
+- Message: Description of the squash commit, or a customized message
+- Author: User that created the merge request
+- Committer: User who initiated the squash
-![A squashed commit followed by a merge commit](img/squash_squashed_commit.png)
+Project owners can [create new default messages](commit_templates.md) for all
+squash commits and merge commits.
-NOTE:
-The squashed commit in this example is followed by a merge commit, because the merge method for this repository uses a merge commit. You can disable merge commits in
-**Project Settings > General > Merge requests > Merge method > Fast-forward merge**.
+## Set default squash options for a merge request
-The squashed commit's default commit message is taken from the merge request title.
-You can [edit the default message for squash commits](commit_templates.md).
+Users with permission to create or edit a merge request can set the default squash options
+for a merge request. To do this:
-It can also be customized before merging a merge request.
+1. Go to the merge request and select **Edit**.
+1. Select or clear the **Squash commits when merge request is accepted** checkbox.
+1. Select **Save changes**.
-![A squash commit message editor](img/squash_mr_message.png)
+## Squash commits in a merge request
-Squashing also works with the fast-forward merge strategy, see [squashing and fast-forward merge](#squash-and-fast-forward-merge) for more details.
+If your project allows you to select squashing options for merge requests, to
+squash the commits as part of the merge process:
-## Use cases
+1. Go to the merge request, and scroll to the merge request reports section that
+ contains the **Merge** button.
+1. Ensure the **Squash commits** checkbox is selected. This checkbox doesn't display
+ if the project's squashing option is set to either **Do not allow** or **Require**.
+1. Optional. To modify either the squash commit message or the merge commit message
+ (depending on your project configuration), select **Modify commit messages**.
+1. When the merge request is ready to merge, select **Merge**.
-When working on a feature branch, you sometimes want to commit your current
-progress, but don't really care about the commit messages. Those 'work in
-progress commits' don't necessarily contain important information and as such
-you'd rather not include them in your target branch.
+## Configure squash options for a project
-With squash and merge, when the merge request is ready to be merged,
-all you have to do is enable squashing before you press merge to join
-the commits in the merge request into a single commit.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/17613) in GitLab 13.2 [with a flag](../../../administration/feature_flags.md) named `squash_options`, disabled by default.
+> - [Enabled on GitLab.com and self-managed by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/39382) in GitLab 13.3.
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/232536) in GitLab 13.8. Feature flag `squash_options` removed.
-This way, the history of your base branch remains clean with
-meaningful commit messages and:
+To configure the default squashing behavior for all merge requests in your project:
-- It's simpler to [revert](revert_changes.md) if necessary.
-- The merged branch retains the full commit history.
-
-## Enable squash for a merge request
-
-Anyone who can create or edit a merge request can choose for it to be squashed
-on the merge request form. Users can select or clear the checkbox when they
-create the merge request:
-
-![Squash commits checkbox on edit form](img/squash_edit_form.png)
-
-After the merge request is submitted, Squash and Merge can still be enabled or disabled
-by editing the merge request description:
-
-1. Scroll to the top of the merge request page and click **Edit**.
-1. Scroll down to the end of the merge request form and select the checkbox
-**Squash commits when merge request is accepted**.
-
-This setting can then be overridden at the time of accepting the merge request.
-At the end of the merge request widget, next to the **Merge** button, the **Squash commits** checkbox
-can be either selected or unselected:
-
-![Squash commits checkbox on accept merge request form](img/squash_mr_widget.png)
-
-Note that Squash and Merge might not be available depending on the project's configuration
-for [Squash Commit Options](#squash-commits-options).
-
-## Commit metadata for squashed commits
-
-The squashed commit has the following metadata:
-
-- Message: the message of the squash commit, or a customized message.
-- Author: the author of the merge request.
-- Committer: the user who initiated the squash.
-
-## Squash and fast-forward merge
-
-When a project has the [fast-forward merge setting enabled](fast_forward_merge.md#enabling-fast-forward-merges), the merge
-request must be able to be fast-forwarded without squashing in order to squash
-it. This is because squashing is only available when accepting a merge request,
-so a merge request may need to be rebased before squashing, even though
-squashing can itself be considered equivalent to rebasing.
-
-## Squash commits options
-
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/17613) in GitLab 13.2.
-> - Deployed behind a feature flag, disabled by default.
-> - [Enabled by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/39382) in GitLab 13.3.
-> - Enabled on GitLab.com.
-> - Can be enabled per project.
-> - Recommended for production use.
-
-With Squash Commits Options you can configure the behavior of Squash and Merge for your project.
-To set it up, navigate to your project's **Settings > General** and expand **Merge requests**.
-You can choose from these options, which affect existing and new merge requests
-submitted to your project:
-
-- **Do not allow**: users cannot use Squash and Merge to squash all the commits immediately before
- merging. The checkbox to enable or disable it is unchecked and hidden from the users.
-- **Allow**: users can enable Squash and Merge on a merge request basis.
- The checkbox is unchecked (disabled) by default, but and the user is allowed to enable it.
-- **Encourage**: users can enable Squash and Merge on a merge request basis.
- The checkbox is checked (enabled) by default to encourage its use, but the user is allowed to
- disable it.
-- **Require**: Squash and Merge is enabled for all merge requests, so it is always performed.
- The checkbox to enable or disable it is checked and hidden from the users.
-
-The Squash and Merge checkbox is displayed when you create a merge request and when you edit the description of an existing one, except when Squash Commit Options is set to **Do not allow** or **Require**.
-
-NOTE:
-If your project is set to **Do not allow** Squash and Merge, the users still have the option to
-squash commits locally through the command line and force-push to their remote branch before merging.
+1. On the top bar, select **Menu > Projects** and find your project.
+1. On the left sidebar, select **Settings > General**.
+1. Expand **Merge requests**.
+1. In the **Squash commits when merging** section, select your desired behavior:
+ - **Do not allow**: Squashing is never performed, and the option is not displayed.
+ - **Allow**: Squashing is allowed, but deselected by default.
+ - **Encourage**: Squashing is allowed and selected by default, but can be disabled.
+ - **Require**: Squashing is always performed. While merge requests display the option
+ to squash, users cannot change it.
+1. Select **Save changes**.
## Related topics
-- [Commit message templates](commit_templates.md).
+- [Commit message templates](commit_templates.md)
+- [Fast-forward merges](fast_forward_merge.md)
<!-- ## Troubleshooting
diff --git a/doc/user/project/merge_requests/versions.md b/doc/user/project/merge_requests/versions.md
index 796ffc7866c..236ec64a4dc 100644
--- a/doc/user/project/merge_requests/versions.md
+++ b/doc/user/project/merge_requests/versions.md
@@ -39,8 +39,6 @@ changes appears as a system note.
## Find the merge request that introduced a change
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/2383) in GitLab 10.5.
-
When viewing the commit details page, GitLab links to the merge request (or
merge requests, if it's in more than one) containing that commit.
diff --git a/doc/user/project/pages/getting_started/pages_new_project_template.md b/doc/user/project/pages/getting_started/pages_new_project_template.md
index f52f64626ac..cee10675a62 100644
--- a/doc/user/project/pages/getting_started/pages_new_project_template.md
+++ b/doc/user/project/pages/getting_started/pages_new_project_template.md
@@ -1,5 +1,4 @@
---
-type: reference, howto
stage: Release
group: Release
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
@@ -7,8 +6,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Create a Pages website from a template **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/47857) in GitLab 11.8.
-
GitLab provides templates for the most popular Static Site Generators (SSGs).
You can create a new project from a template and run the CI/CD pipeline to generate a Pages website.
diff --git a/doc/user/project/pages/img/icons/lock.png b/doc/user/project/pages/img/icons/lock.png
deleted file mode 100644
index f7f32fded45..00000000000
--- a/doc/user/project/pages/img/icons/lock.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/pages/introduction.md b/doc/user/project/pages/introduction.md
index 59a2f0c2eba..10fbc57fa0b 100644
--- a/doc/user/project/pages/introduction.md
+++ b/doc/user/project/pages/introduction.md
@@ -214,8 +214,6 @@ needing to compress files on-demand.
### Resolving ambiguous URLs
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-pages/-/issues/95) in GitLab 11.8
-
GitLab Pages makes assumptions about which files to serve when receiving a
request for a URL that does not include an extension.
diff --git a/doc/user/project/pages/pages_access_control.md b/doc/user/project/pages/pages_access_control.md
index 4b4d479e3e9..002b234f561 100644
--- a/doc/user/project/pages/pages_access_control.md
+++ b/doc/user/project/pages/pages_access_control.md
@@ -1,5 +1,4 @@
---
-type: reference, howto
stage: Release
group: Release
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
@@ -7,8 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# GitLab Pages access control **(FREE)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/33422) in GitLab 11.5.
-> - Available on GitLab.com in GitLab 12.4.
+> Available on GitLab.com in GitLab 12.4.
You can enable Pages access control on your project
if your administrator has [enabled the access control feature](../../../administration/pages/index.md#access-control)
diff --git a/doc/user/project/protected_branches.md b/doc/user/project/protected_branches.md
index a4e94c03e86..6c18fc158f5 100644
--- a/doc/user/project/protected_branches.md
+++ b/doc/user/project/protected_branches.md
@@ -1,8 +1,7 @@
---
stage: Create
group: Source Code
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: reference, howto
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
# Protected branches **(FREE)**
@@ -76,8 +75,6 @@ The protected branch displays in the list of protected branches.
## Create a protected branch
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/53361) in GitLab 11.9.
-
Users with the Developer or higher [role](../permissions.md) can create a protected branch.
Prerequisites:
diff --git a/doc/user/project/protected_tags.md b/doc/user/project/protected_tags.md
index b4e13aebdb2..e4743c82a3b 100644
--- a/doc/user/project/protected_tags.md
+++ b/doc/user/project/protected_tags.md
@@ -1,14 +1,11 @@
---
stage: Create
group: Source Code
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: reference, howto
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
# Protected tags **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/10356) in GitLab 9.1.
-
Protected tags:
- Allow control over who has permission to create tags.
diff --git a/doc/user/project/push_options.md b/doc/user/project/push_options.md
index 15df69ee68c..846d4732533 100644
--- a/doc/user/project/push_options.md
+++ b/doc/user/project/push_options.md
@@ -1,14 +1,11 @@
---
stage: Create
group: Source Code
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: reference, howto
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
# Push Options **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15643) in GitLab 11.7.
-
GitLab supports using client-side [Git push options](https://git-scm.com/docs/git-push#Documentation/git-push.txt--oltoptiongt)
to perform various actions at the same time as pushing changes. Additionally, [Push Rules](../../push_rules/push_rules.md) offer server-side control and enforcement options.
diff --git a/doc/user/project/quick_actions.md b/doc/user/project/quick_actions.md
index 75a5a2a6a4f..21a080de404 100644
--- a/doc/user/project/quick_actions.md
+++ b/doc/user/project/quick_actions.md
@@ -47,76 +47,78 @@ threads. Some quick actions might not be available to all subscription tiers.
<!-- Keep this table sorted alphabetically -->
-| Command | Issue | Merge request | Epic | Action |
-|:--------------------------------------|:-----------------------|:-----------------------|:-----------------------|:-------|
-| `/add_contacts email1 email2` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Add one or more [CRM contacts](../crm/index.md) ([introduced in GitLab 14.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73413)). |
-| `/approve` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Approve the merge request. |
-| `/assign @user1 @user2` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Assign one or more users. |
-| `/assign me` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Assign yourself. |
-| `/assign_reviewer @user1 @user2` or `/reviewer @user1 @user2` or `/request_review @user1 @user2` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Assign one or more users as reviewers. |
-| `/assign_reviewer me` or `/reviewer me` or `/request_review me` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Assign yourself as a reviewer. |
-| `/award :emoji:` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Toggle emoji award. |
-| `/child_epic <epic>` | **{dotted-circle}** No | **{dotted-circle}** No | **{check-circle}** Yes | Add child epic to `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic ([introduced in GitLab 12.0](https://gitlab.com/gitlab-org/gitlab/-/issues/7330)). |
-| `/clear_weight` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Clear weight. |
-| `/clone <path/to/project> [--with_notes]`| **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Clone the issue to given project, or the current one if no arguments are given ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9421) in GitLab 13.7). Copies as much data as possible as long as the target project contains equivalent labels, milestones, and so on. Does not copy comments or system notes unless `--with_notes` is provided as an argument. |
-| `/close` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Close. |
-| `/confidential` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Make confidential. |
-| `/copy_metadata <!merge_request>` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Copy labels and milestone from another merge request in the project. |
-| `/copy_metadata <#issue>` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Copy labels and milestone from another issue in the project. |
-| `/create_merge_request <branch name>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Create a new merge request starting from the current issue. |
-| `/done` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Mark to do as done. |
-| `/draft` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Toggle the draft status. |
-| `/due <date>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Set due date. Examples of valid `<date>` include `in 2 days`, `this Friday` and `December 31st`. |
-| `/duplicate <#issue>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Close this issue and mark as a duplicate of another issue. **(FREE)** Also, mark both as related. |
-| `/epic <epic>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Add to epic `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic. |
-| `/estimate <time>` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Set time estimate. For example, `/estimate 1mo 2w 3d 4h 5m`. Learn more about [time tracking](time_tracking.md). |
-| `/invite_email email1 email2` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Add up to six email participants. This action is behind feature flag `issue_email_participants` and is not yet supported in issue templates. |
-| `/iteration *iteration:"iteration name"` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Set iteration. For example, to set the `Late in July` iteration: `/iteration *iteration:"Late in July"` ([introduced in GitLab 13.1](https://gitlab.com/gitlab-org/gitlab/-/issues/196795)). |
-| `/label ~label1 ~label2` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Add one or more labels. Label names can also start without a tilde (`~`), but mixed syntax is not supported. |
-| `/lock` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Lock the discussions. |
-| `/merge` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Merge changes. Depending on the project setting, this may be [when the pipeline succeeds](merge_requests/merge_when_pipeline_succeeds.md), or adding to a [Merge Train](../../ci/pipelines/merge_trains.md). |
-| `/milestone %milestone` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Set milestone. |
-| `/move <path/to/project>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Move this issue to another project. |
-| `/parent_epic <epic>` | **{dotted-circle}** No | **{dotted-circle}** No | **{check-circle}** Yes | Set parent epic to `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic ([introduced in GitLab 12.1](https://gitlab.com/gitlab-org/gitlab/-/issues/10556)). |
-| `/promote` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Promote issue to epic. |
-| `/promote_to_incident` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Promote issue to incident ([introduced in GitLab 14.5](https://gitlab.com/gitlab-org/gitlab/-/issues/296787)). |
-| `/publish` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Publish issue to an associated [Status Page](../../operations/incident_management/status_page.md) ([Introduced in GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30906)) |
-| `/reassign @user1 @user2` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Replace current assignees with those specified. |
-| `/reassign_reviewer @user1 @user2` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Replace current reviewers with those specified. |
-| `/rebase` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Rebase source branch. This schedules a background task that attempts to rebase the changes in the source branch on the latest commit of the target branch. If `/rebase` is used, `/merge` is ignored to avoid a race condition where the source branch is merged or deleted before it is rebased. If there are merge conflicts, GitLab displays a message that a rebase cannot be scheduled. Rebase failures are displayed with the merge request status. |
-| `/relabel ~label1 ~label2` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Replace current labels with those specified. |
-| `/relate #issue1 #issue2` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Mark issues as related. |
-| `/remove_child_epic <epic>` | **{dotted-circle}** No | **{dotted-circle}** No | **{check-circle}** Yes | Remove child epic from `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic ([introduced in GitLab 12.0](https://gitlab.com/gitlab-org/gitlab/-/issues/7330)). |
-| `/remove_contacts email1 email2` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Remove one or more [CRM contacts](../crm/index.md) ([introduced in GitLab 14.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73413)). |
-| `/remove_due_date` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Remove due date. |
-| `/remove_epic` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Remove from epic. |
-| `/remove_estimate` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Remove time estimate. |
-| `/remove_iteration` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Remove iteration ([introduced in GitLab 13.1](https://gitlab.com/gitlab-org/gitlab/-/issues/196795)). |
-| `/remove_milestone` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Remove milestone. |
-| `/remove_parent_epic` | **{dotted-circle}** No | **{dotted-circle}** No | **{check-circle}** Yes | Remove parent epic from epic ([introduced in GitLab 12.1](https://gitlab.com/gitlab-org/gitlab/-/issues/10556)). |
-| `/remove_time_spent` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Remove time spent. |
-| `/remove_zoom` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Remove Zoom meeting from this issue ([introduced in GitLab 12.4](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16609)). |
-| `/reopen` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Reopen. |
-| `/severity <severity>` | **{check-circle}** Yes | **{check-circle}** No | **{check-circle}** No | Set the severity. Options for `<severity>` are `S1` ... `S4`, `critical`, `high`, `medium`, `low`, `unknown`. [Introduced in GitLab 14.2](https://gitlab.com/gitlab-org/gitlab/-/issues/334045). |
-| `/shrug <comment>` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Append the comment with `¯\_(ツ)_/¯`. |
-| `/spend <time> [<date>]` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Add or subtract spent time. Optionally, specify the date that time was spent on. For example, `/spend 1mo 2w 3d 4h 5m 2018-08-26` or `/spend -1h 30m`. Learn more about [time tracking](time_tracking.md). |
-| `/submit_review` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Submit a pending review ([introduced in GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/issues/8041)). |
-| `/subscribe` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Subscribe to notifications. |
-| `/tableflip <comment>` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Append the comment with `(╯°□°)╯︵ ┻━┻`. |
-| `/target_branch <local branch name>` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Set target branch. |
-| `/title <new title>` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Change title. |
-| `/todo` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Add a to-do item. |
-| `/unapprove` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Unapprove the merge request. ([introduced in GitLab 14.3](https://gitlab.com/gitlab-org/gitlab/-/issues/8103)|
-| `/unassign @user1 @user2` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Remove specific assignees. |
-| `/unassign` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Remove all assignees. |
-| `/unassign_reviewer @user1 @user2` or `/remove_reviewer @user1 @user2` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Remove specific reviewers. |
-| `/unassign_reviewer` or `/remove_reviewer` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Remove all reviewers. |
-| `/unlabel ~label1 ~label2` or `/remove_label ~label1 ~label2` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Remove specified labels. |
-| `/unlabel` or `/remove_label` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Remove all labels. |
-| `/unlock` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Unlock the discussions. |
-| `/unsubscribe` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Unsubscribe from notifications. |
-| `/weight <value>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Set weight. Valid options for `<value>` include `0`, `1`, `2`, and so on. |
-| `/zoom <Zoom URL>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Add Zoom meeting to this issue ([introduced in GitLab 12.4](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16609)). |
+| Command | Issue | Merge request | Epic | Action |
+|:-------------------------------------------------------------------------------------------------|:-----------------------|:-----------------------|:-----------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `/add_contacts email1 email2` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Add one or more [CRM contacts](../crm/index.md) ([introduced in GitLab 14.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73413)). |
+| `/approve` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Approve the merge request. |
+| `/assign @user1 @user2` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Assign one or more users. |
+| `/assign me` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Assign yourself. |
+| `/assign_reviewer @user1 @user2` or `/reviewer @user1 @user2` or `/request_review @user1 @user2` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Assign one or more users as reviewers. |
+| `/assign_reviewer me` or `/reviewer me` or `/request_review me` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Assign yourself as a reviewer. |
+| `/award :emoji:` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Toggle emoji award. |
+| `/child_epic <epic>` | **{dotted-circle}** No | **{dotted-circle}** No | **{check-circle}** Yes | Add child epic to `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic ([introduced in GitLab 12.0](https://gitlab.com/gitlab-org/gitlab/-/issues/7330)). |
+| `/clear_health_status` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Clear [health status](issues/managing_issues.md#health-status) ([introduced in GitLab 14.7](https://gitlab.com/gitlab-org/gitlab/-/issues/213814)). |
+| `/clear_weight` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Clear weight. |
+| `/clone <path/to/project> [--with_notes]` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Clone the issue to given project, or the current one if no arguments are given ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9421) in GitLab 13.7). Copies as much data as possible as long as the target project contains equivalent labels, milestones, and so on. Does not copy comments or system notes unless `--with_notes` is provided as an argument. |
+| `/close` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Close. |
+| `/confidential` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Make confidential. |
+| `/copy_metadata <!merge_request>` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Copy labels and milestone from another merge request in the project. |
+| `/copy_metadata <#issue>` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Copy labels and milestone from another issue in the project. |
+| `/create_merge_request <branch name>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Create a new merge request starting from the current issue. |
+| `/done` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Mark to do as done. |
+| `/draft` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Toggle the draft status. |
+| `/due <date>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Set due date. Examples of valid `<date>` include `in 2 days`, `this Friday` and `December 31st`. |
+| `/duplicate <#issue>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Close this issue and mark as a duplicate of another issue. **(FREE)** Also, mark both as related. |
+| `/epic <epic>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Add to epic `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic. |
+| `/estimate <time>` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Set time estimate. For example, `/estimate 1mo 2w 3d 4h 5m`. Learn more about [time tracking](time_tracking.md). |
+| `/health_status <value>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Set [health status](issues/managing_issues.md#health-status). Valid options for `<value>` are `on_track`, `needs_attention`, and `at_risk` ([introduced in GitLab 14.7](https://gitlab.com/gitlab-org/gitlab/-/issues/213814)). |
+| `/invite_email email1 email2` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Add up to six email participants. This action is behind feature flag `issue_email_participants` and is not yet supported in issue templates. |
+| `/iteration *iteration:"iteration name"` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Set iteration. For example, to set the `Late in July` iteration: `/iteration *iteration:"Late in July"` ([introduced in GitLab 13.1](https://gitlab.com/gitlab-org/gitlab/-/issues/196795)). |
+| `/label ~label1 ~label2` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Add one or more labels. Label names can also start without a tilde (`~`), but mixed syntax is not supported. |
+| `/lock` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Lock the discussions. |
+| `/merge` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Merge changes. Depending on the project setting, this may be [when the pipeline succeeds](merge_requests/merge_when_pipeline_succeeds.md), or adding to a [Merge Train](../../ci/pipelines/merge_trains.md). |
+| `/milestone %milestone` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Set milestone. |
+| `/move <path/to/project>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Move this issue to another project. |
+| `/parent_epic <epic>` | **{dotted-circle}** No | **{dotted-circle}** No | **{check-circle}** Yes | Set parent epic to `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic ([introduced in GitLab 12.1](https://gitlab.com/gitlab-org/gitlab/-/issues/10556)). |
+| `/promote` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Promote issue to epic. |
+| `/promote_to_incident` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Promote issue to incident ([introduced in GitLab 14.5](https://gitlab.com/gitlab-org/gitlab/-/issues/296787)). |
+| `/publish` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Publish issue to an associated [Status Page](../../operations/incident_management/status_page.md) ([Introduced in GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30906)) |
+| `/reassign @user1 @user2` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Replace current assignees with those specified. |
+| `/reassign_reviewer @user1 @user2` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Replace current reviewers with those specified. |
+| `/rebase` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Rebase source branch. This schedules a background task that attempts to rebase the changes in the source branch on the latest commit of the target branch. If `/rebase` is used, `/merge` is ignored to avoid a race condition where the source branch is merged or deleted before it is rebased. If there are merge conflicts, GitLab displays a message that a rebase cannot be scheduled. Rebase failures are displayed with the merge request status. |
+| `/relabel ~label1 ~label2` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Replace current labels with those specified. |
+| `/relate #issue1 #issue2` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Mark issues as related. |
+| `/remove_child_epic <epic>` | **{dotted-circle}** No | **{dotted-circle}** No | **{check-circle}** Yes | Remove child epic from `<epic>`. The `<epic>` value should be in the format of `&epic`, `group&epic`, or a URL to an epic ([introduced in GitLab 12.0](https://gitlab.com/gitlab-org/gitlab/-/issues/7330)). |
+| `/remove_contacts email1 email2` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Remove one or more [CRM contacts](../crm/index.md) ([introduced in GitLab 14.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73413)). |
+| `/remove_due_date` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Remove due date. |
+| `/remove_epic` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Remove from epic. |
+| `/remove_estimate` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Remove time estimate. |
+| `/remove_iteration` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Remove iteration ([introduced in GitLab 13.1](https://gitlab.com/gitlab-org/gitlab/-/issues/196795)). |
+| `/remove_milestone` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Remove milestone. |
+| `/remove_parent_epic` | **{dotted-circle}** No | **{dotted-circle}** No | **{check-circle}** Yes | Remove parent epic from epic ([introduced in GitLab 12.1](https://gitlab.com/gitlab-org/gitlab/-/issues/10556)). |
+| `/remove_time_spent` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Remove time spent. |
+| `/remove_zoom` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Remove Zoom meeting from this issue ([introduced in GitLab 12.4](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16609)). |
+| `/reopen` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Reopen. |
+| `/severity <severity>` | **{check-circle}** Yes | **{check-circle}** No | **{check-circle}** No | Set the severity. Options for `<severity>` are `S1` ... `S4`, `critical`, `high`, `medium`, `low`, `unknown`. [Introduced in GitLab 14.2](https://gitlab.com/gitlab-org/gitlab/-/issues/334045). |
+| `/shrug <comment>` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Append the comment with `¯\_(ツ)_/¯`. |
+| `/spend <time> [<date>]` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Add or subtract spent time. Optionally, specify the date that time was spent on. For example, `/spend 1mo 2w 3d 4h 5m 2018-08-26` or `/spend -1h 30m`. Learn more about [time tracking](time_tracking.md). |
+| `/submit_review` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Submit a pending review ([introduced in GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/issues/8041)). |
+| `/subscribe` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Subscribe to notifications. |
+| `/tableflip <comment>` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Append the comment with `(╯°□°)╯︵ ┻━┻`. |
+| `/target_branch <local branch name>` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Set target branch. |
+| `/title <new title>` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Change title. |
+| `/todo` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Add a to-do item. |
+| `/unapprove` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Unapprove the merge request. ([introduced in GitLab 14.3](https://gitlab.com/gitlab-org/gitlab/-/issues/8103) |
+| `/unassign @user1 @user2` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Remove specific assignees. |
+| `/unassign` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Remove all assignees. |
+| `/unassign_reviewer @user1 @user2` or `/remove_reviewer @user1 @user2` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Remove specific reviewers. |
+| `/unassign_reviewer` or `/remove_reviewer` | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No | Remove all reviewers. |
+| `/unlabel ~label1 ~label2` or `/remove_label ~label1 ~label2` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Remove specified labels. |
+| `/unlabel` or `/remove_label` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Remove all labels. |
+| `/unlock` | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | Unlock the discussions. |
+| `/unsubscribe` | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | Unsubscribe from notifications. |
+| `/weight <value>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Set weight. Valid options for `<value>` include `0`, `1`, `2`, and so on. |
+| `/zoom <Zoom URL>` | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No | Add Zoom meeting to this issue ([introduced in GitLab 12.4](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16609)). |
## Commit messages
diff --git a/doc/user/project/releases/img/feature_count_v14_6.png b/doc/user/project/releases/img/feature_count_v14_6.png
index 0b1a0552631..f254ff4c78a 100644
--- a/doc/user/project/releases/img/feature_count_v14_6.png
+++ b/doc/user/project/releases/img/feature_count_v14_6.png
Binary files differ
diff --git a/doc/user/project/releases/index.md b/doc/user/project/releases/index.md
index 239e6c9cea8..747b41d07f2 100644
--- a/doc/user/project/releases/index.md
+++ b/doc/user/project/releases/index.md
@@ -6,8 +6,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Releases **(FREE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/41766) in GitLab 11.7.
-
In GitLab, a release enables you to create a snapshot of your project for your users, including
installation packages and release notes. You can create a GitLab release on any branch. Creating a
release also creates a [Git tag](https://git-scm.com/book/en/v2/Git-Basics-Tagging) to mark the
@@ -134,6 +132,10 @@ release creation, the release job fails.
To create a release when you push a Git tag, or when you add a Git tag
in the UI by going to **Repository > Tags**:
+NOTE:
+Do not provide **Release notes** when you create the Git tag in the UI.
+Providing release notes creates a release, resulting in the pipeline failing.
+
```yaml
release_job:
stage: release
@@ -829,3 +831,7 @@ Make sure that the user or a service/bot account is allowed to
[create the protected tag](../protected_tags.md#configuring-protected-tags) too.
See [the release permissions](#release-permissions) for more information.
+
+### Note about storage
+
+Note that the feature is built on top of Git tags, so virtually no extra data is needed besides to create the release itself. Additional assets and the release evidence that is automatically generated consume storage.
diff --git a/doc/user/project/repository/gpg_signed_commits/index.md b/doc/user/project/repository/gpg_signed_commits/index.md
index 27767f8d325..0c5c0d5fa7c 100644
--- a/doc/user/project/repository/gpg_signed_commits/index.md
+++ b/doc/user/project/repository/gpg_signed_commits/index.md
@@ -1,15 +1,11 @@
---
stage: Create
group: Source Code
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: concepts, howto
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
# Signing commits with GPG **(FREE)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9546) in GitLab 9.5.
-> - Subkeys support was added in GitLab 10.1.
-
You can use a GPG key to sign Git commits made in a GitLab repository. Signed
commits are labeled **Verified** if the identity of the committer can be
verified. To verify the identity of a committer, GitLab requires their public
diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md
index 54e9470892c..6ece6e3e4e0 100644
--- a/doc/user/project/repository/index.md
+++ b/doc/user/project/repository/index.md
@@ -2,7 +2,6 @@
stage: Create
group: Source Code
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
-type: concepts, howto
---
# Repository **(FREE)**
@@ -66,8 +65,6 @@ Alternatively, you can clone directly into a code editor.
### Clone and open in Apple Xcode
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/45820) in GitLab 11.0.
-
Projects that contain a `.xcodeproj` or `.xcworkspace` directory can be cloned
into Xcode on macOS.
@@ -98,8 +95,7 @@ Visual Studio Code:
## Download the code in a repository
-> - Support for directory download was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/24704) in GitLab 11.11.
-> - 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.
+> 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.
diff --git a/doc/user/project/repository/jupyter_notebooks/index.md b/doc/user/project/repository/jupyter_notebooks/index.md
index d040cc93876..5646f478d9f 100644
--- a/doc/user/project/repository/jupyter_notebooks/index.md
+++ b/doc/user/project/repository/jupyter_notebooks/index.md
@@ -25,10 +25,10 @@ GitLab.
## Cleaner diffs
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/epics/6589) in GitLab 14.5 [with a flag](../../../../administration/feature_flags.md) named `jupyter_clean_diffs`. Disabled by default.
+> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/6589) in GitLab 14.5 [with a flag](../../../../administration/feature_flags.md) named `jupyter_clean_diffs`. Enabled by default.
FLAG:
-On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to [enable the feature flag](../../../../administration/feature_flags.md) named `jupyter_clean_diffs`.
+On self-managed GitLab, by default this feature is available. To hide the feature, ask an administrator to [disable the feature flag](../../../../administration/feature_flags.md) named `jupyter_clean_diffs`.
On GitLab.com, this feature is available.
When commits include changes to Jupyter Notebook files, GitLab:
diff --git a/doc/user/project/repository/mirror/index.md b/doc/user/project/repository/mirror/index.md
index 361c0902ebf..c8950d39f28 100644
--- a/doc/user/project/repository/mirror/index.md
+++ b/doc/user/project/repository/mirror/index.md
@@ -213,7 +213,7 @@ used in commits. To fix this problem, either:
### Deadline Exceeded
-When upgrading to GitLab 11.11.8 or later, a change in how usernames are represented means that you
+When upgrading GitLab, a change in how usernames are represented means that you
must update your mirroring username and password to ensure that `%40` characters are replaced with `@`.
### Connection blocked because server only allows public key authentication
diff --git a/doc/user/project/repository/mirror/push.md b/doc/user/project/repository/mirror/push.md
index 498b8d063a9..221616bd41c 100644
--- a/doc/user/project/repository/mirror/push.md
+++ b/doc/user/project/repository/mirror/push.md
@@ -79,7 +79,7 @@ To configure a mirror from GitLab to GitHub:
1. Create a [GitHub personal access token](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)
with `public_repo` selected.
1. Enter a **Git repository URL** with this format:
- `https://<your_github_username>@github.com/<your_github_group>/<your_github_project>.git`.
+ `https://<your_access_token>@github.com/<github_group>/<github_project>.git`.
1. For **Password**, enter your GitHub personal access token.
1. Select **Mirror repository**.
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 0094e0b1b15..23cead7e8a7 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
@@ -127,7 +127,8 @@ To purge files from a GitLab repository:
Refer to the Git [`replace`](https://git-scm.com/book/en/v2/Git-Tools-Replace) documentation for information on how this works.
-1. Run a [repository cleanup](#repository-cleanup).
+1. Wait at least 30 minutes, because the repository cleanup process only processes object older than 30 minutes.
+1. Run [repository cleanup](#repository-cleanup).
## Repository cleanup
diff --git a/doc/user/project/repository/web_editor.md b/doc/user/project/repository/web_editor.md
index ba105a970a7..4165c1828cc 100644
--- a/doc/user/project/repository/web_editor.md
+++ b/doc/user/project/repository/web_editor.md
@@ -2,7 +2,6 @@
stage: Create
group: Editor
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
-type: howto
---
# GitLab Web Editor **(FREE)**
@@ -118,8 +117,6 @@ There are multiple ways to create a branch from the GitLab web interface.
### Create a new branch from an issue
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/2808) in GitLab 8.6.
-
If your development workflow requires an issue for every merge
request, you can create a branch directly from the issue to speed the process up.
The new branch, and later its merge request, are marked as related to this issue.
diff --git a/doc/user/project/requirements/index.md b/doc/user/project/requirements/index.md
index 294e493dfe9..5fe0e0ef3a2 100644
--- a/doc/user/project/requirements/index.md
+++ b/doc/user/project/requirements/index.md
@@ -17,10 +17,6 @@ In 14.4, Requirements was moved under **Issues**.
With requirements, you can set criteria to check your products against. They can be based on users,
stakeholders, system, software, or anything else you find important to capture.
-INFO:
-Meet your compliance needs with requirements in GitLab.
-[Try Ultimate free for 30 days](https://about.gitlab.com/free-trial/index.html?glm_source=docs.gitlab.com&glm_content=u-project-requirements-docs).
-
A requirement is an artifact in GitLab which describes the specific behavior of your product.
Requirements are long-lived and don't disappear unless manually cleared.
diff --git a/doc/user/project/service_desk.md b/doc/user/project/service_desk.md
index 072d685bde4..1b30f14ac90 100644
--- a/doc/user/project/service_desk.md
+++ b/doc/user/project/service_desk.md
@@ -184,9 +184,10 @@ NOTE:
On GitLab.com a custom mailbox is already configured with `contact-project+%{key}@incoming.gitlab.com` as the email address, you can still configure the
[custom suffix](#configuring-a-custom-email-address-suffix) in project settings.
-Using the `service_desk_email` configuration, you can customize the mailbox
-used by Service Desk. This allows you to have a separate email address for
-Service Desk by also configuring a [custom suffix](#configuring-a-custom-email-address-suffix)
+Service Desk uses the [incoming email](../../administration/incoming_email.md)
+configuration by default. However, by using the `service_desk_email` configuration,
+you can customize the mailbox used by Service Desk. This allows you to have
+a separate email address for Service Desk by also configuring a [custom suffix](#configuring-a-custom-email-address-suffix)
in project settings.
The `address` must include the `+%{key}` placeholder within the 'user'
@@ -194,10 +195,10 @@ portion of the address, before the `@`. This is used to identify the project
where the issue should be created.
NOTE:
-The `service_desk_email` and `incoming_email` configurations should
-always use separate mailboxes. This is important, because emails picked from
-`service_desk_email` mailbox are processed by a different worker and it would
-not recognize `incoming_email` emails.
+When configuring a custom mailbox, the `service_desk_email` and `incoming_email`
+configurations must always use separate mailboxes. This is important, because
+emails picked from `service_desk_email` mailbox are processed by a different
+worker and it would not recognize `incoming_email` emails.
To configure a custom mailbox for Service Desk with IMAP, add the following snippets to your configuration file in full:
diff --git a/doc/user/project/settings/img/import_export_download_export.png b/doc/user/project/settings/img/import_export_download_export.png
deleted file mode 100644
index 62292e99e8e..00000000000
--- a/doc/user/project/settings/img/import_export_download_export.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/settings/img/import_export_export_button.png b/doc/user/project/settings/img/import_export_export_button.png
deleted file mode 100644
index 6f3663d64e8..00000000000
--- a/doc/user/project/settings/img/import_export_export_button.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/settings/img/import_export_mail_link.png b/doc/user/project/settings/img/import_export_mail_link.png
deleted file mode 100644
index 1bd9a071178..00000000000
--- a/doc/user/project/settings/img/import_export_mail_link.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/settings/img/import_export_new_project.png b/doc/user/project/settings/img/import_export_new_project.png
deleted file mode 100644
index 0e2365ecb68..00000000000
--- a/doc/user/project/settings/img/import_export_new_project.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/settings/img/import_export_select_file.png b/doc/user/project/settings/img/import_export_select_file.png
deleted file mode 100644
index 90a3e8d5c4e..00000000000
--- a/doc/user/project/settings/img/import_export_select_file.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md
index da0336d01ff..06bdf4ca14b 100644
--- a/doc/user/project/settings/import_export.md
+++ b/doc/user/project/settings/import_export.md
@@ -6,129 +6,69 @@ info: "To determine the technical writer assigned to the Stage/Group associated
# Project import/export **(FREE)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/3050) in GitLab 8.9.
-> - From GitLab 10.0, administrators can disable the project export option on the GitLab instance.
+Existing projects on any self-managed GitLab instance or GitLab.com can be exported to a file and
+then imported into a new GitLab instance.
-Existing projects running on any GitLab instance or GitLab.com can be exported with all their related
-data and be moved into a new GitLab instance.
+## Set up project import/export
-The **GitLab import/export** button is displayed if the project import option is enabled.
+Before you can import or export a project and its data, you must set it up.
-See also:
+1. On the left sidebar, select **Settings > General**.
+1. Expand **Visibility and access controls**.
+1. Scroll to **Import sources**.
+1. Enable the desired **Import sources**.
-- [Project import/export API](../../../api/project_import_export.md)
-- [Project import/export administration Rake tasks](../../../administration/raketasks/project_import_export.md) **(FREE SELF)**
-- [Group import/export](../../group/settings/import_export.md)
-- [Group import/export API](../../../api/group_import_export.md)
-
-To set up a project import/export:
-
- 1. On the top bar, go to **Menu > Admin > Settings > General > Visibility and access controls**.
- 1. Scroll to **Import sources**.
- 1. Enable the desired **Import sources**.
-
-## Important notes
-
-Note the following:
-
-- Before you can import a project, you must export the data first.
- See [Export a project and its data](#export-a-project-and-its-data)
- for how you can export a project through the UI.
-- Imports from a newer version of GitLab are not supported.
- The Importing GitLab version must be greater than or equal to the Exporting GitLab version.
-- Imports fail unless the import and export GitLab instances are
- compatible as described in the [Version history](#version-history).
-- Exports are generated in your configured `shared_path`, a temporary shared directory,
- and are moved to your configured `uploads_directory`. Every 24 hours, a specific worker deletes these export files.
-- Group members are exported as project members, as long as the user has
- a maintainer or administrator role in the group where the exported project lives.
-- Project members with the [Owner role](../../permissions.md) are imported as Maintainers.
-- Imported users can be mapped by their public email on self-managed instances, if an administrative user (not an owner) does the import.
- The public email is not set by default. Users must [set it in their profiles](../../profile/index.md#set-your-public-email)
- for mapping to work correctly. Additionally, the user must be an existing member of the namespace,
- or the user can be added as a member of the project for contributions to be mapped.
- Otherwise, a supplementary comment is left to mention that the original author and
- the MRs, notes, or issues are owned by the importer.
- - For project migration imports performed over GitLab.com Groups, preserving author information is
- possible through a [professional services engagement](https://about.gitlab.com/services/migration/).
-- If an imported project contains merge requests originating from forks,
- then new branches associated with such merge requests are created
- in a project during the import/export. Thus, the number of branches
- in the exported project could be bigger than in the original project.
-- Deploy keys allowed to push to protected branches are not exported. Therefore,
- you must recreate this association by first enabling these deploy keys in your
- imported project and then updating your protected branches accordingly.
-
-## Version history
-
-### 14.0+
-
-In GitLab 14.0, the JSON format is no longer supported for project and group exports. To allow for a
-transitional period, you can still import any JSON exports. The new format for imports and exports
-is NDJSON.
+## Between CE and EE
-### 13.0+
+You can export projects from the [Community Edition to the Enterprise Edition](https://about.gitlab.com/install/ce-or-ee/)
+and vice versa. This assumes [version history](#version-history)
+requirements are met.
-Starting with GitLab 13.0, GitLab can import bundles that were exported from a different GitLab deployment.
-This ability is limited to two previous GitLab [minor](../../../policy/maintenance.md#versioning)
-releases, which is similar to our process for [Security Releases](../../../policy/maintenance.md#security-releases).
+If you're exporting a project from the Enterprise Edition to the Community Edition, you may lose
+data that is retained only in the Enterprise Edition. For more information, see
+[downgrading from EE to CE](../../../index.md).
-For example:
+## Export a project and its data
-| Current version | Can import bundles exported from |
-|-----------------|----------------------------------|
-| 13.0 | 13.0, 12.10, 12.9 |
-| 13.1 | 13.1, 13.0, 12.10 |
+Before you can import a project, you must export it.
-### 12.x
+Prerequisites:
-Prior to 13.0 this was a defined compatibility table:
+- Review the list of [data that will be exported](#items-that-are-exported).
+ Not all data is exported.
+- You must have at least the Maintainer role for the project.
-| Exporting GitLab version | Importing GitLab version |
-| -------------------------- | -------------------------- |
-| 11.7 to 12.10 | 11.7 to 12.10 |
-| 11.1 to 11.6 | 11.1 to 11.6 |
-| 10.8 to 11.0 | 10.8 to 11.0 |
-| 10.4 to 10.7 | 10.4 to 10.7 |
-| 10.3 | 10.3 |
-| 10.0 to 10.2 | 10.0 to 10.2 |
-| 9.4 to 9.6 | 9.4 to 9.6 |
-| 9.2 to 9.3 | 9.2 to 9.3 |
-| 8.17 to 9.1 | 8.17 to 9.1 |
-| 8.13 to 8.16 | 8.13 to 8.16 |
-| 8.12 | 8.12 |
-| 8.10.3 to 8.11 | 8.10.3 to 8.11 |
-| 8.10.0 to 8.10.2 | 8.10.0 to 8.10.2 |
-| 8.9.5 to 8.9.11 | 8.9.5 to 8.9.11 |
-| 8.9.0 to 8.9.4 | 8.9.0 to 8.9.4 |
-
-Projects can be exported and imported only between versions of GitLab with matching Import/Export versions.
-
-For example, 8.10.3 and 8.11 have the same Import/Export version (0.1.3)
-and the exports between them are compatible.
-
-## Between CE and EE
+To export a project and its data, follow these steps:
-You can export projects from the [Community Edition to the Enterprise Edition](https://about.gitlab.com/install/ce-or-ee/) and vice versa.
-This assumes [version history](#version-history) requirements are met.
+1. On the top bar, select **Menu > Projects** and find your project.
+1. On the left sidebar, select **Settings**.
+1. Expand **Advanced**.
+1. Select **Export project**.
+1. After the export is generated, you should receive an email with a link to download the file.
+1. Alternatively, you can come back to the project settings and download the file from there or
+ generate a new export. After the file is available, the page should show the **Download export**
+ button.
-If you're exporting a project from the Enterprise Edition to the Community Edition, you may lose data that is retained only in the Enterprise Edition. For more information, see [downgrading from EE to CE](../../../index.md).
+The export is generated in your configured `shared_path`, a temporary shared directory, and then
+moved to your configured `uploads_directory`. Every 24 hours, a worker deletes these export files.
-## Exported contents
+### Items that are exported
The following items are exported:
- Project and wiki repositories
- Project uploads
- Project configuration, excluding integrations
-- Issues with comments, merge requests with diffs and comments, labels, milestones, snippets, time tracking,
- and other project entities
+- Issues with comments, merge requests with diffs and comments, labels, milestones, snippets, time
+ tracking, and other project entities
- Design Management files and data
- LFS objects
- Issue boards
- Pipelines history
- Push Rules
- Awards
+- Group members are exported as project members, as long as the user has the Maintainer role in the
+ exported project's group, or is an administrator
The following items are **not** exported:
@@ -140,6 +80,7 @@ The following items are **not** exported:
- Any encrypted tokens
- Merge Request Approvers
- Repository size limits
+- Deploy keys allowed to push to protected branches
These content rules also apply to creating projects from templates on the
[group](../../group/custom_project_templates.md)
@@ -150,87 +91,146 @@ NOTE:
For more details on the specific data persisted in a project export, see the
[`import_export.yml`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/import_export/project/import_export.yml) file.
-## Export a project and its data
-
-Full project export functionality is limited to project maintainers and owners.
-You can configure such functionality through [project settings](index.md):
-
-To export a project and its data, follow these steps:
+## Import a project and its data
-1. Go to your project's homepage.
+> Default maximum import file size [changed](https://gitlab.com/gitlab-org/gitlab/-/issues/251106) from 50 MB to unlimited in GitLab 13.8.
-1. Select **Settings** in the sidebar.
+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.
-1. Scroll down and expand the **Advanced** section.
+Prerequisites:
-1. Scroll down to find the **Export project** button:
+- You must have [exported the project and its data](#export-a-project-and-its-data).
+- Compare GitLab versions and ensure you are importing to a GitLab version that is the same or later
+ than the GitLab version you exported to.
+- Review the [Version history](#version-history)
+ for compatibility issues.
- ![Export button](img/import_export_export_button.png)
+To import a project:
-1. After the export is generated, you should receive an email with a link to
- download the file:
+1. When [creating a new project](../working_with_projects.md#create-a-project),
+ select **Import project**.
+1. In **Import project from**, select **GitLab export**.
+1. Enter your project name and URL. Then select the file you exported previously.
+1. Select **Import project** to begin importing. Your newly imported project page appears shortly.
- ![Email download link](img/import_export_mail_link.png)
+To get the status of an import, you can query it through the [Project import/export API](../../../api/project_import_export.md#import-status).
+As described in the API documentation, the query may return an import error or exceptions.
-1. Alternatively, you can come back to the project settings and download the
- file from there, or generate a new export. After the file is available, the page
- should show the **Download export** button:
+### Items that are imported
- ![Download export](img/import_export_download_export.png)
+The following items are imported but changed slightly:
-## Import the project
+- Project members with the [Owner role](../../permissions.md)
+ are imported as Maintainers.
+- If an imported project contains merge requests originating from forks, then new branches
+ associated with such merge requests are created in a project during the import/export. Thus, the
+ number of branches in the exported project might be bigger than in the original project.
+- If use of the `Internal` visibility level
+ [is restricted](../../../public_access/public_access.md#restrict-use-of-public-or-internal-projects),
+ all imported projects are given `Private` visibility.
-> Default maximum import file size [changed](https://gitlab.com/gitlab-org/gitlab/-/issues/251106) from 50 MB to unlimited in GitLab 13.8.
+Deploy keys aren't imported. To use deploy keys, you must enable them in your imported project and update protected branches.
-WARNING:
-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.
+### Import large projects **(FREE SELF)**
-1. The GitLab project import feature is the first import option when creating a
- new project. Select **GitLab export**:
+If you have a larger project, consider using a Rake task as described in the [developer documentation](../../../development/import_project.md#importing-via-a-rake-task).
- ![New project](img/import_export_new_project.png)
+## Automate group and project import **(PREMIUM)**
-1. Enter your project name and URL. Then select the file you exported previously:
+For information on automating user, group, and project import API calls, see
+[Automate group and project import](../import/index.md#automate-group-and-project-import).
- ![Select file](img/import_export_select_file.png)
+## Maximum import file size
-1. Select **Import project** to begin importing. Your newly imported project
- page appears shortly.
+Administrators can set the maximum import file size one of two ways:
-NOTE:
-If use of the `Internal` visibility level
-[is restricted](../../../public_access/public_access.md#restrict-use-of-public-or-internal-projects),
-all imported projects are given the visibility of `Private`.
+- With the `max_import_size` option in the [Application settings API](../../../api/settings.md#change-application-settings).
+- In the [Admin Area UI](../../admin_area/settings/account_and_limit_settings.md#max-import-size).
-The maximum import file size can be set by the Administrator, and the default is `0` (unlimited).
-As an administrator, you can modify the maximum import file size. To do so, use the `max_import_size` option in the [Application settings API](../../../api/settings.md#change-application-settings) or the [Admin Area UI](../../admin_area/settings/account_and_limit_settings.md).
+The default is `0` (unlimited).
-### Project import status
+## Map users for import
-You can query an import through the [Project import/export API](../../../api/project_import_export.md#import-status).
-As described in the API documentation, the query may return an import error or exceptions.
+Imported users can be mapped by their public email addresses on self-managed instances, if an administrator (not an owner) does the import.
-### Import large projects **(FREE SELF)**
+- Public email addresses are not set by default. Users must
+[set it in their profiles](../../profile/index.md#set-your-public-email)
+for mapping to work correctly.
+- For contributions to be mapped correctly, users must be an existing member of the namespace,
+ or they can be added as a member of the project. Otherwise, a supplementary comment is left to mention that the original author and the MRs, notes, or issues that are owned by the importer.
-If you have a larger project, consider using a Rake task, as described in our [developer documentation](../../../development/import_project.md#importing-via-a-rake-task).
+For project migration imports performed over GitLab.com groups, preserving author information is
+possible through a [professional services engagement](https://about.gitlab.com/services/migration/).
## Rate Limits
To help avoid abuse, by default, users are rate limited to:
-| Request Type | Limit |
-| ---------------- | ---------------------------------------- |
-| Export | 6 projects per minute |
-| Download export | 1 download per group per minute |
-| Import | 6 projects per minute |
+| Request Type | Limit |
+| ---------------- | ----- |
+| Export | 6 projects per minute |
+| Download export | 1 download per group per minute |
+| Import | 6 projects per minute |
-GitLab.com may have [different settings](../../gitlab_com/index.md#importexport) from the defaults.
+GitLab.com may have [different settings](../../gitlab_com/index.md#importexport)
+from the defaults.
-## Automate group and project import **(PREMIUM)**
+## Version history
-For information on automating user, group, and project import API calls, see
-[Automate group and project import](../import/index.md#automate-group-and-project-import).
+### 14.0+
+
+In GitLab 14.0, the JSON format is no longer supported for project and group exports. To allow for a
+transitional period, you can still import any JSON exports. The new format for imports and exports
+is NDJSON.
+
+### 13.0+
+
+Starting with GitLab 13.0, GitLab can import bundles that were exported from a different GitLab deployment.
+This ability is limited to two previous GitLab [minor](../../../policy/maintenance.md#versioning)
+releases, which is similar to our process for [Security Releases](../../../policy/maintenance.md#security-releases).
+
+For example:
+
+| Current version | Can import bundles exported from |
+|-----------------|----------------------------------|
+| 13.0 | 13.0, 12.10, 12.9 |
+| 13.1 | 13.1, 13.0, 12.10 |
+
+### 12.x
+
+Prior to 13.0 this was a defined compatibility table:
+
+| Exporting GitLab version | Importing GitLab version |
+| -------------------------- | -------------------------- |
+| 11.7 to 12.10 | 11.7 to 12.10 |
+| 11.1 to 11.6 | 11.1 to 11.6 |
+| 10.8 to 11.0 | 10.8 to 11.0 |
+| 10.4 to 10.7 | 10.4 to 10.7 |
+| 10.3 | 10.3 |
+| 10.0 to 10.2 | 10.0 to 10.2 |
+| 9.4 to 9.6 | 9.4 to 9.6 |
+| 9.2 to 9.3 | 9.2 to 9.3 |
+| 8.17 to 9.1 | 8.17 to 9.1 |
+| 8.13 to 8.16 | 8.13 to 8.16 |
+| 8.12 | 8.12 |
+| 8.10.3 to 8.11 | 8.10.3 to 8.11 |
+| 8.10.0 to 8.10.2 | 8.10.0 to 8.10.2 |
+| 8.9.5 to 8.9.11 | 8.9.5 to 8.9.11 |
+| 8.9.0 to 8.9.4 | 8.9.0 to 8.9.4 |
+
+Projects can be exported and imported only between versions of GitLab with matching Import/Export versions.
+
+For example, 8.10.3 and 8.11 have the same Import/Export version (0.1.3)
+and the exports between them are compatible.
+
+## Related topics
+
+- [Project import/export API](../../../api/project_import_export.md)
+- [Project import/export administration Rake tasks](../../../administration/raketasks/project_import_export.md) **(FREE SELF)**
+- [Group import/export](../../group/settings/import_export.md)
+- [Group import/export API](../../../api/group_import_export.md)
## Troubleshooting
@@ -245,7 +245,7 @@ Review [issue 276930](https://gitlab.com/gitlab-org/gitlab/-/issues/276930), and
### Import workarounds for large repositories
-[Maximum import size limitations](#import-the-project)
+[Maximum import size limitations](#import-a-project-and-its-data)
can prevent an import from being successful. If changing the import limits is not possible, you can
try one of the workarounds listed here.
diff --git a/doc/user/project/settings/index.md b/doc/user/project/settings/index.md
index c6cbd45a6ab..9df545b52ec 100644
--- a/doc/user/project/settings/index.md
+++ b/doc/user/project/settings/index.md
@@ -86,12 +86,17 @@ read-only view to discourage this behavior.
> - [Enabled by default](https://gitlab.com/gitlab-org/gitlab/-/issues/300324) in GitLab 13.11.
> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/331231) in GitLab 14.2.
-Group owners can use compliance pipeline configuration to add additional pipeline configuration to
-projects to define compliance requirements such as scans or tests.
-
-[Compliance frameworks](#compliance-frameworks) allow group owners to specify the location of
-compliance pipeline configuration stored and managed in dedicated projects, separate from regular
-projects.
+Compliance framework pipelines allow group owners to define
+a compliance pipeline in a separate repository that gets
+executed in place of the local project's `gitlab-ci.yml` file. As part of this pipeline, an
+`include` statement can reference the local project's `gitlab-ci.yml` file. This way, the two CI
+files are merged together any time the pipeline runs. Jobs and variables defined in the compliance
+pipeline can't be changed by variables in the local project's `gitlab-ci.yml` file.
+
+When used to enforce scan execution, this feature has some overlap with [scan execution policies](../../application_security/policies/#scan-execution-policies),
+as we have not [unified the user experience for these two features](https://gitlab.com/groups/gitlab-org/-/epics/7312).
+For details on the similarities and differences between these features, see
+[Enforce scan execution](../../application_security/#enforce-scan-execution).
When you set up the compliance framework, use the **Compliance pipeline configuration** box to link
the compliance framework to specific CI/CD configuration. Use the
@@ -178,8 +183,6 @@ include: # Execute individual project's configuration (if project contains .git
project: '$CI_PROJECT_PATH'
file: '$CI_CONFIG_PATH'
ref: '$CI_COMMIT_REF_NAME' # Must be defined or MR pipelines always use the use default branch
- rules:
- - exists: '$CI_CONFIG_PATH'
```
##### Ensure compliance jobs are always run
@@ -265,7 +268,7 @@ Some features depend on others:
- If you disable the **Issues** option, GitLab also removes the following
features:
- - **issue boards**
+ - **Issue Boards**
- [**Service Desk**](#service-desk)
NOTE:
@@ -324,7 +327,7 @@ Enable [Service Desk](../service_desk.md) for your project to offer customer sup
### Export project
-Learn how to [export a project](import_export.md#import-the-project) in GitLab.
+Learn how to [export a project](import_export.md#import-a-project-and-its-data) in GitLab.
### Advanced settings
diff --git a/doc/user/project/settings/project_access_tokens.md b/doc/user/project/settings/project_access_tokens.md
index 44ece6cb172..3fcfe202d38 100644
--- a/doc/user/project/settings/project_access_tokens.md
+++ b/doc/user/project/settings/project_access_tokens.md
@@ -1,6 +1,6 @@
---
stage: Manage
-group: Access
+group: Authentication & Authorization
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
type: reference, howto
---
@@ -14,18 +14,19 @@ type: reference, howto
You can use a project access token to authenticate:
-- With the [GitLab API](../../../api/index.md#personalproject-access-tokens).
+- With the [GitLab API](../../../api/index.md#personalprojectgroup-access-tokens).
- With Git, when using HTTP Basic Authentication.
After you configure a project access token, you don't need a password when you authenticate.
Instead, you can enter any non-blank value.
-Project access tokens are similar to [personal access tokens](../../profile/personal_access_tokens.md),
-except they are associated with a project rather than a user.
+Project access tokens are similar to [group access tokens](../../group/settings/group_access_tokens.md)
+and [personal access tokens](../../profile/personal_access_tokens.md), except they are
+associated with a project rather than a group or user.
You can use project access tokens:
-- On GitLab SaaS if you have the Premium license tier or higher. Personal access tokens are not available with a [trial license](https://about.gitlab.com/free-trial/).
+- On GitLab SaaS if you have the Premium license tier or higher. Project access tokens are not available with a [trial license](https://about.gitlab.com/free-trial/).
- On self-managed instances of GitLab, with any license tier. If you have the Free tier:
- Review your security and compliance policies around
[user self-enrollment](../../admin_area/settings/sign_up_restrictions.md#disable-new-sign-ups).
@@ -78,83 +79,11 @@ To enable or disable project access token creation for all projects in a top-lev
1. On the top bar, select **Menu > Groups** and find your group.
1. On the left sidebar, select **Settings > General**.
-1. Expand **Permissions, LFS, 2FA**.
-1. Under **Permissions**, turn on or off **Allow project access token creation**.
+1. Expand **Permissions and group features**.
+1. Under **Permissions**, turn on or off **Allow project and group access token creation**.
Even when creation is disabled, you can still use and revoke existing project access tokens.
-## Group access tokens **(FREE SELF)**
-
-With group access tokens, you can use a single token to:
-
-- Perform actions for groups.
-- Manage the projects within the group.
-- In [GitLab 14.2](https://gitlab.com/gitlab-org/gitlab/-/issues/330718) and later, authenticate with Git over HTTPS.
-
-NOTE:
-You cannot use the UI to create a group access token. [An issue exists](https://gitlab.com/gitlab-org/gitlab/-/issues/214045)
-to add this functionality. This section describes a workaround.
-
-If you are an administrator of a self-managed GitLab instance, you can create a group access token in the
-[Rails console](../../../administration/operations/rails_console.md).
-
-<div class="video-fallback">
- For a demo of the group access token workaround, see <a href="https://www.youtube.com/watch?v=W2fg1P1xmU0">Demo: Group Level Access Tokens</a>.
-</div>
-<figure class="video-container">
- <iframe src="https://www.youtube.com/embed/W2fg1P1xmU0" frameborder="0" allowfullscreen="true"> </iframe>
-</figure>
-
-### Create a group access token
-
-To create a group access token:
-
-1. Run the following commands in a [Rails console](../../../administration/operations/rails_console.md):
-
- ```ruby
- # Set the GitLab administration user to use. If user ID 1 is not available or is not an adinistrator, use 'admin = User.admins.first' instead to select an admininistrator.
- admin = User.find(1)
-
- # Set the group group you want to create a token for. For example, group with ID 109.
- group = Group.find(109)
-
- # Create the group bot user. For further group access tokens, the username should be group_#{group.id}_bot#{bot_count}. For example, group_109_bot2 and email address group_109_bot2@example.com.
- bot = Users::CreateService.new(admin, { name: 'group_token', username: "group_#{group.id}_bot", email: "group_#{group.id}_bot@example.com", user_type: :project_bot }).execute
-
- # Confirm the group bot.
- bot.confirm
-
- # Add the bot to the group with the required role.
- group.add_user(bot, :maintainer)
-
- # Give the bot a personal access token.
- token = bot.personal_access_tokens.create(scopes:[:api, :write_repository], name: 'group_token')
-
- # Get the token value.
- gtoken = token.token
- ```
-
-1. Test if the generated group access token works:
-
- 1. Use the group access token in the `PRIVATE-TOKEN` header with GitLab REST APIs. For example:
-
- - [Create an epic](../../../api/epics.md#new-epic) in the group.
- - [Create a project pipeline](../../../api/pipelines.md#create-a-new-pipeline) in one of the group's projects.
- - [Create an issue](../../../api/issues.md#new-issue) in one of the group's projects.
-
- 1. Use the group token to [clone a group's project](../../../gitlab-basics/start-using-git.md#clone-with-https)
- using HTTPS.
-
-### Revoke a group access token
-
-To revoke a group access token, run the following command in a [Rails console](../../../administration/operations/rails_console.md):
-
-```ruby
-bot = User.find_by(username: 'group_109_bot') # the owner of the token you want to revoke
-token = bot.personal_access_tokens.last # the token you want to revoke
-token.revoke!
-```
-
## Project bot users
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/210181) in GitLab 13.0.
@@ -169,11 +98,11 @@ selected role and [scope](#scopes-for-a-project-access-token) of the project acc
- The name is set to the name of the token.
- The username is set to `project_{project_id}_bot` for the first access token. For example, `project_123_bot`.
-- The email is set to `project{project_id}_bot@example.com`. For example, `project123_bot@example.com`.
+- The email is set to `project{project_id}_bot@noreply.{Gitlab.config.gitlab.host}`. For example, `project123_bot@noreply.example.com`.
- For additional access tokens in the same project, the username is set to `project_{project_id}_bot{bot_count}`. For
example, `project_123_bot1`.
-- For additional access tokens in the same project, the email is set to `project{project_id}_bot{bot_count}@example.com`.
- For example, `project123_bot1@example.com`.
+- For additional access tokens in the same project, the email is set to `project{project_id}_bot{bot_count}@noreply.{Gitlab.config.gitlab.host}`.
+ For example, `project123_bot1@noreply.example.com`.
API calls made with a project access token are associated with the corresponding bot user.
diff --git a/doc/user/project/time_tracking.md b/doc/user/project/time_tracking.md
index b41ea30bfef..6ceb8c94934 100644
--- a/doc/user/project/time_tracking.md
+++ b/doc/user/project/time_tracking.md
@@ -76,6 +76,15 @@ For example, if you want to log 1 hour of time spent on the 31 January 2021,
you would type `/spend 1h 2021-01-31`. If you supply a date in the future, the
command fails and no time is logged.
+To add a timelog entry with a note, create a comment with a description and the quick action.
+It then shows in the timelog "Summary/Notes" column. For example:
+
+```plaintext
+Draft MR and respond to initial comments
+
+/spend 30m
+```
+
To remove all the time spent at once, use `/remove_time_spent`.
## View a time tracking report
diff --git a/doc/user/project/web_ide/index.md b/doc/user/project/web_ide/index.md
index 40c9ae8bd59..4565b5f1c91 100644
--- a/doc/user/project/web_ide/index.md
+++ b/doc/user/project/web_ide/index.md
@@ -1,17 +1,14 @@
---
stage: Create
group: Editor
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: reference, how-to
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
# Web IDE **(FREE)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/4539) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.4.
-> - [Moved](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/44157) to GitLab Free in 10.7.
-
-The Web Integrated Development Environment (IDE) editor makes it faster and easier to contribute changes to your
-projects by providing an advanced editor with commit staging.
+The Web Integrated Development Environment (IDE) editor streamlines the process
+to contribute changes to your projects, by providing an advanced editor with
+commit staging.
## Open the Web IDE
@@ -36,8 +33,6 @@ and from merge requests:
## File finder
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18323) in [GitLab Free](https://about.gitlab.com/pricing/) 10.8.
-
The file finder allows you to quickly open files in the current branch by
searching for fragments of the file path. The file finder is launched using the keyboard shortcut
<kbd>Command</kbd>+<kbd>p</kbd>, <kbd>Control</kbd>+<kbd>p</kbd>, or <kbd>t</kbd>
@@ -150,7 +145,7 @@ Each schema entry supports two properties:
## Configure the Web IDE
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/23352) in [GitLab Free](https://about.gitlab.com/pricing/) 13.1.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/23352) in GitLab Free 13.1.
The Web IDE supports configuration of certain editor settings by using
[`.editorconfig` files](https://editorconfig.org/). When opening a file, the
@@ -169,12 +164,10 @@ The Web IDE currently supports the following `.editorconfig` settings:
## Commit changes
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/4539) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.4.
-> - [Moved](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/44157) to GitLab Free in 10.7.
-> - From [GitLab 12.7 onward](https://gitlab.com/gitlab-org/gitlab/-/issues/33441), files were automatically staged.
-> - From [GitLab 12.9 onward](https://gitlab.com/gitlab-org/gitlab/-/issues/196609), support for staging files was removed to prevent loss of unstaged data. All your current changes necessarily have to be committed or discarded.
+> - Starting with [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/issues/33441), files are automatically staged.
+> - In [GitLab 12.9](https://gitlab.com/gitlab-org/gitlab/-/issues/196609), support for staging files was removed to prevent loss of unstaged data. All of your current changes must be committed or discarded.
-After making your changes, click the **Commit** button on the bottom-left to
+After making your changes, select **Commit** on the bottom-left to
review the list of changed files.
After you have finalized your changes, you can add a commit message, commit the
@@ -182,8 +175,8 @@ changes and directly create a merge request. In case you don't have write
access to the selected branch, you see a warning, but can still create
a new branch and start a merge request.
-To discard a change in a particular file, click the **Discard changes** button on that
-file in the changes tab. To discard all the changes, click the trash icon on the
+To discard a change in a particular file, select **Discard changes** on that
+file in the changes tab. To discard all the changes, select the trash icon on the
top-right corner of the changes sidebar.
![Commit changes](img/commit_changes_v13_11.png)
@@ -198,8 +191,6 @@ shows you a preview of the merge request diff if you commit your changes.
## View CI job logs
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/19279) in [GitLab Free](https://about.gitlab.com/pricing/) 11.0.
-
You can use the Web IDE to quickly fix failing tests by opening
the branch or merge request in the Web IDE and opening the logs of the failed
job. You can access the status of all jobs for the most recent pipeline and job
@@ -211,16 +202,12 @@ left.
## Switching merge requests
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/19318) in [GitLab Free](https://about.gitlab.com/pricing/) 11.0.
-
To switch between your authored and assigned merge requests, click the
dropdown in the top of the sidebar to open a list of merge requests. You must commit or discard all your changes before switching to a different merge
request.
## Switching branches
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/20850) in [GitLab Free](https://about.gitlab.com/pricing/) 11.2.
-
To switch between branches of the current project repository, click the dropdown
in the top of the sidebar to open a list of branches.
You must commit or discard all your changes before switching to a
@@ -228,9 +215,8 @@ different branch.
## Markdown editing
-> - Markdown preview [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18059) in [GitLab Free](https://about.gitlab.com/pricing/) 10.7.
-> - Support for pasting images [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/22822) in [GitLab Free](https://about.gitlab.com/pricing/) 13.1.
-> - Side-by-side Markdown preview [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68274) in [GitLab Free](https://about.gitlab.com/pricing/) 14.3
+> - Support for pasting images [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/22822) in GitLab Free 13.1.
+> - Side-by-side Markdown preview [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68274) in GitLab Free 14.3.
To edit Markdown files in the Web IDE:
@@ -255,8 +241,7 @@ There are two ways to preview Markdown content in the Web IDE:
## Live Preview
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/19764) in [GitLab Free](https://about.gitlab.com/pricing/) 11.2.
-> - [Renamed](https://gitlab.com/gitlab-org/gitlab/-/issues/213853) from _Client Side Evaluation_ to _Live Preview_ in GitLab 13.0.
+> [Renamed](https://gitlab.com/gitlab-org/gitlab/-/issues/213853) from _Client Side Evaluation_ to _Live Preview_ in GitLab 13.0.
You can use the Web IDE to preview JavaScript projects right in the browser.
This feature uses CodeSandbox to compile and bundle the JavaScript used to
@@ -301,8 +286,7 @@ An example `package.json`:
## Interactive Web Terminals for the Web IDE
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5426) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.6.
-> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/211685) to GitLab Free in 13.1.
+> [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/211685) to GitLab Free in 13.1.
WARNING:
Interactive Web Terminals for the Web IDE is currently in **Beta**.
@@ -407,8 +391,8 @@ click **Restart Terminal** to start a new terminal session.
### File syncing to web terminal
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5276) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.0.
-> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/211686) to GitLab Free in 13.1.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5276) in GitLab Ultimate 12.0.
+> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/211686) from GitLab Ultimate to GitLab Free in 13.1.
File changes in the Web IDE can be synced to a running web terminal.
This enables users to test their code changes in a preconfigured terminal
diff --git a/doc/user/project/wiki/index.md b/doc/user/project/wiki/index.md
index 9f1670d3f4c..95ea1b4d0bc 100644
--- a/doc/user/project/wiki/index.md
+++ b/doc/user/project/wiki/index.md
@@ -1,8 +1,7 @@
---
stage: Create
group: Editor
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: reference, how-to
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
# Wiki **(FREE)**
@@ -87,11 +86,7 @@ Users with the [Developer role](../../permissions.md) can create new wiki pages:
[special characters](#special-characters-in-page-titles) for subdirectories and formatting,
and have [length restrictions](#length-restrictions-for-file-and-directory-names).
1. Add content to your wiki page.
-1. Optional. Attach a file, and GitLab stores it according to your installed version of GitLab:
- - *Files added in [GitLab 11.3 and later](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/33475):*
- Files are stored in the wiki's Git repository.
- - *Files added GitLab 11.2 and earlier:* Files are stored in GitLab itself. To add
- the file to the wiki's Git repository, you must re-upload the file.
+1. Optional. Attach a file, and GitLab stores it in the wiki's Git repository.
1. Add a **Commit message**. Git requires a commit message, so GitLab creates one
if you don't enter one yourself.
1. Select **Create page**.
@@ -227,9 +222,9 @@ You can see the changes made in a version of a wiki page, similar to versioned d
## Track wiki events
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14902) in **GitLab 12.10.**
-> - Git events were [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/216014) in **GitLab 13.0.**
-> - [Feature flag for Git events was removed](https://gitlab.com/gitlab-org/gitlab/-/issues/258665) in **GitLab 13.5**
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14902) in GitLab 12.10.
+> - Git events were [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/216014) in GitLab 13.0.
+> - [Feature flag for Git events was removed](https://gitlab.com/gitlab-org/gitlab/-/issues/258665) in GitLab 13.5.
GitLab tracks wiki creation, deletion, and update events. These events are displayed on these pages:
diff --git a/doc/user/project/working_with_projects.md b/doc/user/project/working_with_projects.md
index b5b3f2d2085..61eca19a67b 100644
--- a/doc/user/project/working_with_projects.md
+++ b/doc/user/project/working_with_projects.md
@@ -16,7 +16,7 @@ To explore projects:
1. On the top bar, select **Menu > Projects**.
1. Select **Explore projects**.
-The **Projects** page shows a list of projects, sorted by last updated date.
+The **Projects** page shows a list of projects, sorted by last updated date.
- To view projects with the most [stars](#star-a-project), select **Most stars**.
- To view projects with the largest number of comments in the past month, select **Trending**.
@@ -326,7 +326,7 @@ on the project dashboard when a project is part of a group under a
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
+- 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.
To use a project as a Go package, use the `go get` and `godoc.org` discovery requests. You can use the meta tags: