diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-15 18:09:36 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-15 18:09:36 +0000 |
commit | 09093c1278f2b3347465bf5939fda215592f0d1f (patch) | |
tree | 07976e435f6c73de8faf7a4cc891ebcfacee62d1 /doc | |
parent | 0d83264a7a24b33de933437355c77a4fe47e5419 (diff) | |
download | gitlab-ce-09093c1278f2b3347465bf5939fda215592f0d1f.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc')
28 files changed, 270 insertions, 17 deletions
diff --git a/doc/README.md b/doc/README.md index 6b863436ce2..427967039cd 100644 --- a/doc/README.md +++ b/doc/README.md @@ -367,7 +367,7 @@ The following documentation relates to the DevOps **Secure** stage: | [Group Security Dashboard](user/application_security/security_dashboard/index.md#group-security-dashboard) **(ULTIMATE)** | View vulnerabilities in all the projects in a group and its subgroups. | | [Instance Security Dashboard](user/application_security/security_dashboard/index.md#instance-security-dashboard) **(ULTIMATE)** | View vulnerabilities in all the projects you're interested in. | | [License Compliance](user/compliance/license_compliance/index.md) **(ULTIMATE)** | Search your project's dependencies for their licenses. | -| [Pipeline Security Dashboard](user/application_security/security_dashboard/index.md#pipeline-security-dashboard) **(ULTIMATE)** | View the security reports for your project's pipelines. | +| [Pipeline Security](user/application_security/security_dashboard/index.md#pipeline-security) **(ULTIMATE)** | View the security reports for your project's pipelines. | | [Project Security Dashboard](user/application_security/security_dashboard/index.md#project-security-dashboard) **(ULTIMATE)** | View the latest security reports for your project. | | [Static Application Security Testing (SAST)](user/application_security/sast/index.md) **(ULTIMATE)** | Analyze source code for known vulnerabilities. | diff --git a/doc/administration/geo/replication/datatypes.md b/doc/administration/geo/replication/datatypes.md index a1f511fe2a5..3431df3ed1f 100644 --- a/doc/administration/geo/replication/datatypes.md +++ b/doc/administration/geo/replication/datatypes.md @@ -145,6 +145,7 @@ successfully, you must replicate their data using some other means. | [Maven Repository](../../../user/packages/maven_repository/index.md) | [No](https://gitlab.com/groups/gitlab-org/-/epics/2346) | No | | | [Conan Repository](../../../user/packages/conan_repository/index.md) | [No](https://gitlab.com/groups/gitlab-org/-/epics/2346) | No | | | [NuGet Repository](../../../user/packages/nuget_repository/index.md) | [No](https://gitlab.com/groups/gitlab-org/-/epics/2346) | No | | +| [PyPi Repository](../../../user/packages/pypi_repository/index.md) | [No](https://gitlab.com/groups/gitlab-org/-/epics/2554) | No | | | [External merge request diffs](../../merge_request_diffs.md) | [No](https://gitlab.com/gitlab-org/gitlab/issues/33817) | No | | | Content in object storage | **Yes** | No | | diff --git a/doc/administration/gitaly/praefect.md b/doc/administration/gitaly/praefect.md index d1d0c358dc6..c16d705db1d 100644 --- a/doc/administration/gitaly/praefect.md +++ b/doc/administration/gitaly/praefect.md @@ -697,6 +697,31 @@ during a failover. Follow issue It is likely that we will implement support for Consul, and a cloud native strategy in the future. +## Identifying Impact of a Primary Node Failure + +When a primary Gitaly node fails, there is a chance of dataloss. Dataloss can occur if there were outstanding replication jobs the secondaries did not manage to process before the failure. The Praefect `dataloss` subcommand helps identify these cases by counting the number of dead replication jobs for each repository within a given timeframe. + +```shell +sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml dataloss -from <rfc3339-time> -to <rfc3339-time> +``` + +If the timeframe is not specified, dead replication jobs from the last six hours are counted: + +```shell +sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml dataloss + +Failed replication jobs between [2020-01-02 00:00:00 +0000 UTC, 2020-01-02 06:00:00 +0000 UTC): +example/repository-1: 1 jobs +example/repository-2: 4 jobs +example/repository-3: 2 jobs +``` + +To specify a timeframe in UTC, run: + +```shell +sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml dataloss -from 2020-01-02T00:00:00+00:00 -to 2020-01-02T00:02:00+00:00 +``` + ## Backend Node Recovery When a Praefect backend node fails and is no longer able to diff --git a/doc/administration/packages/index.md b/doc/administration/packages/index.md index d14726d33de..f826741d66f 100644 --- a/doc/administration/packages/index.md +++ b/doc/administration/packages/index.md @@ -8,6 +8,7 @@ The Packages feature allows GitLab to act as a repository for the following: | Software repository | Description | Available in GitLab version | | ------------------- | ----------- | --------------------------- | +| [PyPi Repository](../../user/packages/pypi_repository/index.md) | The GitLab PyPi Repository enables every project in GitLab to have its own space to store [PyPi](https://pypi.org/) packages. | 12.10+ | | [NuGet Repository](../../user/packages/nuget_repository/index.md) | The GitLab NuGet Repository enables every project in GitLab to have its own space to store [NuGet](https://www.nuget.org/) packages. | 12.8+ | | [Conan Repository](../../user/packages/conan_repository/index.md) | The GitLab Conan Repository enables every project in GitLab to have its own space to store [Conan](https://conan.io/) packages. | 12.4+ | | [Maven Repository](../../user/packages/maven_repository/index.md) | The GitLab Maven Repository enables every project in GitLab to have its own space to store [Maven](https://maven.apache.org/) packages. | 11.3+ | diff --git a/doc/api/packages.md b/doc/api/packages.md index 31fc2863708..8671de006d2 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -20,7 +20,7 @@ GET /projects/:id/packages | `id` | integer/string | yes | ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `order_by`| string | no | The field to use as order. One of `created_at` (default), `name`, `version`, or `type`. | | `sort` | string | no | The direction of the order, either `asc` (default) for ascending order or `desc` for descending order. | -| `package_type` | string | no | Filter the returned packages by type. One of `conan`, `maven`, `npm` or `nuget`. (_Introduced in GitLab 12.9_) +| `package_type` | string | no | Filter the returned packages by type. One of `conan`, `maven`, `npm`, `pypi` or `nuget`. (_Introduced in GitLab 12.9_) | `package_name` | string | no | Filter the project packages with a fuzzy search by name. (_Introduced in GitLab 12.9_) ```shell @@ -67,7 +67,7 @@ GET /groups/:id/packages | `exclude_subgroups` | boolean | false | If the parameter is included as true, packages from projects from subgroups are not listed. Default is `false`. | | `order_by`| string | no | The field to use as order. One of `created_at` (default), `name`, `version`, `type`, or `project_path`. | | `sort` | string | no | The direction of the order, either `asc` (default) for ascending order or `desc` for descending order. | -| `package_type` | string | no | Filter the returned packages by type. One of `conan`, `maven`, `npm` or `nuget`. (_Introduced in GitLab 12.9_) | +| `package_type` | string | no | Filter the returned packages by type. One of `conan`, `maven`, `npm`, `pypi` or `nuget`. (_Introduced in GitLab 12.9_) | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/:id/packages?exclude_subgroups=true diff --git a/doc/ci/pipelines/settings.md b/doc/ci/pipelines/settings.md index bddf64f397e..7ac9ba6a7dd 100644 --- a/doc/ci/pipelines/settings.md +++ b/doc/ci/pipelines/settings.md @@ -160,7 +160,7 @@ This also determines the visibility of these related features: - Job output logs - Job artifacts -- The [pipeline security dashboard](../../user/application_security/security_dashboard/index.md#pipeline-security-dashboard) **(ULTIMATE)** +- The [pipeline security dashboard](../../user/application_security/security_dashboard/index.md#pipeline-security) **(ULTIMATE)** If **Public pipelines** is enabled (default): diff --git a/doc/install/aws/index.md b/doc/install/aws/index.md index d510dff82dd..48de5e274b0 100644 --- a/doc/install/aws/index.md +++ b/doc/install/aws/index.md @@ -4,8 +4,6 @@ type: howto # Installing GitLab HA on Amazon Web Services (AWS) -DANGER: **Danger:** This guide is under review and the steps below will be revised and updated in due time. For more detail, please see [this epic](https://gitlab.com/groups/gitlab-org/-/epics/912). - This page offers a walkthrough of a common HA (Highly Available) configuration for GitLab on AWS. You should customize it to accommodate your needs. 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/application_security/container_scanning/index.md b/doc/user/application_security/container_scanning/index.md index 27b22fb925c..85d2ac6e2e0 100644 --- a/doc/user/application_security/container_scanning/index.md +++ b/doc/user/application_security/container_scanning/index.md @@ -212,11 +212,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). -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` +#### 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 + +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 +269,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/security_dashboard/index.md b/doc/user/application_security/security_dashboard/index.md index 1eef6b9b696..50104d4c5be 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.  diff --git a/doc/user/clusters/applications.md b/doc/user/clusters/applications.md index cc7b5dcd5fb..df220f556a9 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**.  diff --git a/doc/user/clusters/img/fluentd_v12_10.png b/doc/user/clusters/img/fluentd_v12_10.png Binary files differindex 7593f99ab51..e8c5c832020 100644 --- a/doc/user/clusters/img/fluentd_v12_10.png +++ b/doc/user/clusters/img/fluentd_v12_10.png diff --git a/doc/user/compliance/license_compliance/index.md b/doc/user/compliance/license_compliance/index.md index 9fcc9acf5ea..57c37158799 100644 --- a/doc/user/compliance/license_compliance/index.md +++ b/doc/user/compliance/license_compliance/index.md @@ -324,6 +324,9 @@ process: 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 Binary files differnew file mode 100644 index 00000000000..2202db15d2f --- /dev/null +++ b/doc/user/group/img/group_activity_analytics_v12_10.png diff --git a/doc/user/group/index.md b/doc/user/group/index.md index fdcc4105620..cd92a785370 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -226,6 +226,24 @@ 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 details + +A group's **Details** page includes tabs for: + +- Subgroups and projects. +- Shared projects. +- Archived projects. + +As [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), it 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). + + + ## Viewing group activity A group's **Activity** page displays the most recent actions taken in a group, including: diff --git a/doc/user/packages/index.md b/doc/user/packages/index.md index 78ddc06173c..66ca4295782 100644 --- a/doc/user/packages/index.md +++ b/doc/user/packages/index.md @@ -14,6 +14,7 @@ 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+ | ## 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..8bb2c82e136 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -85,6 +85,7 @@ 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)** | | ✓ | ✓ | ✓ | ✓ | | 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 +119,7 @@ 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)** | | | ✓ | ✓ | ✓ | | Use environment terminals | | | | ✓ | ✓ | | Run Web IDE's Interactive Web Terminals **(ULTIMATE ONLY)** | | | | ✓ | ✓ | | Add new team members | | | | ✓ | ✓ | diff --git a/doc/user/project/index.md b/doc/user/project/index.md index 99050f823c5..56df93e1dae 100644 --- a/doc/user/project/index.md +++ b/doc/user/project/index.md @@ -102,6 +102,7 @@ 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)** ### Project integrations 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 Binary files differnew file mode 100644 index 00000000000..b3a52caba6c --- /dev/null +++ b/doc/user/project/requirements/img/requirement_archive_view_v12_10.png 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 Binary files differnew file mode 100644 index 00000000000..ecb08fe8a8b --- /dev/null +++ b/doc/user/project/requirements/img/requirement_create_view_v12_10.png 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 Binary files differnew file mode 100644 index 00000000000..6cf7db361b8 --- /dev/null +++ b/doc/user/project/requirements/img/requirement_edit_save_v12_10.png 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 Binary files differnew file mode 100644 index 00000000000..5251e7eae1e --- /dev/null +++ b/doc/user/project/requirements/img/requirement_edit_view_v12_10.png 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 Binary files differnew file mode 100644 index 00000000000..a5487b46894 --- /dev/null +++ b/doc/user/project/requirements/img/requirements_archived_list_view_v12_10.png 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 Binary files differnew file mode 100644 index 00000000000..cee1f3781f6 --- /dev/null +++ b/doc/user/project/requirements/img/requirements_list_view_v12_10.png 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. + + + +## 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. + + + +## 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**. + + + +The requirements list shows the new title immediately. + + + +## 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. + + + +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. + + + +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/search/index.md b/doc/user/search/index.md index 2166e8ddbd5..28d098291b0 100644 --- a/doc/user/search/index.md +++ b/doc/user/search/index.md @@ -98,7 +98,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): |