summaryrefslogtreecommitdiff
path: root/doc/user
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user')
-rw-r--r--doc/user/admin_area/settings/img/rate_limit_on_issues_creation.pngbin0 -> 11476 bytes
-rw-r--r--doc/user/admin_area/settings/rate_limit_on_issues_creation.md25
-rw-r--r--doc/user/admin_area/settings/usage_statistics.md1
-rw-r--r--doc/user/analytics/value_stream_analytics.md22
-rw-r--r--doc/user/application_security/container_scanning/index.md54
-rw-r--r--doc/user/application_security/dast/img/dast_urls_scanned_v12_10.pngbin56534 -> 21864 bytes
-rw-r--r--doc/user/application_security/dast/index.md4
-rw-r--r--doc/user/application_security/dependency_list/img/dependency_list_v12_10.pngbin0 -> 76835 bytes
-rw-r--r--doc/user/application_security/dependency_list/index.md21
-rw-r--r--doc/user/application_security/dependency_scanning/index.md181
-rw-r--r--doc/user/application_security/sast/index.md4
-rw-r--r--doc/user/application_security/security_dashboard/img/project_security_dashboard_export_csv_v12.10.pngbin0 -> 9766 bytes
-rw-r--r--doc/user/application_security/security_dashboard/index.md18
-rw-r--r--doc/user/clusters/applications.md59
-rw-r--r--doc/user/clusters/img/fluentd_v12_10.pngbin26758 -> 26438 bytes
-rw-r--r--doc/user/compliance/license_compliance/index.md74
-rw-r--r--doc/user/group/img/group_activity_analytics_v12_10.pngbin0 -> 56709 bytes
-rw-r--r--doc/user/group/index.md40
-rw-r--r--doc/user/group/saml_sso/index.md2
-rw-r--r--doc/user/incident_management/index.md2
-rw-r--r--doc/user/packages/img/group_packages_list_v12_10.pngbin0 -> 41637 bytes
-rw-r--r--doc/user/packages/img/package_activity_v12_10.pngbin0 -> 14515 bytes
-rw-r--r--doc/user/packages/img/package_detail_v12_10.pngbin0 -> 63529 bytes
-rw-r--r--doc/user/packages/img/project_packages_list_v12_10.pngbin0 -> 39163 bytes
-rw-r--r--doc/user/packages/index.md79
-rw-r--r--doc/user/packages/pypi_repository/index.md84
-rw-r--r--doc/user/permissions.md8
-rw-r--r--doc/user/project/deploy_tokens/img/deploy_tokens.pngbin177352 -> 49460 bytes
-rw-r--r--doc/user/project/img/issue_boards_blocked_icon_v12_8.pngbin31841 -> 15487 bytes
-rw-r--r--doc/user/project/img/status_page_incidents_v12_10.pngbin27792 -> 16149 bytes
-rw-r--r--doc/user/project/import/img/jira/import_issues_from_jira_button_v12_10.pngbin31779 -> 8504 bytes
-rw-r--r--doc/user/project/import/img/jira/import_issues_from_jira_form_v12_10.pngbin89735 -> 116641 bytes
-rw-r--r--doc/user/project/import/img/jira/import_issues_from_jira_projects_v12_10.pngbin230008 -> 521845 bytes
-rw-r--r--doc/user/project/index.md9
-rw-r--r--doc/user/project/integrations/prometheus.md23
-rw-r--r--doc/user/project/issues/csv_export.md3
-rw-r--r--doc/user/project/issues/design_management.md2
-rw-r--r--doc/user/project/issues/img/epic_tree_health_status_v12_10.pngbin0 -> 116773 bytes
-rw-r--r--doc/user/project/issues/img/issue_activity_sort_order_v12_10.pngbin0 -> 11646 bytes
-rw-r--r--doc/user/project/issues/img/issue_health_status_dropdown_v12_10.pngbin44744 -> 13926 bytes
-rw-r--r--doc/user/project/issues/issue_data_and_actions.md111
-rw-r--r--doc/user/project/issues/managing_issues.md2
-rw-r--r--doc/user/project/issues/multiple_assignees_for_issues.md4
-rw-r--r--doc/user/project/merge_requests/img/versions_compare_head_v12_10.pngbin0 -> 30717 bytes
-rw-r--r--doc/user/project/merge_requests/versions.md21
-rw-r--r--doc/user/project/quick_actions.md2
-rw-r--r--doc/user/project/releases/index.md11
-rw-r--r--doc/user/project/repository/forking_workflow.md6
-rw-r--r--doc/user/project/repository/img/file_ext_icons_repo_v12_10.pngbin0 -> 187696 bytes
-rw-r--r--doc/user/project/repository/index.md6
-rw-r--r--doc/user/project/requirements/img/requirement_archive_view_v12_10.pngbin0 -> 112233 bytes
-rw-r--r--doc/user/project/requirements/img/requirement_create_view_v12_10.pngbin0 -> 124402 bytes
-rw-r--r--doc/user/project/requirements/img/requirement_edit_save_v12_10.pngbin0 -> 123899 bytes
-rw-r--r--doc/user/project/requirements/img/requirement_edit_view_v12_10.pngbin0 -> 118066 bytes
-rw-r--r--doc/user/project/requirements/img/requirements_archived_list_view_v12_10.pngbin0 -> 68623 bytes
-rw-r--r--doc/user/project/requirements/img/requirements_list_view_v12_10.pngbin0 -> 117250 bytes
-rw-r--r--doc/user/project/requirements/index.md67
-rw-r--r--doc/user/project/static_site_editor/img/edit_this_page_button_v12_10.pngbin0 -> 28949 bytes
-rw-r--r--doc/user/project/static_site_editor/img/static_site_editor_v12_10.pngbin0 -> 50679 bytes
-rw-r--r--doc/user/project/static_site_editor/index.md89
-rw-r--r--doc/user/project/status_page/index.md6
-rw-r--r--doc/user/project/wiki/index.md37
-rw-r--r--doc/user/search/img/issue_search_by_id.pngbin0 -> 20577 bytes
-rw-r--r--doc/user/search/index.md12
-rw-r--r--doc/user/shortcuts.md9
-rw-r--r--doc/user/todos.md4
66 files changed, 998 insertions, 104 deletions
diff --git a/doc/user/admin_area/settings/img/rate_limit_on_issues_creation.png b/doc/user/admin_area/settings/img/rate_limit_on_issues_creation.png
new file mode 100644
index 00000000000..5aa9b95f835
--- /dev/null
+++ b/doc/user/admin_area/settings/img/rate_limit_on_issues_creation.png
Binary files differ
diff --git a/doc/user/admin_area/settings/rate_limit_on_issues_creation.md b/doc/user/admin_area/settings/rate_limit_on_issues_creation.md
new file mode 100644
index 00000000000..96a20681b2f
--- /dev/null
+++ b/doc/user/admin_area/settings/rate_limit_on_issues_creation.md
@@ -0,0 +1,25 @@
+---
+type: reference
+---
+
+# Rate limits on issue creation
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/55241) in GitLab 12.10.
+
+This setting allows you to rate limit the requests to the issue creation endpoint.
+It defaults to 300 requests per minute.
+You can change it in **Admin Area > Settings > Network > Performance Optimization**.
+
+For example, requests using the
+[Projects::IssuesController#create](https://gitlab.com/gitlab-org/gitlab/raw/master/app/controllers/projects/issues_controller.rb)
+action exceeding a rate of 300 per minute are blocked. Access to the endpoint is allowed after one minute.
+
+![Rate limits on issues creation](img/rate_limit_on_issues_creation.png)
+
+This limit is:
+
+- Applied independently per project and per user.
+- Not applied per IP address.
+- Active by default. To disable it, set the option to `0`.
+
+Requests over the rate limit are logged into the `auth.log` file.
diff --git a/doc/user/admin_area/settings/usage_statistics.md b/doc/user/admin_area/settings/usage_statistics.md
index f28bab6ad86..7869f7de1b6 100644
--- a/doc/user/admin_area/settings/usage_statistics.md
+++ b/doc/user/admin_area/settings/usage_statistics.md
@@ -222,6 +222,7 @@ but commented out to help encourage others to add to it in the future. -->
|issues_with_associated_zoom_link|counts||
|issues_using_zoom_quick_actions|counts||
|issues_with_embedded_grafana_charts_approx|counts||
+|issues_with_health_status|counts||
|keys|counts||
|label_lists|counts||
|lfs_objects|counts||
diff --git a/doc/user/analytics/value_stream_analytics.md b/doc/user/analytics/value_stream_analytics.md
index 703b794981f..32f393d342b 100644
--- a/doc/user/analytics/value_stream_analytics.md
+++ b/doc/user/analytics/value_stream_analytics.md
@@ -280,6 +280,28 @@ administrator can open a Rails console and disable it with the following command
Feature.disable(:cycle_analytics_scatterplot_median_enabled)
```
+## Type of work - Tasks by type chart
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/32421) in GitLab 12.10.
+
+This chart shows a cumulative count of issues and merge requests per day.
+
+This chart uses the global page filters for displaying data based on the selected
+group, projects, and timeframe. The chart defaults to showing counts for issues but can be
+toggled to show data for merge requests and further refined for specific group-level labels.
+
+By default the top group-level labels (max. 10) are pre-selected, with the ability to
+select up to a total of 15 labels.
+
+### Disabling chart
+
+This chart is enabled by default. If you have a self-managed instance, an
+administrator can open a Rails console and disable it with the following command:
+
+```ruby
+Feature.disable(:tasks_by_type_chart)
+```
+
## Permissions
The current permissions on the Project Value Stream Analytics dashboard are:
diff --git a/doc/user/application_security/container_scanning/index.md b/doc/user/application_security/container_scanning/index.md
index 27b22fb925c..68ad2d427dd 100644
--- a/doc/user/application_security/container_scanning/index.md
+++ b/doc/user/application_security/container_scanning/index.md
@@ -187,6 +187,10 @@ using environment variables.
### Overriding the Container Scanning template
+CAUTION: **Deprecation:**
+Beginning in GitLab 13.0, the use of [`only` and `except`](../../../ci/yaml/README.md#onlyexcept-basic)
+is no longer supported. When overriding the template, you must use [`rules`](../../../ci/yaml/README.md#rules) instead.
+
If you want to override the job definition (for example, change properties like
`variables`), you need to declare a `container_scanning` job after the
template inclusion and specify any additional keys under it. For example:
@@ -212,11 +216,46 @@ If you want to whitelist specific vulnerabilities, you'll need to:
### Running Container Scanning in an offline environment
-Container Scanning can be executed on an offline GitLab Ultimate installation by using the following process:
+For self-managed GitLab instances in an environment with limited, restricted, or intermittent access
+to external resources through the internet, some adjustments are required for the Container Scanning job to
+successfully run. For more information, see [Offline environments](../offline_deployments/index.md).
+
+#### Requirements for offline Container Scanning
+
+To use Container Scanning in an offline environment, you need:
+
+- GitLab Runner with the [`docker` or `kubernetes` executor](#requirements).
+- To configure a local Docker Container Registry with copies of the Container Scanning [analyzer](https://gitlab.com/gitlab-org/security-products/analyzers/klar) images, found in the [Container Scanning container registry](https://gitlab.com/gitlab-org/security-products/analyzers/klar/container_registry).
+
+NOTE: **Note:**
+GitLab Runner has a [default `pull policy` of `always`](https://docs.gitlab.com/runner/executors/docker.html#using-the-always-pull-policy),
+meaning the runner may try to pull remote images even if a local copy is available. Set GitLab
+Runner's [`pull_policy` to `if-not-present`](https://docs.gitlab.com/runner/executors/docker.html#using-the-if-not-present-pull-policy)
+in an offline environment if you prefer using only locally available Docker images.
+
+#### Make GitLab Container Scanning analyzer images available inside your Docker registry
-1. Host the following Docker images on a [local Docker container registry](../../packages/container_registry/index.md):
- - [arminc/clair-db vulnerabilities database](https://hub.docker.com/r/arminc/clair-db)
- - GitLab klar analyzer: `registry.gitlab.com/gitlab-org/security-products/analyzers/klar`
+For Container Scanning, import and host the following images from `registry.gitlab.com` to your
+offline [local Docker container registry](../../packages/container_registry/index.md):
+
+- [arminc/clair-db vulnerabilities database](https://hub.docker.com/r/arminc/clair-db)
+- GitLab klar analyzer: `registry.gitlab.com/gitlab-org/security-products/analyzers/klar`
+
+The process for importing Docker images into a local offline Docker registry depends on
+**your network security policy**. Please consult your IT staff to find an accepted and approved
+process by which external resources can be imported or temporarily accessed.
+
+Note that these scanners are [updated periodically](../index.md#maintenance-and-update-of-the-vulnerabilities-database)
+with new definitions, so consider if you are able to make periodic updates yourself.
+You can read more specific steps on how to do this [below](#automating-container-scanning-vulnerability-database-updates-with-a-pipeline).
+
+For details on saving and transporting Docker images as a file, see Docker's documentation on
+[`docker save`](https://docs.docker.com/engine/reference/commandline/save/), [`docker load`](https://docs.docker.com/engine/reference/commandline/load/),
+[`docker export`](https://docs.docker.com/engine/reference/commandline/export/), and [`docker import`](https://docs.docker.com/engine/reference/commandline/import/).
+
+#### Set Container Scanning CI job variables to use local Container Scanner analyzers
+
+Container Scanning can be executed on an offline GitLab Ultimate installation using the following process:
1. [Override the container scanning template](#overriding-the-container-scanning-template) in your `.gitlab-ci.yml` file to refer to the Docker images hosted on your local Docker container registry:
@@ -234,7 +273,12 @@ Container Scanning can be executed on an offline GitLab Ultimate installation by
self-signed certificate, then you must set `DOCKER_INSECURE: "true"` in the above
`container_scanning` section of your `.gitlab-ci.yml`.
-It may be worthwhile to set up a [scheduled pipeline](../../../ci/pipelines/schedules.md) to automatically build a new version of the vulnerabilities database on a preset schedule. You can use the following `.gitlab-yml.ci` as a template:
+#### Automating Container Scanning vulnerability database updates with a pipeline
+
+It can be worthwhile to set up a [scheduled pipeline](../../../ci/pipelines/schedules.md) to
+automatically build a new version of the vulnerabilities database on a preset schedule. Automating
+this with a pipeline means you won't have to do it manually each time. You can use the following
+`.gitlab-yml.ci` as a template:
```yaml
image: docker:stable
diff --git a/doc/user/application_security/dast/img/dast_urls_scanned_v12_10.png b/doc/user/application_security/dast/img/dast_urls_scanned_v12_10.png
index c15a2da513c..9f277dcb578 100644
--- a/doc/user/application_security/dast/img/dast_urls_scanned_v12_10.png
+++ b/doc/user/application_security/dast/img/dast_urls_scanned_v12_10.png
Binary files differ
diff --git a/doc/user/application_security/dast/index.md b/doc/user/application_security/dast/index.md
index 6f51aaf4931..abf194aae48 100644
--- a/doc/user/application_security/dast/index.md
+++ b/doc/user/application_security/dast/index.md
@@ -376,6 +376,10 @@ configuration, the last mention of the variable will take precedence.
### Overriding the DAST template
+CAUTION: **Deprecation:**
+Beginning in GitLab 13.0, the use of [`only` and `except`](../../../ci/yaml/README.md#onlyexcept-basic)
+is no longer supported. When overriding the template, you must use [`rules`](../../../ci/yaml/README.md#rules) instead.
+
If you want to override the job definition (for example, change properties like
`variables` or `dependencies`), you need to declare a `dast` job after the
template inclusion and specify any additional keys under it. For example:
diff --git a/doc/user/application_security/dependency_list/img/dependency_list_v12_10.png b/doc/user/application_security/dependency_list/img/dependency_list_v12_10.png
new file mode 100644
index 00000000000..2755b42f1e4
--- /dev/null
+++ b/doc/user/application_security/dependency_list/img/dependency_list_v12_10.png
Binary files differ
diff --git a/doc/user/application_security/dependency_list/index.md b/doc/user/application_security/dependency_list/index.md
index b9c3b6521d6..73d2cfeaf00 100644
--- a/doc/user/application_security/dependency_list/index.md
+++ b/doc/user/application_security/dependency_list/index.md
@@ -17,32 +17,25 @@ sidebar. This information is sometimes referred to as a Software Bill of Materia
## Viewing dependencies
-![Dependency List](img/dependency_list_v12_4.png)
+![Dependency List](img/dependency_list_v12_10.png)
Dependencies are displayed with the following information:
| Field | Description |
| --------- | ----------- |
-| Status | Displays whether or not the dependency has any known vulnerabilities |
-| Component | The dependency's name |
-| Version | The exact locked version of the dependency your project uses |
+| Component | The dependency's name and version |
| Packager | The packager used to install the depedency |
| Location | A link to the packager-specific lockfile in your project that declared the dependency |
| License | Links to dependency's software licenses |
-Dependencies shown are initially sorted by their names. They can also be sorted
-by the packager they were installed by, or by the severity of their known
-vulnerabilities.
-
-There is a second list under the `Vulnerable components` tab displaying only
-those dependencies with known vulnerabilities. If there are none, this tab is
-disabled.
+Dependencies shown are initially sorted by the severity of their known vulnerabilities, if any. They
+can also be sorted by name or by the packager that installed them.
### Vulnerabilities
-If a dependency has known vulnerabilities, they can be viewed by clicking on the
-`Status` cell of that dependency. The severity and description of each
-vulnerability will then be displayed below it.
+If a dependency has known vulnerabilities, you can view them by clicking the arrow next to the
+dependency's name or the badge that indicates how many known vulnerabilities exist. For each
+vulnerability, its severity and description then appears below it.
## Licenses
diff --git a/doc/user/application_security/dependency_scanning/index.md b/doc/user/application_security/dependency_scanning/index.md
index ae006178945..cda621e61a6 100644
--- a/doc/user/application_security/dependency_scanning/index.md
+++ b/doc/user/application_security/dependency_scanning/index.md
@@ -115,6 +115,10 @@ configuration, the last mention of the variable will take precedence.
### Overriding the Dependency Scanning template
+CAUTION: **Deprecation:**
+Beginning in GitLab 13.0, the use of [`only` and `except`](../../../ci/yaml/README.md#onlyexcept-basic)
+is no longer supported. When overriding the template, you must use [`rules`](../../../ci/yaml/README.md#rules) instead.
+
If you want to override the job definition (for example, change properties like
`variables` or `dependencies`), you need to declare a `dependency_scanning` job
after the template inclusion and specify any additional keys under it. For example:
@@ -175,6 +179,8 @@ The following variables are used for configuring specific analyzers (used for a
| `DS_PIP_DEPENDENCY_PATH` | `gemnasium-python` | | Path to load Python pip dependencies from. ([Introduced](https://gitlab.com/gitlab-org/gitlab/issues/12412) in GitLab 12.2) |
| `DS_PYTHON_VERSION` | `retire.js` | | Version of Python. If set to 2, dependencies are installed using Python 2.7 instead of Python 3.6. ([Introduced](https://gitlab.com/gitlab-org/gitlab/issues/12296) in GitLab 12.1)|
| `MAVEN_CLI_OPTS` | `gemnasium-maven` | `"-DskipTests --batch-mode"` | List of command line arguments that will be passed to `maven` by the analyzer. See an example for [using private repos](../index.md#using-private-maven-repos). |
+| `GRADLE_CLI_OPTS` | `gemnasium-maven` | | List of command line arguments that will be passed to `gradle` by the analyzer. |
+| `SBT_CLI_OPTS` | `gemnasium-maven` | | List of command-line arguments that the analyzer will pass to `sbt`. |
| `BUNDLER_AUDIT_UPDATE_DISABLED` | `bundler-audit` | `"false"` | Disable automatic updates for the `bundler-audit` analyzer. Useful if you're running Dependency Scanning in an offline, air-gapped environment.|
| `BUNDLER_AUDIT_ADVISORY_DB_URL` | `bundler-audit` | `https://github.com/rubysec/ruby-advisory-db` | URL of the advisory database used by bundler-audit. |
| `BUNDLER_AUDIT_ADVISORY_DB_REF_NAME` | `bundler-audit` | `master` | Git ref for the advisory database specified by `BUNDLER_AUDIT_ADVISORY_DB_URL`. |
@@ -415,6 +421,181 @@ You can search the [gemnasium-db](https://gitlab.com/gitlab-org/security-product
to find a vulnerability in the Gemnasium database.
You can also [submit new vulnerabilities](https://gitlab.com/gitlab-org/security-products/gemnasium-db/blob/master/CONTRIBUTING.md).
+## Running Dependency Scanning in an offline environment
+
+For self-managed GitLab instances in an environment with limited, restricted, or intermittent access
+to external resources through the internet, some adjustments are required for dependency scannings jobs to run successfully. For more information, see [Offline environments](../offline_deployments/index.md).
+
+### Requirements for offline Dependency Scanning
+
+Here are the requirements for using Dependency Scanning in an offline environment:
+
+- [Disable Docker-In-Docker](#disabling-docker-in-docker-for-dependency-scanning)
+- GitLab Runner with the [`docker` or `kubernetes` executor](#requirements).
+- Docker Container Registry with locally available copies of dependency scanning [analyzer](https://gitlab.com/gitlab-org/security-products/analyzers) images.
+- Host an offline Git copy of the [gemnasium-db advisory database](https://gitlab.com/gitlab-org/security-products/gemnasium-db/)
+- _Only if scanning Ruby projects_: Host an offline Git copy of the [advisory database](https://github.com/rubysec/ruby-advisory-db).
+- _Only if scanning npm/yarn projects_: Host an offline copy of the [retire.js](https://github.com/RetireJS/retire.js/) [node](https://github.com/RetireJS/retire.js/blob/master/repository/npmrepository.json) and [js](https://github.com/RetireJS/retire.js/blob/master/repository/jsrepository.json) advisory databases.
+
+NOTE: **Note:**
+GitLab Runner has a [default `pull policy` of `always`](https://docs.gitlab.com/runner/executors/docker.html#using-the-always-pull-policy),
+meaning the runner will try to pull Docker images from the GitLab container registry even if a local
+copy is available. GitLab Runner's [`pull_policy` can be set to `if-not-present`](https://docs.gitlab.com/runner/executors/docker.html#using-the-if-not-present-pull-policy)
+in an offline environment if you prefer using only locally available Docker images. However, we
+recommend keeping the pull policy setting to `always` as it will better enable updated scanners to
+be utilized within your CI/CD pipelines.
+
+### Make GitLab Dependency Scanning analyzer images available inside your Docker registry
+
+For Dependency Scanning, import docker images ([supported languages and frameworks](#supported-languages-and-package-managers))
+from `registry.gitlab.com` to your offline docker registry. The Dependency Scanning analyzer
+docker images are:
+
+```plaintext
+registry.gitlab.com/gitlab-org/security-products/analyzers/gemnasium:2
+registry.gitlab.com/gitlab-org/security-products/analyzers/gemnasium-maven:2
+registry.gitlab.com/gitlab-org/security-products/analyzers/gemnasium-python:2
+registry.gitlab.com/gitlab-org/security-products/analyzers/retire.js:2
+registry.gitlab.com/gitlab-org/security-products/analyzers/bundler-audit:2
+```
+
+The process for importing Docker images into a local offline Docker registry depends on
+**your network security policy**. Please consult your IT staff to find an accepted and approved
+process by which external resources can be imported or temporarily accessed. Note that these scanners are [updated periodically](../index.md#maintenance-and-update-of-the-vulnerabilities-database)
+with new definitions, so consider if you are able to make periodic updates yourself.
+
+For details on saving and transporting Docker images as a file, see Docker's documentation on
+[`docker save`](https://docs.docker.com/engine/reference/commandline/save/), [`docker load`](https://docs.docker.com/engine/reference/commandline/load/),
+[`docker export`](https://docs.docker.com/engine/reference/commandline/export/), and [`docker import`](https://docs.docker.com/engine/reference/commandline/import/).
+
+### Set Dependency Scanning CI config for "offline" use
+
+Below is a general `.gitlab-ci.yml` template to configure your environment for running Dependency
+Scanning offline:
+
+```yaml
+include:
+ - template: Dependency-Scanning.gitlab-ci.yml
+
+variables:
+ DS_DISABLE_DIND: "true"
+ DS_ANALYZER_IMAGE_PREFIX: "docker-registry.example.com/analyzers"
+```
+
+See explanations of the variables above in the [configuration section](#configuration).
+
+### Specific settings for languages and package managers
+
+For every language and package manager, add the following to the variables section of
+`.gitlab-ci.yml`:
+
+```yaml
+GEMNASIUM_DB_REMOTE_URL: "gitlab.example.com/gemnasium-db.git"
+```
+
+See the following sections for additional instructions on specific languages and package managers.
+
+#### JavaScript (npm and yarn) projects
+
+Add the following to the variables section of `.gitlab-ci.yml`:
+
+```yaml
+RETIREJS_JS_ADVISORY_DB: "example.com/jsrepository.json"
+RETIREJS_NODE_ADVISORY_DB: "example.com/npmrepository.json"
+```
+
+#### Ruby (gem) projects
+
+Add the following to the variables section of `.gitlab-ci.yml`:
+
+```yaml
+BUNDLER_AUDIT_ADVISORY_DB_REF_NAME: "master"
+BUNDLER_AUDIT_ADVISORY_DB_URL: "gitlab.example.com/ruby-advisory-db.git"
+```
+
+#### Java (Maven) projects
+
+When using a self-signed certificates, add the following to the variables section of`.gitlab-ci.yml`:
+
+```yaml
+MAVEN_CLI_OPTS="-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true"`
+```
+
+#### Java (Gradle) projects
+
+When using self-signed certificates, add the following job section to the `.gitlab-ci.yml`:
+
+```yaml
+gemnasium-maven-dependency_scanning:
+ variables:
+ before_script:
+ - echo -n | openssl s_client -connect maven-repo.example.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/internal.crt
+ - keytool -importcert -file /tmp/internal.crt -cacerts -storepass changeit -noprompt
+```
+
+This adds the self-signed certificates of your maven repository to the Java Key Store of the analyzer's docker image.
+
+#### Scala (sbt) projects
+
+When using self-signed certificates, add the following job section to the `.gitlab-ci.yml`:
+
+```yaml
+gemnasium-maven-dependency_scanning:
+ variables:
+ before_script:
+ - echo -n | openssl s_client -connect gitlab-airgap-test.us-west1-b.c.group-secure-a89fe7.internal:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/internal.crt
+ - keytool -importcert -file /tmp/internal.crt -cacerts -storepass changeit -noprompt
+```
+
+This adds the self-signed certificates of your maven repository to the Java Key Store of the analyzer's docker image.
+
+#### Python (pip) and Python (Pipfile) projects
+
+Add the following `pip.conf` to your repository to define your index URL and trust its self-signed
+certificate:
+
+```toml
+[global]
+index-url = https://pypi.example.com
+trusted-host = pypi.example.com
+```
+
+Add the following job section to `.gitlab-ci.yml`:
+
+```yaml
+gemnasium-python-dependency_scanning:
+ before_script:
+ - mkdir ~/.config/pip
+ - cp pip.conf ~/.config/pip/pip.conf
+```
+
+#### Python (setuptools)
+
+When using self-signed certificates for your private PyPi repo no extra job configuration (aside
+from the template `.gitlab-ci.yml` above) is needed. However, you must update your `setup.py` to
+ensure that it can reach your private repo. Here is an example configuration:
+
+1. Update `setup.py` to create a `dependency_links` attribute pointing at your private repo for each
+ dependency in the `install_requires` list:
+
+ ```python
+ install_requires=['pyparsing>=2.0.3'],
+ dependency_links=['https://pypi.example.com/simple/pyparsing'],
+ ```
+
+1. Fetch the certificate from your repository URL and add it to the project:
+
+ ```bash
+ echo -n | openssl s_client -connect pypi.example.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > internal.crt
+ ```
+
+1. Point `setup.py` at the newly downloaded certificate:
+
+ ```python
+ import setuptools.ssl_support
+ setuptools.ssl_support.cert_paths = ['internal.crt']
+ ```
+
## Troubleshooting
### Error response from daemon: error processing tar file: docker-tar: relocation error
diff --git a/doc/user/application_security/sast/index.md b/doc/user/application_security/sast/index.md
index 011f95c7049..a6457d58fe2 100644
--- a/doc/user/application_security/sast/index.md
+++ b/doc/user/application_security/sast/index.md
@@ -143,6 +143,10 @@ the pipeline configuration, the last mention of the variable will take precedenc
### Overriding the SAST template
+CAUTION: **Deprecation:**
+Beginning in GitLab 13.0, the use of [`only` and `except`](../../../ci/yaml/README.md#onlyexcept-basic)
+is no longer supported. When overriding the template, you must use [`rules`](../../../ci/yaml/README.md#rules) instead.
+
If you want to override the job definition (for example, change properties like
`variables` or `dependencies`), you need to declare a `sast` job after the
template inclusion and specify any additional keys under it. For example:
diff --git a/doc/user/application_security/security_dashboard/img/project_security_dashboard_export_csv_v12.10.png b/doc/user/application_security/security_dashboard/img/project_security_dashboard_export_csv_v12.10.png
new file mode 100644
index 00000000000..07b41b471d4
--- /dev/null
+++ b/doc/user/application_security/security_dashboard/img/project_security_dashboard_export_csv_v12.10.png
Binary files differ
diff --git a/doc/user/application_security/security_dashboard/index.md b/doc/user/application_security/security_dashboard/index.md
index 1eef6b9b696..42b28b7b9f2 100644
--- a/doc/user/application_security/security_dashboard/index.md
+++ b/doc/user/application_security/security_dashboard/index.md
@@ -34,13 +34,13 @@ To use the instance, group, project, or pipeline security dashboard:
1. [GitLab Runner](https://docs.gitlab.com/runner/) 11.5 or newer must be used.
If you're using the shared Runners on GitLab.com, this is already the case.
-## Pipeline Security Dashboard
+## Pipeline Security
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/13496) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.3.
-At the pipeline level, the Security Dashboard displays the vulnerabilities present in the branch of the project the pipeline was run against.
+At the pipeline level, the Security section displays the vulnerabilities present in the branch of the project the pipeline was run against.
-Visit the page for any pipeline which has run any of the [supported reports](#supported-reports). Click the **Security** tab to view the Security Dashboard.
+Visit the page for any pipeline which has run any of the [supported reports](#supported-reports). Click the **Security** tab to view the Security findings.
![Pipeline Security Dashboard](img/pipeline_security_dashboard_v12_6.png)
@@ -54,6 +54,18 @@ for your project from the last successful pipeline. Use it to find and fix vulne
![Project Security Dashboard](img/project_security_dashboard_v12_3.png)
+### Export vulnerabilities
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/197494) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.10.
+
+You can export all your project's vulnerabilities as CSV by clicking on the export button located at top right of the Project Security Dashboard. This will initiate the process, and once complete, the CSV report will be downloaded. The report will contain all vulnerabilities in the project as filters won't apply.
+
+NOTE: **Note:**
+It may take several minutes for the download to start if your project consists
+of thousands of vulnerabilities. Do not close the page until the download finishes.
+
+![CSV Export Button](img/project_security_dashboard_export_csv_v12.10.png)
+
## Group Security Dashboard
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/6709) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.5.
diff --git a/doc/user/clusters/applications.md b/doc/user/clusters/applications.md
index cc7b5dcd5fb..47cbc0d4a1e 100644
--- a/doc/user/clusters/applications.md
+++ b/doc/user/clusters/applications.md
@@ -553,12 +553,12 @@ To enable Fluentd:
1. Navigate to **{cloud-gear}** **Operations > Kubernetes** and click
**Applications**. You will be prompted to enter a host, port and protocol
where the WAF logs will be sent to via syslog.
-1. Provide the host domain name or URL in **SIEM URL or Host**.
+1. Provide the host domain name or URL in **SIEM Hostname**.
1. Provide the host port number in **SIEM Port**.
1. Select a **SIEM Protocol**.
1. Check **Send ModSecurity Logs**. If you do not select this checkbox, the **Install**
button is disabled.
-1. Click **Install**.
+1. Click **Save changes**.
![Fluentd input fields](img/fluentd_v12_10.png)
@@ -592,6 +592,7 @@ Supported applications:
- [Elastic Stack](#install-elastic-stack-using-gitlab-cicd)
- [Crossplane](#install-crossplane-using-gitlab-cicd)
- [Fluentd](#install-fluentd-using-gitlab-cicd)
+- [Knative](#install-knative-using-gitlab-cicd)
### Usage
@@ -652,7 +653,7 @@ ingress:
Ingress will then be installed into the `gitlab-managed-apps` namespace
of your cluster.
-You can customize the installation of Ingress by defining
+You can customize the installation of Ingress by defining a
`.gitlab/managed-apps/ingress/values.yaml` file in your cluster
management project. Refer to the
[chart](https://github.com/helm/charts/tree/master/stable/nginx-ingress)
@@ -689,7 +690,7 @@ certManager:
installed: false
```
-You can customize the installation of cert-manager by defining
+You can customize the installation of cert-manager by defining a
`.gitlab/managed-apps/cert-manager/values.yaml` file in your cluster
management project. Refer to the
[chart](https://hub.helm.sh/charts/jetstack/cert-manager) for the
@@ -1054,7 +1055,7 @@ In this alpha implementation of installing Elastic Stack through CI, reading the
### Install Crossplane using GitLab CI/CD
-> [Introduced](https://gitlab.com/gitlab-org/cluster-integration/cluster-applications/-/merge_requests/68) in GitLab 12.9.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/35675) in GitLab 12.9.
Crossplane is installed using GitLab CI/CD by defining configuration in
`.gitlab/managed-apps/config.yaml`.
@@ -1068,13 +1069,15 @@ Crossplane:
Crossplane is installed into the `gitlab-managed-apps` namespace of your cluster.
-You can check the default [values.yaml](https://github.com/crossplane/crossplane/blob/master/cluster/charts/crossplane/values.yaml.tmpl) we set for this chart.
+You can check the default
+[values.yaml](https://github.com/crossplane/crossplane/blob/master/cluster/charts/crossplane/values.yaml.tmpl)
+we set for this chart.
You can customize the installation of Crossplane by defining
`.gitlab/managed-apps/crossplane/values.yaml` file in your cluster
management project. Refer to the
[chart](https://github.com/crossplane/crossplane/tree/master/cluster/charts/crossplane#configuration) for the
-available configuration options. Note that this link points to the docs for the current development release, which may differ from the version you have installed. You can check out a specific version in the branch/tag switcher.
+available configuration options. Note that this link points to the documentation for the current development release, which may differ from the version you have installed.
### Install Fluentd using GitLab CI/CD
@@ -1100,6 +1103,48 @@ The configuration chart link points to the current development release, which
may differ from the version you have installed. To ensure compatibility, switch
to the specific branch or tag you are using.
+### Install Knative using GitLab CI/CD
+
+To install Knative, define the `.gitlab/managed-apps/config.yaml` file
+with:
+
+```yaml
+knative:
+ installed: true
+```
+
+You can customize the installation of Knative by defining `.gitlab/managed-apps/knative/values.yaml`
+file in your cluster management project. Refer to the [chart](https://gitlab.com/gitlab-org/charts/knative)
+for the available configuration options.
+
+Here is an example configuration for Knative:
+
+```yaml
+domain: 'my.wildcard.A.record.dns'
+```
+
+If you plan to use GitLab Serverless capabilities, be sure to set an A record wildcard domain on your custom configuration.
+
+#### Knative Metrics
+
+GitLab provides [Invocation Metrics](../project/clusters/serverless/index.md#invocation-metrics) for your functions. To collect these metrics, you must have:
+
+1. Knative and Prometheus managed applications installed on your cluster.
+1. Manually applied the custom metrics on your cluster by running the following command:
+
+ ```bash
+ kubectl apply -f https://gitlab.com/gitlab-org/cluster-integration/cluster-applications/-/raw/02c8231e30ef5b6725e6ba368bc63863ceb3c07d/src/default-data/knative/istio-metrics.yaml
+ ```
+
+#### Uninstall Knative
+
+To uninstall Knative, you must first manually remove any custom metrics you have added
+by running the following command:
+
+```bash
+kubectl delete -f https://gitlab.com/gitlab-org/cluster-integration/cluster-applications/-/raw/02c8231e30ef5b6725e6ba368bc63863ceb3c07d/src/default-data/knative/istio-metrics.yaml
+```
+
## Upgrading applications
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/24789) in GitLab 11.8.
diff --git a/doc/user/clusters/img/fluentd_v12_10.png b/doc/user/clusters/img/fluentd_v12_10.png
index 7593f99ab51..e8c5c832020 100644
--- a/doc/user/clusters/img/fluentd_v12_10.png
+++ b/doc/user/clusters/img/fluentd_v12_10.png
Binary files differ
diff --git a/doc/user/compliance/license_compliance/index.md b/doc/user/compliance/license_compliance/index.md
index 9fcc9acf5ea..2e771a17163 100644
--- a/doc/user/compliance/license_compliance/index.md
+++ b/doc/user/compliance/license_compliance/index.md
@@ -154,6 +154,10 @@ directory of your project.
### Overriding the template
+CAUTION: **Deprecation:**
+Beginning in GitLab 13.0, the use of [`only` and `except`](../../../ci/yaml/README.md#onlyexcept-basic)
+is no longer supported. When overriding the template, you must use [`rules`](../../../ci/yaml/README.md#rules) instead.
+
If you want to override the job definition (for example, change properties like
`variables` or `dependencies`), you need to declare a `license_scanning` job
after the template inclusion and specify any additional keys under it. For example:
@@ -301,29 +305,69 @@ license_scanning:
## Running License Compliance in an offline environment
-License Compliance can be executed on an offline GitLab Ultimate installation by using the following
-process:
+For self-managed GitLab instances in an environment with limited, restricted, or intermittent access
+to external resources through the internet, some adjustments are required for the License Compliance job to
+successfully run.
+
+### Requirements for offline License Compliance
+
+To use License Compliance in an offline environment, you need:
+
+- GitLab Runner with the [`docker` or `kubernetes` executor](#requirements).
+- Docker Container Registry with locally available copies of License Compliance [analyzer](https://gitlab.com/gitlab-org/security-products/analyzers) images.
+
+NOTE: **Note:**
+GitLab Runner has a [default `pull policy` of `always`](https://docs.gitlab.com/runner/executors/docker.html#using-the-always-pull-policy),
+meaning the runner will try to pull Docker images from the GitLab container registry even if a local
+copy is available. GitLab Runner's [`pull_policy` can be set to `if-not-present`](https://docs.gitlab.com/runner/executors/docker.html#using-the-if-not-present-pull-policy)
+in an offline environment if you prefer using only locally available Docker images. However, we
+recommend leaving the pull policy set to `always`, as it better enables updated scanners to be used
+within your CI/CD pipelines.
+
+### Make GitLab License Compliance analyzer images available inside your Docker registry
+
+For License Compliance with all [supported languages and package managers](#supported-languages-and-package-managers),
+import the following default License Compliance analyzer images from `registry.gitlab.com` to your
+offline [local Docker container registry](../../packages/container_registry/index.md):
+
+```plaintext
+registry.gitlab.com/gitlab-org/security-products/license-management:latest
+```
+
+The process for importing Docker images into a local offline Docker registry depends on
+**your network security policy**. Please consult your IT staff to find an accepted and approved
+process by which external resources can be imported or temporarily accessed. Note that these scanners are [updated periodically](../../application_security/index.md#maintenance-and-update-of-the-vulnerabilities-database)
+with new definitions, so consider if you are able to make periodic updates yourself.
+
+For details on saving and transporting Docker images as a file, see Docker's documentation on
+[`docker save`](https://docs.docker.com/engine/reference/commandline/save/), [`docker load`](https://docs.docker.com/engine/reference/commandline/load/),
+[`docker export`](https://docs.docker.com/engine/reference/commandline/export/), and [`docker import`](https://docs.docker.com/engine/reference/commandline/import/).
+
+### Set License Compliance CI job variables to use local License Compliance analyzers
-1. Host the License Compliance image
- `registry.gitlab.com/gitlab-org/security-products/license-management:latest` in your local Docker
- container registry.
-1. Add the following configuration to your `.gitlab-ci.yml` file. You must replace `image` to refer
- to the License Compliance Docker image hosted on your local Docker container registry:
+Override License Compliance environment variables to use to your local container registry
+as the source for License Compliance analyzer images.
- ```yaml
- include:
- - template: License-Scanning.gitlab-ci.yml
+For example, this assumes a local Docker registry repository of `localhost:5000/analyzers`:
+
+```yaml
+include:
+ - template: License-Scanning.gitlab-ci.yml
- license_scanning:
- image: registry.example.com/namespace/license-management:latest
- ```
+license_scanning:
+ image:
+ name: localhost:5000/analyzers/license-management:latest
+```
-1. Ensure the package registry is reachable from within the GitLab environment and that the package
- manager is configured to use your preferred package registry.
+The License Compliance job should now use local copies of the License Compliance analyzers to scan
+your code and generate security reports, without requiring internet access.
Additional [configuration](#using-private-maven-repos) may be needed for connecting to private Maven
repositories.
+Exact name matches are required for [project policies](#project-policies-for-license-compliance)
+when running in an offline environment ([see related issue](https://gitlab.com/gitlab-org/gitlab/-/issues/212388)).
+
## Project policies for License Compliance
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/5940) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.4.
diff --git a/doc/user/group/img/group_activity_analytics_v12_10.png b/doc/user/group/img/group_activity_analytics_v12_10.png
new file mode 100644
index 00000000000..e49594c155b
--- /dev/null
+++ b/doc/user/group/img/group_activity_analytics_v12_10.png
Binary files differ
diff --git a/doc/user/group/index.md b/doc/user/group/index.md
index fdcc4105620..b819e3e971e 100644
--- a/doc/user/group/index.md
+++ b/doc/user/group/index.md
@@ -226,16 +226,42 @@ To change this setting for a specific group:
To change this setting globally, see [Default project creation protection](../admin_area/settings/visibility_and_access_controls.md#default-project-creation-protection).
-## Viewing group activity
+## View group details
+
+A group's **Details** page includes tabs for:
+
+- Subgroups and projects.
+- Shared projects.
+- Archived projects.
+
+### Group activity analytics overview
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/207164) in GitLab [Starter](https://about.gitlab.com/pricing/) 12.10 as
+a [beta feature](https://about.gitlab.com/handbook/product/#beta)
+
+The group details view also shows the number of the following items created in the last 90 days: **(STARTER)**
+
+- Merge requests.
+- Issues.
+- Members.
+
+These Group Activity Analytics can be enabled with the `group_activity_analytics` [feature flag](../../development/feature_flags/development.md#enabling-a-feature-flag-in-development).
+
+![Recent Group Activity](img/group_activity_analytics_v12_10.png)
+
+For details, see the section on how you can [View group activity](#view-group-activity).
+
+## View group activity
A group's **Activity** page displays the most recent actions taken in a group, including:
-- **Push events**: Recent pushes to branches
-- **Merge events**: Recent merges
-- **Issue events**: Issues opened or closed
-- **Epic events**: Epics opened or closed
-- **Comments**: Comments opened or closed
-- **Team**: Team members who have joined or left the group
+- **Push events**: Recent pushes to branches.
+- **Merge events**: Recent merges.
+- **Issue events**: Issues opened or closed.
+- **Epic events**: Epics opened or closed.
+- **Comments**: Comments opened or closed.
+- **Team**: Team members who have joined or left the group.
+- **Wiki**: Wikis created, deleted, or updated.
The entire activity feed is also available in Atom format by clicking the
**RSS** icon.
diff --git a/doc/user/group/saml_sso/index.md b/doc/user/group/saml_sso/index.md
index e78a894d987..f49dd225146 100644
--- a/doc/user/group/saml_sso/index.md
+++ b/doc/user/group/saml_sso/index.md
@@ -242,7 +242,7 @@ For a demo of the Azure SAML setup including SCIM, see [SCIM Provisioning on Azu
|--------------|----------------|
| Identifier | Identifier (Entity ID) |
| Assertion consumer service URL | Reply URL (Assertion Consumer Service URL) |
-| Identity provider single sign on URL | Login URL |
+| Identity provider single sign on URL | Sign on URL |
| Certificate fingerprint | Thumbprint |
We recommend:
diff --git a/doc/user/incident_management/index.md b/doc/user/incident_management/index.md
index 2b95128bffd..8505afb375e 100644
--- a/doc/user/incident_management/index.md
+++ b/doc/user/incident_management/index.md
@@ -45,7 +45,7 @@ The emails will be sent to [owners and maintainers](../permissions.md) of the pr
Prometheus alerts can be set up in both:
-- [GitLab-managed Prometheus](../project/integrations/prometheus.md#setting-up-alerts-for-prometheus-metrics-ultimate) and
+- [GitLab-managed Prometheus](../project/integrations/prometheus.md#setting-up-alerts-for-prometheus-metrics) and
- [Self-managed Prometheus](../project/integrations/prometheus.md#external-prometheus-instances) installations.
### Alert endpoint
diff --git a/doc/user/packages/img/group_packages_list_v12_10.png b/doc/user/packages/img/group_packages_list_v12_10.png
new file mode 100644
index 00000000000..ba9f2892961
--- /dev/null
+++ b/doc/user/packages/img/group_packages_list_v12_10.png
Binary files differ
diff --git a/doc/user/packages/img/package_activity_v12_10.png b/doc/user/packages/img/package_activity_v12_10.png
new file mode 100644
index 00000000000..4fea9a7ca3f
--- /dev/null
+++ b/doc/user/packages/img/package_activity_v12_10.png
Binary files differ
diff --git a/doc/user/packages/img/package_detail_v12_10.png b/doc/user/packages/img/package_detail_v12_10.png
new file mode 100644
index 00000000000..b2cd8e31955
--- /dev/null
+++ b/doc/user/packages/img/package_detail_v12_10.png
Binary files differ
diff --git a/doc/user/packages/img/project_packages_list_v12_10.png b/doc/user/packages/img/project_packages_list_v12_10.png
new file mode 100644
index 00000000000..2dfb92fa796
--- /dev/null
+++ b/doc/user/packages/img/project_packages_list_v12_10.png
Binary files differ
diff --git a/doc/user/packages/index.md b/doc/user/packages/index.md
index 78ddc06173c..8e98dd70346 100644
--- a/doc/user/packages/index.md
+++ b/doc/user/packages/index.md
@@ -14,6 +14,85 @@ The Packages feature allows GitLab to act as a repository for the following:
| [Maven Repository](maven_repository/index.md) **(PREMIUM)** | The GitLab Maven Repository enables every project in GitLab to have its own space to store [Maven](https://maven.apache.org/) packages. | 11.3+ |
| [NPM Registry](npm_registry/index.md) **(PREMIUM)** | The GitLab NPM Registry enables every project in GitLab to have its own space to store [NPM](https://www.npmjs.com/) packages. | 11.7+ |
| [NuGet Repository](nuget_repository/index.md) **(PREMIUM)** | The GitLab NuGet Repository will enable every project in GitLab to have its own space to store [NuGet](https://www.nuget.org/) packages. | 12.8+ |
+| [PyPi Repository](pypi_repository/index.md) **(PREMIUM)** | The GitLab PyPi Repository will enable every project in GitLab to have its own space to store [PyPi](https://pypi.org/) packages. | 12.10+ |
+
+## Enable the Package Registry for your project
+
+If you cannot find the **{package}** **Packages > List** entry under your
+project's sidebar, it is not enabled in your GitLab instance. Ask your
+administrator to enable GitLab Package Registry following the administration
+documentation.
+
+Once enabled for your GitLab instance, to enable Package Registry for your
+project:
+
+1. Go to your project's **Settings > General** page.
+1. Expand the **Visibility, project features, permissions** section and enable the
+**Packages** feature on your project.
+1. Press **Save changes** for the changes to take effect. You should now be able to
+see the **Packages > List** link in the sidebar.
+
+### View Packages for your project
+
+Navigating to your project's **{package}** **Packages > List** will show a list
+of all packages that have been added to your project.
+
+![Project Packages list](img/project_packages_list_v12_10.png)
+
+On this page, you can:
+
+- View all the packages that have been uploaded to the project.
+- Sort the packages list by created date, version or name.
+- Filter the list by package name.
+- Change tabs to display packages of a certain type.
+- Remove a package (if you have suitable [permissions](../permissions.md)).
+- Navigate to specific package detail page.
+
+### View Packages for your group
+
+You can view all packages belonging to a group by navigating to **{package}**
+**Packages > List** from the group sidebar.
+
+![Group Packages list](img/group_packages_list_v12_10.png)
+
+On this page, you can:
+
+- View all the packages that have been uploaded to each of the groups projects.
+- Sort the packages list by created date, version, name or project.
+- Filter the list by package name.
+- Change tabs to display packages of a certain type.
+- Navigate to specific package detail page.
+
+### View additional package information
+
+Additional package information can be viewed by browsing to the package details
+page from the either the project or group list.
+
+![Package detail](img/package_detail_v12_10.png)
+
+On this page you can:
+
+- See the extended package information, including metadata. This is unique to
+each package type and will display different information for different types.
+- View quick installation and registry setup instructions. These are a shortcut
+for users who have already set up the Package Registry and just want quick
+installation instructions.
+- View the package activity, including when and how a package was published.
+- View and download the contents of the package. Outside of installing a
+package via a manager, you can also download the files individually.
+- Delete the package (if you have suitable [permissions](../permissions.md)).
+
+### Build packages via GitLab CI/CD
+
+Some of the supported packages can be built via [GitLab CI/CD](./../../ci/README.md)
+using the `CI_JOB_TOKEN`. If a package is built this way, then extended activity
+information is displayed on the package details page:
+
+![Package CI/CD activity](img/package_activity_v12_10.png)
+
+You can view which pipeline published the package, as well as the commit and
+user who triggered it. To see if a package type supports being built via CI/CD,
+check the specific documentation for your package type.
## Suggested contributions
diff --git a/doc/user/packages/pypi_repository/index.md b/doc/user/packages/pypi_repository/index.md
new file mode 100644
index 00000000000..11d7b828813
--- /dev/null
+++ b/doc/user/packages/pypi_repository/index.md
@@ -0,0 +1,84 @@
+# GitLab PyPi Repository **(PREMIUM)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/208747) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.10.
+
+With the GitLab PyPi Repository, every project can have its own space to store PyPi packages.
+
+The GitLab PyPi Repository works with:
+
+- [pip](https://pypi.org/project/pip/)
+- [twine](https://pypi.org/project/twine/)
+
+## Setting up your development environment
+
+You will need a recent version of [pip](https://pypi.org/project/pip/) and [twine](https://pypi.org/project/twine/).
+
+## Enabling the PyPi Repository
+
+NOTE: **Note:**
+This option is available only if your GitLab administrator has
+[enabled support for the Package Registry](../../../administration/packages/index.md). **(PREMIUM ONLY)**
+
+After the PyPi Repository is enabled, it will be available for all new projects
+by default. To enable it for existing projects, or if you want to disable it:
+
+1. Navigate to your project's **Settings > General > Permissions**.
+1. Find the Packages feature and enable or disable it.
+1. Click on **Save changes** for the changes to take effect.
+
+You should then be able to see the **Packages** section on the left sidebar.
+
+## Adding the GitLab PyPi Repository as a source
+
+You will need the following:
+
+- A personal access token. You can generate a [personal access token](../../../user/profile/personal_access_tokens.md) with the scope set to `api` for repository authentication.
+- A suitable name for your source.
+- Your project ID which can be found on the home page of your project.
+
+Edit your `~/.pypirc` file and add the following:
+
+```ini
+[gitlab]
+repository = https://gitlab.com/api/v4/projects/<project_id>/packages/pypi
+username = __token__
+password = <your personal access token>
+```
+
+## Uploading packages
+
+When uploading packages, note that:
+
+- The maximum allowed size is 50 Megabytes.
+- If you upload the same package with the same version multiple times, each consecutive upload
+ is saved as a separate file. When installing a package, GitLab will serve the most recent file.
+- When uploading packages to GitLab, they will not be displayed in the packages UI of your project
+ immediately. It can take up to 10 minutes to process a package.
+
+### Upload packages with Twine
+
+This section assumes that your project is properly built and you already [created a PyPi package with setuptools](https://packaging.python.org/tutorials/packaging-projects/).
+Upload your package using the following command:
+
+```shell
+python -m twine upload --repository <source_name> dist/<package_file>
+```
+
+Where:
+
+- `<package_file>` is your package filename, ending in `.tar.gz` or `.whl`.
+- `<source_name>` is the [source name used during setup](#adding-the-gitlab-pypi-repository-as-a-source).
+
+## Install packages
+
+Install the latest version of a package using the following command:
+
+```shell
+pip install --index-url https://__token__:<personal_access_token>@gitlab.com/api/v4/projects/<project_id>/packages/pypi/simple --no-deps <package_name>
+```
+
+Where:
+
+- `<package_name>` is the package name.
+- `<personal_access_token>` is your personal access token.
+- `<project_id>` is your project id number.
diff --git a/doc/user/permissions.md b/doc/user/permissions.md
index 59867f492b8..9e0486e05c9 100644
--- a/doc/user/permissions.md
+++ b/doc/user/permissions.md
@@ -85,6 +85,10 @@ The following table depicts the various user permission levels in a project.
| View project statistics | | ✓ | ✓ | ✓ | ✓ |
| View Error Tracking list | | ✓ | ✓ | ✓ | ✓ |
| Create new merge request | | ✓ | ✓ | ✓ | ✓ |
+| View requirements **(ULTIMATE)** | | ✓ | ✓ | ✓ | ✓ |
+| View metrics dashboard annotations | | ✓ | ✓ | ✓ | ✓ |
+| Pull [packages](packages/index.md) | | ✓ | ✓ | ✓ | ✓ |
+| Publish [packages](packages/index.md) | | | ✓ | ✓ | ✓ |
| Pull from [Conan repository](packages/conan_repository/index.md), [Maven repository](packages/maven_repository/index.md), or [NPM registry](packages/npm_registry/index.md) **(PREMIUM)** | | ✓ | ✓ | ✓ | ✓ |
| Publish to [Conan repository](packages/conan_repository/index.md), [Maven repository](packages/maven_repository/index.md), or [NPM registry](packages/npm_registry/index.md) **(PREMIUM)** | | | ✓ | ✓ | ✓ |
| Upload [Design Management](project/issues/design_management.md) files | | | ✓ | ✓ | ✓ |
@@ -118,6 +122,8 @@ The following table depicts the various user permission levels in a project.
| Create and edit wiki pages | | | ✓ | ✓ | ✓ |
| Rewrite/remove Git tags | | | ✓ | ✓ | ✓ |
| Manage Feature Flags **(PREMIUM)** | | | ✓ | ✓ | ✓ |
+| Manage requirements **(ULTIMATE)** | | | ✓ | ✓ | ✓ |
+| Create/edit/delete metrics dashboard annotations | | | ✓ | ✓ | ✓ |
| Use environment terminals | | | | ✓ | ✓ |
| Run Web IDE's Interactive Web Terminals **(ULTIMATE ONLY)** | | | | ✓ | ✓ |
| Add new team members | | | | ✓ | ✓ |
@@ -222,10 +228,12 @@ group.
| Create/edit group epic **(ULTIMATE)** | | ✓ | ✓ | ✓ | ✓ |
| Manage group labels | | ✓ | ✓ | ✓ | ✓ |
| See a container registry | | ✓ | ✓ | ✓ | ✓ |
+| View metrics dashboard annotations | | ✓ | ✓ | ✓ | ✓ |
| Create project in group | | | ✓ (3) | ✓ (3) | ✓ (3) |
| Create/edit/delete group milestones | | | ✓ | ✓ | ✓ |
| Enable/disable a dependency proxy **(PREMIUM)** | | | ✓ | ✓ | ✓ |
| Use security dashboard **(ULTIMATE)** | | | ✓ | ✓ | ✓ |
+| Create/edit/delete metrics dashboard annotations | | | ✓ | ✓ | ✓ |
| View/manage group-level Kubernetes cluster | | | | ✓ | ✓ |
| Create subgroup | | | | ✓ (1) | ✓ |
| Edit epic comments (posted by any user) **(ULTIMATE)** | | | | ✓ (2) | ✓ (2) |
diff --git a/doc/user/project/deploy_tokens/img/deploy_tokens.png b/doc/user/project/deploy_tokens/img/deploy_tokens.png
index afe1dfb922f..1981b0747bf 100644
--- a/doc/user/project/deploy_tokens/img/deploy_tokens.png
+++ b/doc/user/project/deploy_tokens/img/deploy_tokens.png
Binary files differ
diff --git a/doc/user/project/img/issue_boards_blocked_icon_v12_8.png b/doc/user/project/img/issue_boards_blocked_icon_v12_8.png
index 779f643ba56..1055fb48322 100644
--- a/doc/user/project/img/issue_boards_blocked_icon_v12_8.png
+++ b/doc/user/project/img/issue_boards_blocked_icon_v12_8.png
Binary files differ
diff --git a/doc/user/project/img/status_page_incidents_v12_10.png b/doc/user/project/img/status_page_incidents_v12_10.png
index ccc1eef3ea3..3540fbffcf8 100644
--- a/doc/user/project/img/status_page_incidents_v12_10.png
+++ b/doc/user/project/img/status_page_incidents_v12_10.png
Binary files differ
diff --git a/doc/user/project/import/img/jira/import_issues_from_jira_button_v12_10.png b/doc/user/project/import/img/jira/import_issues_from_jira_button_v12_10.png
index 8983d685a24..4ab42485d0b 100644
--- a/doc/user/project/import/img/jira/import_issues_from_jira_button_v12_10.png
+++ b/doc/user/project/import/img/jira/import_issues_from_jira_button_v12_10.png
Binary files differ
diff --git a/doc/user/project/import/img/jira/import_issues_from_jira_form_v12_10.png b/doc/user/project/import/img/jira/import_issues_from_jira_form_v12_10.png
index 0ac5e9bdb91..6278cb5f970 100644
--- a/doc/user/project/import/img/jira/import_issues_from_jira_form_v12_10.png
+++ b/doc/user/project/import/img/jira/import_issues_from_jira_form_v12_10.png
Binary files differ
diff --git a/doc/user/project/import/img/jira/import_issues_from_jira_projects_v12_10.png b/doc/user/project/import/img/jira/import_issues_from_jira_projects_v12_10.png
index cf5f0dd59cd..bf9728e0311 100644
--- a/doc/user/project/import/img/jira/import_issues_from_jira_projects_v12_10.png
+++ b/doc/user/project/import/img/jira/import_issues_from_jira_projects_v12_10.png
Binary files differ
diff --git a/doc/user/project/index.md b/doc/user/project/index.md
index 99050f823c5..585c45e35df 100644
--- a/doc/user/project/index.md
+++ b/doc/user/project/index.md
@@ -102,6 +102,8 @@ When you create a project in GitLab, you'll have access to a large number of
- [Code owners](code_owners.md): specify code owners for certain files **(STARTER)**
- [License Compliance](../compliance/license_compliance/index.md): approve and blacklist licenses for projects. **(ULTIMATE)**
- [Dependency List](../application_security/dependency_list/index.md): view project dependencies. **(ULTIMATE)**
+- [Requirements](requirements/index.md): Requirements allow you to create criteria to check your products against. **(ULTIMATE)**
+- [Static Site Editor](static_site_editor/index.md): quickly edit content on static websites without prior knowledge of the codebase or Git commands.
### Project integrations
@@ -170,6 +172,13 @@ Read through the documentation on [CI/CD for external repositories](../../ci/ci_
Learn how to [add members to your projects](members/index.md).
+## Project activity
+
+To view the activity of a project, navigate to **Project overview > Activity**.
+From there, you can click on the tabs to see **All** the activity, or see it
+filtered by **Push events**, **Merge events**, **Issue events**, **Comments**,
+**Team**, and **Wiki**.
+
### Leave a project
**Leave project** will only display on the project's dashboard
diff --git a/doc/user/project/integrations/prometheus.md b/doc/user/project/integrations/prometheus.md
index 88a9bd40f07..bbed14ea93f 100644
--- a/doc/user/project/integrations/prometheus.md
+++ b/doc/user/project/integrations/prometheus.md
@@ -289,6 +289,7 @@ The following tables outline the details of expected properties.
| `title` | string | yes | Heading for the panel. |
| `y_label` | string | no, but highly encouraged | Y-Axis label for the panel. |
| `y_axis` | string | no | Y-Axis configuration for the panel. |
+| `max_value` | number | no | Denominator value used for calculating [percentile based results](#percentile-based-results) |
| `weight` | number | no, defaults to order in file | Order to appear within the grouping. Lower number means higher priority, which will be higher on the page. Numbers do not need to be consecutive. |
| `metrics` | array | yes | The metrics which should be displayed in the panel. Any number of metrics can be displayed when `type` is `area-chart` or `line-chart`, whereas only 3 can be displayed when `type` is `anomaly-chart`. |
@@ -304,7 +305,7 @@ The following tables outline the details of expected properties.
| Property | Type | Required | Description |
| ------ | ------ | ------ | ------ |
-| `id` | string | no | Used for associating dashboard metrics with database records. Must be unique across dashboard configuration files. Required for [alerting](#setting-up-alerts-for-prometheus-metrics-ultimate) (support not yet enabled, see [relevant issue](https://gitlab.com/gitlab-org/gitlab-foss/issues/60319)). |
+| `id` | string | no | Used for associating dashboard metrics with database records. Must be unique across dashboard configuration files. Required for [alerting](#setting-up-alerts-for-prometheus-metrics) (support not yet enabled, see [relevant issue](https://gitlab.com/gitlab-org/gitlab-foss/issues/60319)). |
| `unit` | string | yes | Defines the unit of the query's return data. |
| `label` | string | no, but highly encouraged | Defines the legend-label for the query. Should be unique within the panel's metrics. Can contain time series labels as interpolated variables. |
| `query` | string | yes if `query_range` is not defined | Defines the Prometheus query to be used to populate the chart/panel. If defined, the `query` endpoint of the [Prometheus API](https://prometheus.io/docs/prometheus/latest/querying/api/) will be utilized. |
@@ -627,7 +628,21 @@ The options are:
- [View logs](#view-logs-ultimate)
- [Download CSV](#downloading-data-as-csv)
- [Copy link to chart](#embedding-gitlab-managed-kubernetes-metrics)
-- [Alerts](#setting-up-alerts-for-prometheus-metrics-ultimate)
+- [Alerts](#setting-up-alerts-for-prometheus-metrics)
+
+### Dashboard Annotations
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/211330) in GitLab 12.10 (enabled by feature flag `metrics_dashboard_annotations`).
+
+You can use **Metrics Dashboard Annotations** to mark any important events on
+every metrics dashboard by adding annotations to it. While viewing a dashboard,
+annotation entries assigned to the selected time range will be automatically
+fetched and displayed on every chart within that dashboard. On mouse hover, each
+annotation presents additional details, including the exact time of an event and
+its description.
+
+You can create annotations by making requests to the
+[Metrics dashboard annotations API](../../../api/metrics_dashboard_annotations.md)
### View Logs **(ULTIMATE)**
@@ -652,7 +667,7 @@ and end times to the URL, enabling you to share specific timeframes more easily.
Data from Prometheus charts on the metrics dashboard can be downloaded as CSV.
-### Setting up alerts for Prometheus metrics **(ULTIMATE)**
+### Setting up alerts for Prometheus metrics
#### Managed Prometheus instances
@@ -805,7 +820,7 @@ It is also possible to embed either the default dashboard metrics or individual
### Embedding metrics based on alerts in incident issues
-For [GitLab-managed alerting rules](#setting-up-alerts-for-prometheus-metrics-ultimate), the issue will include an embedded chart for the query corresponding to the alert. The chart displays an hour of data surrounding the starting point of the incident, 30 minutes before and after.
+For [GitLab-managed alerting rules](#setting-up-alerts-for-prometheus-metrics), the issue will include an embedded chart for the query corresponding to the alert. The chart displays an hour of data surrounding the starting point of the incident, 30 minutes before and after.
For [manually configured Prometheus instances](#manual-configuration-of-prometheus), a chart corresponding to the query can be included if these requirements are met:
diff --git a/doc/user/project/issues/csv_export.md b/doc/user/project/issues/csv_export.md
index 53af878cbd6..ec53b3dbbba 100644
--- a/doc/user/project/issues/csv_export.md
+++ b/doc/user/project/issues/csv_export.md
@@ -1,6 +1,7 @@
# Export Issues to CSV
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1126) in [GitLab Starter 9.0](https://about.gitlab.com/releases/2017/03/22/gitlab-9-0-released/#export-issues-ees-eep).
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1126) in [GitLab Starter 9.0](https://about.gitlab.com/releases/2017/03/22/gitlab-9-0-released/#export-issues-ees-eep).
+> - Moved to GitLab Core in GitLab 12.10.
Issues can be exported as CSV from GitLab and are sent to your default notification email as an attachment.
diff --git a/doc/user/project/issues/design_management.md b/doc/user/project/issues/design_management.md
index ff481109e58..1078d0410ed 100644
--- a/doc/user/project/issues/design_management.md
+++ b/doc/user/project/issues/design_management.md
@@ -1,4 +1,4 @@
-# Design Management
+# Design Management **(PREMIUM)**
> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/660) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2.
diff --git a/doc/user/project/issues/img/epic_tree_health_status_v12_10.png b/doc/user/project/issues/img/epic_tree_health_status_v12_10.png
new file mode 100644
index 00000000000..c6d0117b1c4
--- /dev/null
+++ b/doc/user/project/issues/img/epic_tree_health_status_v12_10.png
Binary files differ
diff --git a/doc/user/project/issues/img/issue_activity_sort_order_v12_10.png b/doc/user/project/issues/img/issue_activity_sort_order_v12_10.png
new file mode 100644
index 00000000000..3e19ee1ac66
--- /dev/null
+++ b/doc/user/project/issues/img/issue_activity_sort_order_v12_10.png
Binary files differ
diff --git a/doc/user/project/issues/img/issue_health_status_dropdown_v12_10.png b/doc/user/project/issues/img/issue_health_status_dropdown_v12_10.png
index c0f0a0dfe16..f8517de4e12 100644
--- a/doc/user/project/issues/img/issue_health_status_dropdown_v12_10.png
+++ b/doc/user/project/issues/img/issue_health_status_dropdown_v12_10.png
Binary files differ
diff --git a/doc/user/project/issues/issue_data_and_actions.md b/doc/user/project/issues/issue_data_and_actions.md
index d6576fc780d..06524f785ab 100644
--- a/doc/user/project/issues/issue_data_and_actions.md
+++ b/doc/user/project/issues/issue_data_and_actions.md
@@ -8,11 +8,38 @@ The image below illustrates what an issue may look like. Note that certain parts
look slightly different or will be absent, depending on the version of GitLab being used
and the permissions of the user viewing the issue.
-![Issue view](img/issues_main_view_numbered.png)
-
You can find all the information for that issue on one screen.
-### Issue screen
+![Issue view](img/issues_main_view_numbered.png)
+
+- **1.** [New Issue, close issue (reopen issue, report issue)](#new-issue-close-issue-reopen-issue-report-issue)
+- **2.** [To Do](#to-do)
+- **3.** [Assignee](#assignee)
+ - **3.1.** [Multiple Assignees **(STARTER)**](#multiple-assignees-starter)
+- **4.** [Epic **(ULTIMATE)**](#epic-ultimate)
+- **5.** [Milestone](#milestone)
+- **6.** [Time tracking](#time-tracking)
+- **7.** [Due date](#due-date)
+- **8.** [Labels](#labels)
+- **9.** [Weight **(STARTER)**](#weight-starter)
+- **10.** [Confidentiality](#confidentiality)
+- **11.** [Lock issue](#lock-issue)
+- **12.** [Participants](#participants)
+- **13.** [Notifications](#notifications)
+- **14.** [Reference](#reference)
+- **15.** [Edit](#edit)
+- **16.** [Description](#description)
+- **17.** [Mentions](#mentions)
+- **18.** [Related Issues **(STARTER)**](#related-issues-starter)
+- **19.** [Related Merge Requests](#related-merge-requests)
+- **20.** [Award emoji](#award-emoji)
+- **21.** [Show all activity](#show-all-activity)
+- **22.** [Create Merge Request](#create-merge-request)
+- **23.** [Issue history](#issue-history)
+ - [Activity sort order](#activity-sort-order)
+- **24.** [Comments](#comments)
+- **25.** [Submit comment, start a thread, or comment and close](#submit-comment-start-a-thread-or-comment-and-close)
+- **26.** [Zoom meetings](#zoom-meetings)
An issue starts with its status (open or closed), followed by its author,
and includes many other functionalities, numbered in the image above to
@@ -22,7 +49,7 @@ Many of the elements of the issue screen refresh automatically, such as the titl
description, when they are changed by another user. Comments and system notes also
update automatically in response to various actions and content updates.
-#### 1. New Issue, close issue (reopen issue, report issue)
+### New Issue, close issue (reopen issue, report issue)
Clicking on **New issue** will open a new window to create a new issue in the same project.
Clicking on **Close issue** will close this issue, but it will not be deleted. If the
@@ -39,22 +66,23 @@ after it is closed.
![Report Abuse](img/report-abuse.png)
-#### 2. To Do
+### To Do
You can add issues to and remove issues from your [GitLab To-Do List](../../todos.md).
-The button to do this has a different label depending on whether the issue is already on your To-Do List or not. If the issue is:
+The button to do this has a different label depending on whether the issue is already on your To-Do
+List or not. If the issue is:
- Already on your To-Do List: The button is labeled **Mark as done**. Click the button to remove the issue from your To-Do List.
-- Not on your To-Do List: The button is labelled **Add a To Do**. Click the button to add the issue to your To-Do List.
+- Not on your To-Do List: The button is labeled **Add a To Do**. Click the button to add the issue to your To-Do List.
-#### 3. Assignee
+### Assignee
An issue can be assigned to:
- Yourself.
- Another person.
-- [Many people](#31-multiple-assignees-STARTER). **(STARTER)**
+- [Many people](#multiple-assignees-STARTER). **(STARTER)**
The assignee(s) can be changed as often as needed. The idea is that the assignees are
responsible for that issue until it's reassigned to someone else to take it from there.
@@ -64,7 +92,7 @@ TIP: **Tip:**
If a user is not member of that project, it can only be
assigned to them if they created the issue themselves.
-##### 3.1. Multiple Assignees **(STARTER)**
+#### Multiple Assignees **(STARTER)**
Often multiple people work on the same issue together, which can be especially difficult
to track in large teams where there is shared ownership of an issue.
@@ -72,29 +100,29 @@ to track in large teams where there is shared ownership of an issue.
In [GitLab Starter](https://about.gitlab.com/pricing/), you can
[assign multiple people](multiple_assignees_for_issues.md) to an issue.
-#### 4. Epic **(ULTIMATE)**
+### Epic **(ULTIMATE)**
You can assign issues to an [Epic](../../group/epics/index.md), which allows better
management of groups of related issues.
-#### 5. Milestone
+### Milestone
Select a [milestone](../milestones/index.md) to attribute that issue to.
-#### 6. Time Tracking
+### Time tracking
Use [GitLab Quick Actions](../quick_actions.md) to [track estimates and time spent on issues](../time_tracking.md).
You can add an [estimate of the time it will take](../time_tracking.md#estimates)
to resolve the issue, and also add [the time spent](../time_tracking.md#time-spent)
on the resolution of the issue.
-#### 7. Due date
+### Due date
When you work on a tight schedule, it's important to have a way to set a deadline for
implementations and for solving problems. This can be done in the [due date](due_dates.md)
element. Due dates can be changed as many times as needed.
-#### 8. Labels
+### Labels
Categorize issues by giving them [labels](../labels.md). They help to organize workflows,
and they enable you to work with the [GitLab Issue Board](index.md#issue-boards).
@@ -107,29 +135,29 @@ TIP: **Tip:**
If a label doesn't exist yet, you can click **Edit**, and it opens a dropdown menu
from which you can select **Create new label**.
-#### 9. Weight **(STARTER)**
+### Weight **(STARTER)**
[Assign a weight](issue_weight.md) to an issue.
Larger values are used to indicate more effort is required to complete the issue. Only
positive values or zero are allowed.
-#### 10. Confidentiality
+### Confidentiality
You can [set an issue to be confidential](confidential_issues.md). When set, unauthorized
users will not be able to access the issue, and will not see it listed in project
issue boards or the issue list.
-#### 11. Lock issue
+### Lock issue
You can [lock the threads](../../discussions/index.md#lock-discussions) in the issue,
to prevent further comments from being added.
-#### 12. Participants
+### Participants
All the users involved in that issue. Either they participated in the [thread](../../discussions/index.md),
or were mentioned in the description or threads.
-#### 13. Notifications
+### Notifications
Click on the icon to enable/disable [notifications](../../profile/notifications.md#issue--epics--merge-request-events)
for the issue. This will automatically enable if you participate in the issue in any way.
@@ -139,27 +167,27 @@ for the issue. This will automatically enable if you participate in the issue in
- **Disable**: If you are receiving notifications for updates to that issue but no
longer want to receive them, unsubscribe from it.
-#### 14. Reference
+### Reference
- A quick "copy" button for that issue's reference, which looks like
`foo/bar#xxx`, where `foo` is the `username` or `groupname`, `bar` is the
`project-name`, and `xxx` is the issue number.
-#### 15. Edit
+### Edit
Clicking this icon opens the issue for editing, and you will have access to all the
same fields as when the issue was created. This icon will not display if the user
does not have permission to edit the issue.
-#### 16. Description
+### Description
The plain text title and description of the issue fill the top center of the issue page.
The description fully supports [GitLab Flavored Markdown](../../markdown.md#gitlab-flavored-markdown-gfm),
allowing many formatting options.
-> [Since GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/issues/10103), changes to an issue's description are listed in the [issue history](#23-issue-history).**(STARTER)**
+> [Since GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/issues/10103), changes to an issue's description are listed in the [issue history](#issue-history).**(STARTER)**
-#### 17. Mentions
+### Mentions
You can mention a user or a group present in your GitLab instance with `@username` or
`@groupname` and they will be notified via todos and email, unless they have disabled
@@ -174,19 +202,19 @@ TIP: **Tip:**
Avoid mentioning `@all` in issues and merge requests, as it sends an email notification
to all the members of that project's group, which can be interpreted as spam.
-#### 18. Related Issues **(STARTER)**
+### Related Issues **(STARTER)**
Issues that were mentioned as [related issues](related_issues.md) are listed here.
You can also click the `+` to add more related issues.
-#### 19. Related Merge Requests
+### Related Merge Requests
Merge requests that were mentioned in that issue's description or in the issue thread
are listed as [related merge requests](crosslinking_issues.md#from-merge-requests) here.
Also, if the current issue was mentioned as related in another merge request, that
merge request will be listed here.
-#### 20. Award emoji
+### Award emoji
You can award an emoji to that issue. There are shortcuts to "thumbs_up" and "thumbs_down",
or you can click on the light gray "face" to choose a different reaction from the
@@ -197,7 +225,7 @@ Posting "+1" as a comment in a thread spams all subscribed participants of that
clutters the threads, and is not recommended. Awarding an emoji is a way
to let them know your reaction without spamming them.
-#### 21. Show all activity
+### Show all activity
You can filter what is displayed in the issue history by clicking on **Show all activity**
and selecting either:
@@ -209,7 +237,7 @@ Also:
- You can mention a user or a group present in your GitLab instance with
`@username` or `@groupname` and they will be notified via To-Do items
- and email, unless they have [disabled all notifications](#13-notifications)
+ and email, unless they have [disabled all notifications](#notifications)
in their profile settings.
- Mentions for yourself (the current logged in user), will be highlighted
in a different color, allowing you to easily see which comments involve you,
@@ -217,7 +245,7 @@ Also:
![Show all activity](img/show-all-activity.png)
-#### 22. Create Merge Request
+### Create Merge Request
Create a new branch and [WIP merge request](../merge_requests/work_in_progress_merge_requests.md)
in one action. The branch will be named `issuenumber-title` by default, but you can
@@ -230,17 +258,30 @@ close the issue when it is merged.
Optionally, you can choose to create a [new branch](../repository/web_editor.md#create-a-new-branch-from-an-issue)
only, named after that issue.
-#### 23. Issue history
+### Issue history
All comments and updates to the issue are tracked and listed here, but this can be
filtered, as shown above.
-#### 24. Comments
+#### Activity sort order
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14588) in GitLab 12.10.
+
+You can reverse the default order and interact with the activity feed sorted by most recent items
+at the top. Your preference is saved via local storage and automatically applied to every issue
+you view.
+
+To change the activity sort order, click the **Oldest first** dropdown menu and select either oldest
+or newest items to be shown first.
+
+![Issue activity sort order dropdown button](img/issue_activity_sort_order_v12_10.png)
+
+### Comments
Collaborate in the issue by posting comments in its thread. This text field also fully
supports [GitLab Flavored Markdown](../../markdown.md#gitlab-flavored-markdown-gfm).
-#### 25. Submit Comment, start a thread, or comment and close
+### Submit comment, start a thread, or comment and close
Once you write a comment, you can:
@@ -253,7 +294,7 @@ Once you write a comment, you can:
You can also close the issue from here, so you don't need to scroll to the top of the issue page.
-#### 26. Zoom Meetings
+### Zoom meetings
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/31103) in GitLab 12.3.
diff --git a/doc/user/project/issues/managing_issues.md b/doc/user/project/issues/managing_issues.md
index b51263b7528..4ee29f3357d 100644
--- a/doc/user/project/issues/managing_issues.md
+++ b/doc/user/project/issues/managing_issues.md
@@ -7,7 +7,7 @@ you can do with issues.
## Create a new Issue
-When you create a new issue, you'll be prompted to fill in the [data and fields of the issue](issue_data_and_actions.md#parts-of-an-issue), as illustrated below. If you know
+When you create a new issue, you'll be prompted to fill in the [data and fields of the issue](issue_data_and_actions.md), as illustrated below. If you know
the values you want to assign to an issue, you can use the [Quick actions](../quick_actions.md)
feature to input values, instead of selecting them from lists.
diff --git a/doc/user/project/issues/multiple_assignees_for_issues.md b/doc/user/project/issues/multiple_assignees_for_issues.md
index fefc690e073..dff6a6031d7 100644
--- a/doc/user/project/issues/multiple_assignees_for_issues.md
+++ b/doc/user/project/issues/multiple_assignees_for_issues.md
@@ -1,8 +1,6 @@
# Multiple Assignees for Issues **(STARTER)**
-> **Note:**
-[Introduced](https://gitlab.com/gitlab-org/gitlab/issues/1904)
-in [GitLab Starter 9.2](https://about.gitlab.com/releases/2017/05/22/gitlab-9-2-released/#multiple-assignees-for-issues).
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/1904) in [GitLab Starter 9.2](https://about.gitlab.com/releases/2017/05/22/gitlab-9-2-released/#multiple-assignees-for-issues).
## Overview
diff --git a/doc/user/project/merge_requests/img/versions_compare_head_v12_10.png b/doc/user/project/merge_requests/img/versions_compare_head_v12_10.png
new file mode 100644
index 00000000000..353cf458243
--- /dev/null
+++ b/doc/user/project/merge_requests/img/versions_compare_head_v12_10.png
Binary files differ
diff --git a/doc/user/project/merge_requests/versions.md b/doc/user/project/merge_requests/versions.md
index ffd0efb365a..87c10717671 100644
--- a/doc/user/project/merge_requests/versions.md
+++ b/doc/user/project/merge_requests/versions.md
@@ -46,6 +46,27 @@ This only applies to commits that are in the most recent version of a merge
request - if a commit was in a merge request, then rebased out of that merge
request, they will not be linked.
+## `HEAD` comparison mode for Merge Requests
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/27008) in GitLab 12.10.
+
+Merge Requests, particularly the **Changes** tab, is where source code
+is reviewed and discussed. In circumstances where the target branch was
+merged into the source branch of the merge request, the changes in the
+source and target branch can be shown mixed together making it hard to
+understand which changes are being added and which already exist in the
+target branch.
+
+In GitLab 12.10, we added an **experimental** comparison mode, which
+shows a diff calculated by simulating how it would look like once merged - a more accurate
+representation of the changes rather than using the base of the two
+branches. The new mode is available from the comparison target drop down
+by selecting **master (HEAD)**. In the future it will
+[replace](https://gitlab.com/gitlab-org/gitlab/issues/198458) the
+current default comparison.
+
+![Merge request versions compare HEAD](img/versions_compare_head_v12_10.png)
+
<!-- ## Troubleshooting
Include any troubleshooting steps that you can foresee. If you know beforehand what issues
diff --git a/doc/user/project/quick_actions.md b/doc/user/project/quick_actions.md
index 91138adb996..7937b7193d2 100644
--- a/doc/user/project/quick_actions.md
+++ b/doc/user/project/quick_actions.md
@@ -70,7 +70,7 @@ The following quick actions are applicable to descriptions, discussions and thre
| `/wip` | | ✓ | | Toggle the Work In Progress status |
| `/approve` | | ✓ | | Approve the merge request **(STARTER)** |
| `/submit_review` | | ✓ | | Submit a pending review. ([Introduced in GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/issues/8041)) **(PREMIUM)** |
-| `/merge` | | ✓ | | Merge (when pipeline succeeds) |
+| `/merge` | | ✓ | | Merge changes. Depending on the project setting, this may be [when the pipeline succeeds](merge_requests/merge_when_pipeline_succeeds.md), adding to a [Merge Train](../../ci/merge_request_pipelines/pipelines_for_merged_results/merge_trains/index.md), etc). |
| `/child_epic <epic>` | | | ✓ | 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)) **(ULTIMATE)** |
| `/remove_child_epic <epic>` | | | ✓ | 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)) **(ULTIMATE)** |
| `/parent_epic <epic>` | | | ✓ | 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)) **(ULTIMATE)** |
diff --git a/doc/user/project/releases/index.md b/doc/user/project/releases/index.md
index bae514153ac..ca28a79abf4 100644
--- a/doc/user/project/releases/index.md
+++ b/doc/user/project/releases/index.md
@@ -64,9 +64,6 @@ A link is any URL which can point to whatever you like; documentation, built
binaries, or other related materials. These can be both internal or external
links from your GitLab instance.
-NOTE: **NOTE**
-You can manipulate links of each release entry with [Release Links API](../../../api/releases/links.md)
-
#### Permanent links to Release assets
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/27300) in GitLab 12.9.
@@ -201,6 +198,14 @@ milestones, or release date, use the [Releases
API](../../../api/releases/index.md#update-a-release). Editing this information
through the **Edit Release** page is planned for a future version of GitLab.
+Please note that the ability to edit asset links is currently behind a feature
+flag which is disabled by default. For self-managed instances, it can be enabled
+through the Rails console by a GitLab administrator with the following command:
+
+```ruby
+Feature.enable(:release_asset_link_editing)
+```
+
## Notification for Releases
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/26001) in GitLab 12.4.
diff --git a/doc/user/project/repository/forking_workflow.md b/doc/user/project/repository/forking_workflow.md
index c26f2bd6b1d..126144de703 100644
--- a/doc/user/project/repository/forking_workflow.md
+++ b/doc/user/project/repository/forking_workflow.md
@@ -34,6 +34,12 @@ CAUTION: **Caution:**
In GitLab 12.6 and later, when project owners [reduce a project's visibility](../../../public_access/public_access.md#reducing-visibility),
it **removes the relationship** between a project and all its forks.
+CAUTION: **Caution:**
+When a public project with the repository feature set to "Members
+only" is forked, the repository will be public in the fork. The owner
+of the fork will need to manually change the visibility. This is being
+fixed in [#36662](https://gitlab.com/gitlab-org/gitlab/-/issues/36662).
+
## Repository mirroring
You can use [repository mirroring](repository_mirroring.md) to keep your fork synced with the original repository. You can also use `git remote add upstream` to achieve the same result.
diff --git a/doc/user/project/repository/img/file_ext_icons_repo_v12_10.png b/doc/user/project/repository/img/file_ext_icons_repo_v12_10.png
new file mode 100644
index 00000000000..346f0e58325
--- /dev/null
+++ b/doc/user/project/repository/img/file_ext_icons_repo_v12_10.png
Binary files differ
diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md
index a9647a9ed0f..f9c953db3e3 100644
--- a/doc/user/project/repository/index.md
+++ b/doc/user/project/repository/index.md
@@ -27,6 +27,12 @@ that you [connect with GitLab via SSH](../../../ssh/README.md).
## Files
+Use a repository to store your files in GitLab. From [GitLab 12.10 onwards](https://gitlab.com/gitlab-org/gitlab/issues/33806),
+you'll see on the repository's file tree an icon next to the file name
+according to its extension:
+
+![Repository file icons](img/file_ext_icons_repo_v12_10.png)
+
### Create and edit files
Host your codebase in GitLab repositories by pushing your files to GitLab.
diff --git a/doc/user/project/requirements/img/requirement_archive_view_v12_10.png b/doc/user/project/requirements/img/requirement_archive_view_v12_10.png
new file mode 100644
index 00000000000..b3a52caba6c
--- /dev/null
+++ b/doc/user/project/requirements/img/requirement_archive_view_v12_10.png
Binary files differ
diff --git a/doc/user/project/requirements/img/requirement_create_view_v12_10.png b/doc/user/project/requirements/img/requirement_create_view_v12_10.png
new file mode 100644
index 00000000000..ecb08fe8a8b
--- /dev/null
+++ b/doc/user/project/requirements/img/requirement_create_view_v12_10.png
Binary files differ
diff --git a/doc/user/project/requirements/img/requirement_edit_save_v12_10.png b/doc/user/project/requirements/img/requirement_edit_save_v12_10.png
new file mode 100644
index 00000000000..6cf7db361b8
--- /dev/null
+++ b/doc/user/project/requirements/img/requirement_edit_save_v12_10.png
Binary files differ
diff --git a/doc/user/project/requirements/img/requirement_edit_view_v12_10.png b/doc/user/project/requirements/img/requirement_edit_view_v12_10.png
new file mode 100644
index 00000000000..5251e7eae1e
--- /dev/null
+++ b/doc/user/project/requirements/img/requirement_edit_view_v12_10.png
Binary files differ
diff --git a/doc/user/project/requirements/img/requirements_archived_list_view_v12_10.png b/doc/user/project/requirements/img/requirements_archived_list_view_v12_10.png
new file mode 100644
index 00000000000..a5487b46894
--- /dev/null
+++ b/doc/user/project/requirements/img/requirements_archived_list_view_v12_10.png
Binary files differ
diff --git a/doc/user/project/requirements/img/requirements_list_view_v12_10.png b/doc/user/project/requirements/img/requirements_list_view_v12_10.png
new file mode 100644
index 00000000000..cee1f3781f6
--- /dev/null
+++ b/doc/user/project/requirements/img/requirements_list_view_v12_10.png
Binary files differ
diff --git a/doc/user/project/requirements/index.md b/doc/user/project/requirements/index.md
new file mode 100644
index 00000000000..8f4ec7bbbed
--- /dev/null
+++ b/doc/user/project/requirements/index.md
@@ -0,0 +1,67 @@
+---
+type: reference, howto
+---
+
+# Requirements **(ULTIMATE)**
+
+> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/2703) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.10.
+
+Requirements allow you to create criteria to check your products against. They
+can be based on users, stakeholders, system, software, or anything else you
+find important to capture.
+
+![requirements list view](img/requirements_list_view_v12_10.png)
+
+## Create a requirement
+
+A paginated list of requirements is available in each project, and there you
+can create a new requirement.
+
+To create a requirement:
+
+1. From your project page, go to **{requirements}** **Requirements**.
+1. Click **New requirement**.
+1. Enter a descriptive title and click **Create requirement**.
+
+You will see the newly created requirement on the top of the list, as the requirements
+list is sorted by creation date in descending order.
+
+![requirement create view](img/requirement_create_view_v12_10.png)
+
+## Edit a requirement
+
+You can edit a requirement (if you have the necessary privileges) from the requirements
+list page.
+
+To edit a requirement:
+
+1. From the requirements list, click the **Edit** (**{pencil}**) button.
+1. Update the title in text input field.
+1. Click **Save changes**.
+
+![requirement edit view](img/requirement_edit_view_v12_10.png)
+
+The requirements list shows the new title immediately.
+
+![requirement edit saved](img/requirement_edit_save_v12_10.png)
+
+## Archive a requirement
+
+You can archive an open requirement (if you have the necessary privileges) while
+you're in the **Open** tab.
+
+From the requirements list page, click the **Archive** (**{archive}**) button.
+
+![requirement archive view](img/requirement_archive_view_v12_10.png)
+
+As soon as a requirement is archived, it no longer appears in the **Open** tab.
+
+## Reopen a requirement
+
+You can view the list of archived requirements in the **Archived** tab.
+
+![archived requirements list](img/requirements_archived_list_view_v12_10.png)
+
+To reopen an archived requirement, click the **Reopen** button.
+
+As soon as a requirement is reopened, it no longer appears in the **Archived** tab.
diff --git a/doc/user/project/static_site_editor/img/edit_this_page_button_v12_10.png b/doc/user/project/static_site_editor/img/edit_this_page_button_v12_10.png
new file mode 100644
index 00000000000..380d96f1db9
--- /dev/null
+++ b/doc/user/project/static_site_editor/img/edit_this_page_button_v12_10.png
Binary files differ
diff --git a/doc/user/project/static_site_editor/img/static_site_editor_v12_10.png b/doc/user/project/static_site_editor/img/static_site_editor_v12_10.png
new file mode 100644
index 00000000000..130dff9f30d
--- /dev/null
+++ b/doc/user/project/static_site_editor/img/static_site_editor_v12_10.png
Binary files differ
diff --git a/doc/user/project/static_site_editor/index.md b/doc/user/project/static_site_editor/index.md
new file mode 100644
index 00000000000..f186ff9919e
--- /dev/null
+++ b/doc/user/project/static_site_editor/index.md
@@ -0,0 +1,89 @@
+---
+type: reference, how-to
+description: "The static site editor enables users to edit content on static websites without prior knowledge of the underlying templating language, site architecture or Git commands."
+---
+
+# Static Site Editor
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28758) in GitLab 12.10.
+
+Static Site Editor enables users to edit content on static websites without
+prior knowledge of the underlying templating language, site architecture, or
+Git commands. A contributor to your project can quickly edit a Markdown page
+and submit the changes for review.
+
+## Use cases
+
+The Static Site Editors allows collaborators to submit changes to static site
+files seamlessly. For example:
+
+- Non-technical collaborators can easily edit a page directly from the browser; they don't need to know Git and the details of your project to be able to contribute.
+- Recently hired team members can quickly edit content.
+- Temporary collaborators can jump from project to project and quickly edit pages instead of having to clone or fork every single project they need to submit changes to.
+
+## Requirements
+
+- In order use the Static Site Editor feature, your project needs to be
+pre-configured with the [Static Site Editor Middleman template](https://gitlab.com/gitlab-org/project-templates/static-site-editor-middleman).
+- The editor needs to be logged into GitLab and needs to be a member of the
+project (with Developer or higher permission levels).
+
+## How it works
+
+The Static Site Editor is in an early stage of development and only works for
+Middleman sites for now. You have to use a specific site template to start
+using it. The project template is configured to deploy a [Middleman](https://middlemanapp.com/)
+static website with [GitLab Pages](../pages/index.md).
+
+Once your website is up and running, you'll see a button **Edit this page** on
+the bottom-left corner of its pages:
+
+![Edit this page button](img/edit_this_page_button_v12_10.png)
+
+When clicking it, GitLab will open up an editor window from which the content
+can be directly edited. When you're ready, you can submit your changes in a
+click of a button:
+
+![Static Site Editor](img/static_site_editor_v12_10.png)
+
+When an editor submits their changes, in the background, GitLab automatically
+creates a new branch, commits their changes, and opens a merge request. The
+editor will land directly on the merge request, and then they can assign it to
+a colleague for review.
+
+## Getting started
+
+First, set up the project. Once done, you can use the Static Site Editor to
+easily edit your content.
+
+### Set up your project
+
+1. To get started, create a new project from the
+[Static Site Editor - Middleman](https://gitlab.com/gitlab-org/project-templates/static-site-editor-middleman)
+template. You can either [fork it](../repository/forking_workflow.md#creating-a-fork)
+or [create a new project from a template](../../../gitlab-basics/create-project.md#built-in-templates).
+1. Edit the `data/config.yml` file adding your project's path.
+1. Editing the file will trigger a CI/CD pipeline to deploy your project with GitLab Pages.
+1. When the pipeline finishes, from your project's left-side menu, go to **Settings > Pages** to find the URL of your new website.
+1. Visit your website and look at the bottom-left corner of the screen to see the new **Edit this page** button.
+
+Anyone satisfying the [requirements](#requirements) will be able to edit the
+content of the pages without prior knowledge of Git nor of your site's
+codebase.
+
+### Use the Static Site Editor to edit your content
+
+For instance, suppose you are a recently hired technical writer at a large
+company and a new feature has been added to the company product.
+
+1. You are assigned the task of updating the documentation.
+1. You visit a page and see content that needs to be edited.
+1. Click the **Edit this page** button on the production site.
+1. The file is opened in the Static Site Editor.
+1. You edit the file right there and click **Submit changes**.
+1. A new merge request is automatically created and you assign it to your colleague for review.
+
+## Limitations
+
+- Currently, the Static Site Editor only works for files ending in `.md`. For example, it will not work for a file `index.html.md.erb` while it works for `index.html.md`.
+- The Static Site Editor still cannot be quickly added to existing Middleman sites. Follow this [epic](https://gitlab.com/groups/gitlab-org/-/epics/2784) for updates.
diff --git a/doc/user/project/status_page/index.md b/doc/user/project/status_page/index.md
index 2a022fe472d..d292ca94ba9 100644
--- a/doc/user/project/status_page/index.md
+++ b/doc/user/project/status_page/index.md
@@ -78,10 +78,16 @@ To publish an Incident, you first need to create an issue in the Project you ena
Once this issue is created, a background worker will publish the issue onto the status page using the credentials you provided during setup.
+NOTE: **Note:**
+Confidential issues are not published. If a published issue is made confidential it will be unpublished.
+
### Publishing updates
To publish an update to the Incident, update the incident issue's description.
+CAUTION: **Caution:**
+When referenced issues are changed (e.g. title, confidentiality) the incident they were referenced in are not updated automatically.
+
### Adding comments
To add comments to the Status Page Incident, create a comment on the incident issue.
diff --git a/doc/user/project/wiki/index.md b/doc/user/project/wiki/index.md
index 3255e3a5477..88b729272ec 100644
--- a/doc/user/project/wiki/index.md
+++ b/doc/user/project/wiki/index.md
@@ -140,6 +140,43 @@ number.
![Wiki page history](img/wiki_page_history.png)
+## Wiki activity records
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14902) in GitLab 12.10.
+> - It's deployed behind a feature flag, disabled by default.
+> - It's enabled on GitLab.com.
+> - To use it in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enable-or-disable-wiki-events-core-only). **(CORE ONLY)**
+
+Wiki events (creation, deletion, and updates) are tracked by GitLab and
+displayed on the [user profile](../../profile/index.md#user-profile),
+[group](../../group/index.md#view-group-activity),
+and [project](../index.md#project-activity) activity pages.
+
+### Limitations
+
+Only edits made in the browser or through the API have their activity recorded.
+Edits made and pushed through Git are not currently listed in the activity list.
+
+### Enable or disable Wiki Events **(CORE ONLY)**
+
+Wiki event activity is under development and not ready for production use. It is
+deployed behind a feature flag that is **disabled by default**.
+[GitLab administrators with access to the GitLab Rails console](../../../administration/troubleshooting/navigating_gitlab_via_rails_console.md#starting-a-rails-console-session)
+can enable it for your instance. You're welcome to test it, but use it at your
+own risk.
+
+To enable it:
+
+```ruby
+Feature.enable(:wiki_events)
+```
+
+To disable it:
+
+```ruby
+Feature.disable(:wiki_events)
+```
+
## Adding and editing wiki pages locally
Since wikis are based on Git repositories, you can clone them locally and edit
diff --git a/doc/user/search/img/issue_search_by_id.png b/doc/user/search/img/issue_search_by_id.png
new file mode 100644
index 00000000000..96c0b5c31e1
--- /dev/null
+++ b/doc/user/search/img/issue_search_by_id.png
Binary files differ
diff --git a/doc/user/search/index.md b/doc/user/search/index.md
index 2166e8ddbd5..ed2a4b36372 100644
--- a/doc/user/search/index.md
+++ b/doc/user/search/index.md
@@ -81,6 +81,14 @@ You can filter issues and merge requests by specific terms included in titles or
![filter issues by specific terms](img/issue_search_by_term.png)
+### Filtering by ID
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/39908) in GitLab 12.1.
+
+You can filter the **Issues** list to individual instances by their ID. For example, enter filter `#10` to return only issue 10. The same applies to the **Merge Requests** list. Enter filter `#30` to return only merge request 30.
+
+![filter issues by specific id](img/issue_search_by_id.png)
+
### Filtering merge requests by approvers **(STARTER)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9468) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.9.
@@ -98,7 +106,9 @@ You can view recent searches by clicking on the little arrow-clock icon, which i
## Removing search filters
-Individual filters can be removed by clicking on the filter's (x) button or backspacing. The entire search filter can be cleared by clicking on the search box's (x) button.
+Individual filters can be removed by clicking on the filter's (x) button or backspacing. The entire search filter can be cleared by clicking on the search box's (x) button or via <kbd>⌘</kbd> (Mac) + <kbd>⌫</kbd>.
+
+To delete filter tokens one at a time, the <kbd>⌥</kbd> (Mac) / <kbd>Ctrl</kbd> + <kbd>⌫</kbd> keyboard combination can be used.
## Filtering with multiple filters of the same type
diff --git a/doc/user/shortcuts.md b/doc/user/shortcuts.md
index dcc4753a794..fa466fdb3b9 100644
--- a/doc/user/shortcuts.md
+++ b/doc/user/shortcuts.md
@@ -127,6 +127,15 @@ This shortcut is available when viewing a [wiki page](project/wiki/index.md):
| ----------------- | ----------- |
| <kbd>e</kbd> | Edit wiki page. |
+### Filtered Search
+
+These shortcuts are available when using a [filtered search input](search/index.md):
+
+| Keyboard Shortcut | Description |
+| ----------------------------------------------------- | ----------- |
+| <kbd>⌘</kbd> (Mac) + <kbd>⌫</kbd> | Clear entire search filter. |
+| <kbd>⌥</kbd> (Mac) / <kbd>Ctrl</kbd> + <kbd>⌫</kbd> | Clear one token at a time. |
+
## Epics **(ULTIMATE)**
These shortcuts are available when viewing [Epics](group/epics/index.md):
diff --git a/doc/user/todos.md b/doc/user/todos.md
index 69c26660c87..d19f1b8f14b 100644
--- a/doc/user/todos.md
+++ b/doc/user/todos.md
@@ -36,7 +36,9 @@ A To Do appears on your To-Do List when:
- Issue
- Merge Request
- Epic **(ULTIMATE)**
-- You are `@mentioned` in a comment on a commit
+- You are `@mentioned` in a comment on a:
+ - Commit
+ - Design **(PREMIUM)**
- A job in the CI pipeline running for your merge request failed, but this
job is not allowed to fail
- An open merge request becomes unmergeable due to conflict, and you are either: