diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-31 09:08:59 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-31 09:08:59 +0300 |
commit | 6a7005feed2e88568f42627e7190ff5c4f2aa8d3 (patch) | |
tree | 1dbd36962c1d30428084950bd26db1df0185e599 | |
parent | 749c2a5f5aada205b959c5651bfc5d4d7c22229b (diff) |
Add latest changes from gitlab-org/gitlab@master
19 files changed, 197 insertions, 214 deletions
diff --git a/app/graphql/types/commit_type.rb b/app/graphql/types/commit_type.rb index 994377cabd4..392e3ae41c5 100644 --- a/app/graphql/types/commit_type.rb +++ b/app/graphql/types/commit_type.rb @@ -40,7 +40,7 @@ module Types type: Types::Ci::PipelineType, null: true, description: "Latest pipeline of the commit", - deprecation_reason: 'use pipelines', + deprecation_reason: 'Use pipelines', resolver: Resolvers::CommitPipelinesResolver.last end end diff --git a/changelogs/unreleased/geo-http-check.yml b/changelogs/unreleased/geo-http-check.yml new file mode 100644 index 00000000000..13c2ad71def --- /dev/null +++ b/changelogs/unreleased/geo-http-check.yml @@ -0,0 +1,5 @@ +--- +title: Replace Net::HTTP with Gitlab::HTTP in rake gitlab:geo:check +merge_request: 23741 +author: Rajendra Kadam +type: added diff --git a/doc/api/graphql/reference/gitlab_schema.graphql b/doc/api/graphql/reference/gitlab_schema.graphql index 8fc13dd140b..b654e8bbd8b 100644 --- a/doc/api/graphql/reference/gitlab_schema.graphql +++ b/doc/api/graphql/reference/gitlab_schema.graphql @@ -203,7 +203,7 @@ type Commit { Filter pipelines by their status """ status: PipelineStatusEnum - ): Pipeline @deprecated(reason: "use pipelines") + ): Pipeline @deprecated(reason: "Use pipelines") """ Raw commit message @@ -2172,9 +2172,9 @@ type EpicIssue implements Noteable { designCollection: DesignCollection """ - Deprecated. Use `design_collection` + Deprecated. Use `designCollection` """ - designs: DesignCollection @deprecated(reason: "use design_collection") + designs: DesignCollection @deprecated(reason: "Use designCollection") """ Indicates discussion is locked on the issue @@ -3062,9 +3062,9 @@ type Issue implements Noteable { designCollection: DesignCollection """ - Deprecated. Use `design_collection` + Deprecated. Use `designCollection` """ - designs: DesignCollection @deprecated(reason: "use design_collection") + designs: DesignCollection @deprecated(reason: "Use designCollection") """ Indicates discussion is locked on the issue diff --git a/doc/api/graphql/reference/gitlab_schema.json b/doc/api/graphql/reference/gitlab_schema.json index f9eda31540a..a49a9c65f4e 100644 --- a/doc/api/graphql/reference/gitlab_schema.json +++ b/doc/api/graphql/reference/gitlab_schema.json @@ -8712,7 +8712,7 @@ }, { "name": "designs", - "description": "Deprecated. Use `design_collection`", + "description": "Deprecated. Use `designCollection`", "args": [ ], @@ -8722,7 +8722,7 @@ "ofType": null }, "isDeprecated": true, - "deprecationReason": "use design_collection" + "deprecationReason": "Use designCollection" }, { "name": "discussionLocked", @@ -10255,7 +10255,7 @@ }, { "name": "designs", - "description": "Deprecated. Use `design_collection`", + "description": "Deprecated. Use `designCollection`", "args": [ ], @@ -10265,7 +10265,7 @@ "ofType": null }, "isDeprecated": true, - "deprecationReason": "use design_collection" + "deprecationReason": "Use designCollection" }, { "name": "discussionLocked", @@ -13092,7 +13092,7 @@ "ofType": null }, "isDeprecated": true, - "deprecationReason": "use pipelines" + "deprecationReason": "Use pipelines" }, { "name": "message", diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index 9ed47f2aea2..5325c5ff335 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -9,6 +9,7 @@ This documentation is self-generated based on GitLab current GraphQL schema. The API can be explored interactively using the [GraphiQL IDE](../index.md#graphiql). + Each table below documents a GraphQL type. Types match loosely to models, but not all fields and methods on a model are available via GraphQL. @@ -334,7 +335,7 @@ Relationship between an epic and an issue | `description` | String | Description of the issue | | `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` | | `designCollection` | DesignCollection | Collection of design images associated with this issue | -| `designs` | DesignCollection | Deprecated. Use `design_collection` | +| `designs` | DesignCollection | Deprecated. Use `designCollection` | | `discussionLocked` | Boolean! | Indicates discussion is locked on the issue | | `downvotes` | Int! | Number of downvotes the issue has received | | `dueDate` | Time | Due date of the issue | @@ -454,7 +455,7 @@ Autogenerated return type of EpicTreeReorder | `description` | String | Description of the issue | | `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` | | `designCollection` | DesignCollection | Collection of design images associated with this issue | -| `designs` | DesignCollection | Deprecated. Use `design_collection` | +| `designs` | DesignCollection | Deprecated. Use `designCollection` | | `discussionLocked` | Boolean! | Indicates discussion is locked on the issue | | `downvotes` | Int! | Number of downvotes the issue has received | | `dueDate` | Time | Due date of the issue | diff --git a/doc/user/profile/notifications.md b/doc/user/profile/notifications.md index 388576a48db..42ed3fb36a2 100644 --- a/doc/user/profile/notifications.md +++ b/doc/user/profile/notifications.md @@ -196,9 +196,11 @@ If an open merge request becomes unmergeable due to conflict, its author will be If a user has also set the merge request to automatically merge once pipeline succeeds, then that user will also be notified. -## Email Headers +## Filtering email -Notification emails include headers that provide extra content about the notification received: +Notification email messages include GitLab-specific headers. You can filter the notification emails based on the content of these headers to better manage your notifications. For example, you could filter all emails for a specific project where you are being assigned either a merge request or issue. + +The following table lists all GitLab-specific email headers: | Header | Description | |-----------------------------|-------------------------------------------------------------------------| @@ -209,23 +211,21 @@ Notification emails include headers that provide extra content about the notific | X-GitLab-Discussion-ID | Only in comment emails, the ID of the thread the comment is from | | X-GitLab-Pipeline-Id | Only in pipeline emails, the ID of the pipeline the notification is for | | X-GitLab-Reply-Key | A unique token to support reply by email | -| X-GitLab-NotificationReason | The reason for being notified. "mentioned", "assigned", etc | +| X-GitLab-NotificationReason | The reason for being notified: one of `mentioned`, `assigned`, or `own_activity` | | List-Id | The path of the project in a RFC 2919 mailing list identifier useful for email organization, for example, with Gmail filters | ### X-GitLab-NotificationReason -This header holds the reason for the notification to have been sent out, -where reason can be `mentioned`, `assigned`, `own_activity`, etc. -Only one reason is sent out according to its priority: +The `X-GitLab-NotificationReason` header contains the reason for the notification. The value is one of the the following, in order of priority: - `own_activity` - `assigned` - `mentioned` -The reason in this header will also be shown in the footer of the notification email. For example an email with the +The reason for the notification is also included in the footer of the notification email. For example an email with the reason `assigned` will have this sentence in the footer: -`"You are receiving this email because you have been assigned an item on {configured GitLab hostname}"` + +- `You are receiving this email because you have been assigned an item on <configured GitLab hostname>.` NOTE: **Note:** -Only reasons listed above have been implemented so far. -Further implementation is [being discussed](https://gitlab.com/gitlab-org/gitlab/issues/20689). +Notification of other events is being considered for inclusion in the `X-GitLab-NotificationReason` header. For details, see this [related issue](https://gitlab.com/gitlab-org/gitlab/issues/20689). diff --git a/doc/user/project/img/labels_default_v12_1.png b/doc/user/project/img/labels_default_v12_1.png Binary files differdeleted file mode 100644 index b36b5dac80b..00000000000 --- a/doc/user/project/img/labels_default_v12_1.png +++ /dev/null diff --git a/doc/user/project/img/labels_epic_sidebar_v12_1.png b/doc/user/project/img/labels_epic_sidebar_v12_1.png Binary files differdeleted file mode 100644 index 13fbab33e26..00000000000 --- a/doc/user/project/img/labels_epic_sidebar_v12_1.png +++ /dev/null diff --git a/doc/user/project/img/labels_generate_default_v12_1.png b/doc/user/project/img/labels_generate_default_v12_1.png Binary files differdeleted file mode 100644 index cbdda2ab4dd..00000000000 --- a/doc/user/project/img/labels_generate_default_v12_1.png +++ /dev/null diff --git a/doc/user/project/img/labels_group_issues_v12_1.png b/doc/user/project/img/labels_group_issues_v12_1.png Binary files differdeleted file mode 100644 index 3f8f93c1dfd..00000000000 --- a/doc/user/project/img/labels_group_issues_v12_1.png +++ /dev/null diff --git a/doc/user/project/img/labels_key_value_v12_1.png b/doc/user/project/img/labels_key_value_v12_1.png Binary files differindex 52906b7b458..82a6856bca7 100644 --- a/doc/user/project/img/labels_key_value_v12_1.png +++ b/doc/user/project/img/labels_key_value_v12_1.png diff --git a/doc/user/project/img/labels_project_list_search.png b/doc/user/project/img/labels_project_list_search.png Binary files differdeleted file mode 100644 index 512d7767e6e..00000000000 --- a/doc/user/project/img/labels_project_list_search.png +++ /dev/null diff --git a/doc/user/project/img/labels_promotion_v12_1.png b/doc/user/project/img/labels_promotion_v12_1.png Binary files differdeleted file mode 100644 index 7cd8ff24e02..00000000000 --- a/doc/user/project/img/labels_promotion_v12_1.png +++ /dev/null diff --git a/doc/user/project/img/labels_sidebar.png b/doc/user/project/img/labels_sidebar.png Binary files differdeleted file mode 100644 index 454a0ca3f07..00000000000 --- a/doc/user/project/img/labels_sidebar.png +++ /dev/null diff --git a/doc/user/project/img/labels_sidebar_assign.png b/doc/user/project/img/labels_sidebar_assign.png Binary files differdeleted file mode 100644 index 5b7fb78b032..00000000000 --- a/doc/user/project/img/labels_sidebar_assign.png +++ /dev/null diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md index b1334f0b0b0..cacacec5671 100644 --- a/doc/user/project/issue_board.md +++ b/doc/user/project/issue_board.md @@ -423,7 +423,7 @@ something between lists by changing a label. A typical workflow of using the Issue Board would be: -1. You have [created](labels.md#creating-labels) and [prioritized](labels.md#label-priority) +1. You have [created](labels.md#label-management) and [prioritized](labels.md#label-priority) labels so that you can easily categorize your issues. 1. You have a bunch of issues (ideally labeled). 1. You visit the Issue Board and start [creating lists](#creating-a-new-list) to diff --git a/doc/user/project/labels.md b/doc/user/project/labels.md index e4264615488..a5a7fc34ef9 100644 --- a/doc/user/project/labels.md +++ b/doc/user/project/labels.md @@ -3,264 +3,234 @@ ## Overview Labels allow you to categorize epics, issues, and merge requests using descriptive titles like -`bug`, `feature request`, or `docs`. Each label also has a customizable color. They -allow you to quickly and dynamically filter and manage epics, issues and merge requests you -care about, and are visible throughout GitLab in most places where issues and merge -requests are located. +`bug`, `feature request`, or `docs`, as well as customizable colors. They allow you to quickly +and dynamically filter and manage epics, issues, and merge requests, and are a key +part of [issue boards](issue_board.md). + +You can use labels to help [search](../search/index.md#issues-and-merge-requests) in +lists of issues, merge requests, and epics, as well as [search in issue boards](../search/index.md#issue-boards). ## Project labels and group labels -In GitLab, you can create project and group labels: +There are two types of labels in GitLab: - **Project labels** can be assigned to issues and merge requests in that project only. -- **Group labels** can be assigned to any epics, issue and merge request in any project in - that group, or any subgroups of the group. - -## Scoped labels **(PREMIUM)** - -> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9175) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. - -Scoped labels allow teams to use the simple and familiar label feature to -annotate their epics, issues, merge requests, and epics to achieve custom fields and -custom workflow states by leveraging a special label title syntax. - -A scoped label is a kind of label defined by a special double-colon syntax -in the label’s title, using the format `key::value`. For example: +- **Group labels** can be assigned to issues and merge requests in any project in + the selected group or its subgroups. + - They can also be assigned to epics in the selected group or its subgroups.**(ULTIMATE)** -![A sample scoped label](img/labels_key_value_v12_1.png) +## Assign and unassign labels -An issue, epic, or merge request cannot have two scoped labels with the same key. -For example, if an issue is already labeled `priority::3`, and then you apply the -`priority::2` label to it, `priority::3` is automatically removed. +Every issue, merge request and epic can be assigned any number of labels. The labels are +managed in the right sidebar, where you can assign or unassign labels as needed. -This functionality is demonstrated in a video titled [Use scoped labels in GitLab 11.10 for custom fields and custom workflows](https://www.youtube.com/watch?v=4BCBby6du3c). - -### Labels with multiple colon pairs - -If labels have multiple instances of `::`, the longest path from left to right, until -the last `::`, is considered the "key" or the "scope". - -For example, `nested::key1::value1` and `nested::key1::value2` cannot both exist on -the same issue. Adding the latter label will automatically remove the former due to -the shared scope of `nested::key1`. - -`nested::key1::value1` and `nested::key2::value1` can both exist on the same issue, -as these are considered to use two different label scopes, `nested::key1` and `nested::key2`. - -### Workflows with scoped labels - -Suppose you wanted a custom field in issues to track the platform operating system -that your features target, where each issue should only target one platform. You -would then create labels `platform::iOS`, `platform::Android`, `platform::Linux`, -etc., as necessary. Applying any one of these labels on a given issue would -automatically remove any other existing label that starts with `platform::`. - -The same pattern could be applied to represent the workflow states of your teams. -Suppose you have the labels `workflow::development`, `workflow::review`, and -`workflow::deployed`. If an issue already has the label `workflow::development` -applied, and a developer wanted to advance the issue to `workflow::review`, they -would simply apply that label, and the `workflow::development` label would -automatically be removed. This behavior already exists when you move issues -across label lists in an [issue board](issue_board.md#creating-workflows), but -now, team members who may not be working in an issue board directly would still -be able to advance workflow states consistently in issues themselves. +To assign a label to an issue, merge request or epic: -## Creating labels +1. In the label section of the sidebar, click **Edit**, then: + - In the list, click the labels you want. Each label is flagged with a checkmark. + - Find labels by entering a search query and clicking search (**{search}**), then + click on them. You can search repeatedly and add more labels. +1. Click **X** or anywhere outside the label section and the labels are applied. -NOTE: **Note:** -A permission level of Reporter or higher is required to create labels. +You can also assign a label with the [`/assign @username` quick action](quick_actions.md). -### New project label +## Label management -To create a **project label**, navigate to **Issues > Labels** in the project. -This page only shows the project labels in this project, and the group labels of the -project's parent group. +Users with a [permission level](../permissions.md) of Reporter or higher are able to create +and edit labels. -Click the **New label** button. Enter the title, an optional description, and the -background color. Click **Create label** to create the label. +### Project labels -If a project has no labels, you can generate a default set of project labels from -its empty label list page: +View the project labels list by going to the project and clicking **Issues > Labels**. +The list includes all labels that are defined at the project level, as well as all +labels inherited from the parent group. You can filter the list by entering a search +query at the top and clicking search (**{search}**). -![Labels generate default](img/labels_generate_default_v12_1.png) +To create a new project label: -GitLab will add the following default labels to the project: +1. Navigate to **Issues > Labels** in the project. +1. Click the **New label** button. + - Enter the title. + - (Optional) Enter a description. + - (Optional) Select a background color by clicking on the available colors, or input + a hex color value for a specific color. +1. Click **Create label** to create the label. -![Labels default](img/labels_default_v12_1.png) +You can also create a new project label from within an issue or merge request. In the +label section of the right sidebar of an issue or a merge request: -### New group label +1. Click **Edit**. +1. Click **Create project label**. + - Fill in the name field. Note that you can't specify a description if creating a label + this way. You can add a description later by editing the label (see below). + - (Optional) Select a color by clicking on the available colors, or input a hex + color value for a specific color. +1. Click **Create**. -To create a **group label**, navigate to **Issues > Labels** in the **group** and create -it from there. This page only shows group labels in this group. +Once created, you can edit a label by clicking the pencil (**{pencil}**), or delete +a label by clicking the three dots (**{ellipsis_v}**) next to the **Subscribe** button +and selecting **Delete**. -Alternatively, you can create group labels from the Epic sidebar. **(ULTIMATE)** +#### Promote a project label to a group label -Please note that the created label will belong to the immediate group to which the -epic belongs. +If you previously created a project label and now want to make it available for other +projects within the same group, you can promote it to a group label. If other projects +in the same group have a label with the same name, they will all be overwritten by +the new group label. -![Create Labels from Epic](img/labels_epic_sidebar_v12_1.png) +WARNING: **Caution:** +Promoting a label is a permanent action, and cannot be reversed. -Group labels appear in every label list page of the group's child projects. +To promote a project label to a group label: -![Labels list](img/labels_list_v12_1.png) +1. Navigate to **Issues > Labels** in the project. +1. Click on the three dots (**{ellipsis_v}**) next to the **Subscribe** button and + select **Promote to group label**. -### New project label from sidebar +### Group labels -From the sidebar of an issue or a merge request, you can create a new **project label** -inline immediately, instead of navigating to the project label list page. +View the group labels list by going to the group and clicking **Issues > Labels**. +The list includes all labels that are defined at the group level only. It does not +list any labels that are defined in projects. You can filter the list by entering +a search query at the top and clicking search (**{search}**). -![Labels inline](img/labels_new_label_from_sidebar.gif) +To create a **group label**, navigate to **Issues > Labels** in the group and +follow the same process as [creating a project label](#project-labels). -## Editing labels +#### Create group labels from epics **(ULTIMATE)** -NOTE: **Note:** -A permission level of Reporter or higher is required to edit labels. +You can create group labels from the Epic sidebar. The labels you create will +belong to the immediate group to which the epic belongs. The process is the same as +creating a [project label from an issue or merge request](#project-labels). -To update a label, navigate to **Issues > Labels** in the project or group -and click the pencil icon. The title, description and color can be changed. +### Generate default labels -To delete a label, click the three dots next to the `Subscribe` button, and select -**Delete**. +If a project or group has no labels, you can generate a default set of project or group +labels from the label list page. The page will show a **Generate a default set of labels** +button if the list is empty, and clicking it will add the following default labels +to the project: -![Delete label](img/labels_delete_v12_1.png) +- `bug` +- `confirmed` +- `critical` +- `discussion` +- `documentation` +- `enhancement` +- `suggestion` +- `support` -### Promoting project labels to group labels - -If you are expanding from a few projects to a larger number of projects within the -same group, you may want to share the same label among multiple projects in the same -group. If you previously created a project label and now want to make it available -for other projects, you can promote it to a group label. - -From the project label list page, you can promote a project label to a group label. -This will merge all project labels with the same name into a single group label, across -all projects in this group. All issues and merge requests that were previously -assigned one of these project labels will now be assigned the new group label. This -action cannot be reversed and the changes are permanent. - -![Labels promotion](img/labels_promotion_v12_1.png) - -## Assigning labels from the sidebar - -Every epic, issue, and merge request can be assigned any number of labels. The labels are -visible on every epic, issue and merge request page, in the sidebar and on your issue boards. - -From the sidebar, you can assign or unassign a label to the object (i.e. label or -unlabel it). You can also perform this as a [quick action](quick_actions.md), -in a comment. - -| View labels in sidebar | Assign labels from sidebar | -|:----------------------:|:--------------------------:| -| ![Labels sidebar](img/labels_sidebar.png) | ![Labels sidebar assign](img/labels_sidebar_assign.png) | - -## Searching for project labels - -To search for project labels, go to **Issues > Labels** in the left sidebar, and enter -your search query in the **Filter** field. +## Scoped labels **(PREMIUM)** -![Labels project list search](img/labels_project_list_search.png) +> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9175) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. -GitLab will check both the label titles and descriptions for the search. +Scoped labels allow teams to use the label feature to annotate issues, merge requests +and epics with mutually exclusive labels. This can enable more complicated workflows +by preventing certain labels from being used together. -## Filtering by label +A label is scoped when it uses a special double-colon (`::`) syntax in the label’s +title, for example: -The following can be filtered by labels: +![Sample scoped labels](img/labels_key_value_v12_1.png) -- Epic lists **(ULTIMATE)** -- Issue lists -- Merge Request lists -- Issue Boards +An issue, merge request or epic cannot have two scoped labels, of the form `key::value`, +with the same `key`. Adding a new label with the same `key`, but a different `value` will +cause the previous `key` label to be replaced with the new label. -### Filtering in list pages +Example use case: -- From the project issue list page and the project merge request list page, you can - [filter](../search/index.md#issues-and-merge-requests) by: - - Group labels (including subgroup ancestors) - - Project labels +1. An issue is identified as being low priority, and a `priority::low` project + label is added to it. +1. After more review the issue priority is increased, and a `priority::high` label is + added. +1. GitLab automatically removes the `priority::low` label, as an issue should not + have two priority labels at the same time. -- From the group epic lists page, issue list page and the group merge request list page, you can - [filter](../search/index.md#issues-and-merge-requests) by: - - Group labels (including subgroup ancestors and subgroup descendants) - - Project labels +### Workflows with scoped labels -- You can [filter](../search/index.md#issues-and-merge-requests) the group epic list - page by: **(ULTIMATE)** - - Current group labels - - Descendant group labels +Suppose you wanted a custom field in issues to track the operating system platform +that your features target, where each issue should only target one platform. You +would then create three labels `platform::iOS`, `platform::Android`, `platform::Linux`. +Applying any one of these labels on a given issue would automatically remove any other +existing label that starts with `platform::`. -![Labels group issues](img/labels_group_issues_v12_1.png) +The same pattern could be applied to represent the workflow states of your teams. +Suppose you have the labels `workflow::development`, `workflow::review`, and +`workflow::deployed`. If an issue already has the label `workflow::development` +applied, and a developer wanted to advance the issue to `workflow::review`, they +would simply apply that label, and the `workflow::development` label would +automatically be removed. This behavior already exists when you move issues +across label lists in an [issue board](issue_board.md#creating-workflows), but +now, team members who may not be working in an issue board directly would still +be able to advance workflow states consistently in issues themselves. -### Filtering in issue boards +This functionality is demonstrated in a video regarding +[using scoped labels for custom fields and workflows](https://www.youtube.com/watch?v=4BCBby6du3c). -- From [project boards](issue_board.md), you can use the [search and filter bar](../search/index.md#issue-boards) - to filter by: - - Group labels - - Project labels +### Scoped labels with nested scopes -- From [group issue boards](issue_board.md#group-issue-boards-premium), you can use the - [search and filter bar](../search/index.md#issue-boards) to filter by group labels only. **(PREMIUM)** +You can create a label with a nested scope by using multiple double colons `::` when creating +it. In this case, everything before the last `::` will be the scope. -- From [project boards](issue_board.md), in the [issue board configuration](issue_board.md#configurable-issue-boards-starter), - you can filter by: **(STARTER)** - - Group labels - - Project labels +For example, `workflow::backend::review` and `workflow::backend::development` are valid +scoped labels, but they **can't** exist on the same issue at the same time, as they +both share the same scope, `workflow::backend`. -- From [group issue boards](issue_board.md#group-issue-boards-premium), in the [issue board configuration](issue_board.md#configurable-issue-boards-starter), - you can filter by group labels only. **(STARTER)** +Addtionally, `workflow::backend::review` and `workflow::frontend::review` are valid +scoped labels, and they **can** exist on the same issue at the same time, as they +both have different scopes, `workflow::frontend` and `workflow::backend`. ## Subscribing to labels -From the project label list page and the group label list page, you can subscribe -to [notifications](../profile/notifications.md) of a given label, to alert you -that the label has been assigned to an epic, issue, or merge request. +From the project label list page and the group label list page, you can click **Subscribe** +to the right of any label to enable [notifications](../profile/notifications.md) for that +label. You will be notified whenever the label is assigned to an epic, +issue, or merge request. + +If you are subscribing to a group label from within a project, you can select to subscribe +to label notifications for the project only, or the whole group. ![Labels subscriptions](img/labels_subscriptions_v12_1.png) ## Label priority ->**Notes:** -> -> - Introduced in GitLab 8.9. -> - Priority sorting is based on the highest priority label only. [This discussion](https://gitlab.com/gitlab-org/gitlab-foss/issues/18554) considers changing this. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/14189) in GitLab 8.9. +> - Priority sorting is based on the highest priority label only. [This discussion](https://gitlab.com/gitlab-org/gitlab/issues/14523) considers changing this. -Labels can have relative priorities, which are used in the "Label priority" and -"Priority" sort orders of the epic, issue, and merge request list pages. +Labels can have relative priorities, which are used in the **Label priority** and +**Priority** sort orders of the epic, issue, and merge request list pages. Prioritization +for both group and project labels happens at the project level, and cannot be done +from the group label list. From the project label list page, star a label to indicate that it has a priority. ![Labels prioritized](img/labels_prioritized_v12_1.png) -Drag starred labels up and down the list to change their priority. Higher in the list -means higher priority. Prioritization happens at the project level, only on the project -label list page, and not on the group label list page. - -However, both project and group -labels can be prioritized on the project label list page since both types are displayed -on the project label list page. +Drag starred labels up and down the list to change their priority, where higher in the list +means higher priority. ![Drag to change label priority](img/labels_drag_priority_v12_1.gif) -On the epic, merge request and issue pages, for both groups and projects, you can sort by `Label priority` -and `Priority`, which account for objects (epic, issues, and merge requests) that have prioritized -labels assigned to them. +On the epic, merge request, and issue list pages, for both groups and projects, you +can sort by `Label priority` or `Priority`. -If you sort by `Label priority`, GitLab considers this sort comparison order: +If you sort by `Label priority`, GitLab uses this sort comparison order: -- Object with a higher priority prioritized label. -- Object without a prioritized label. +1. Items with a higher priority label. +1. Items without a prioritized label. -Ties are broken arbitrarily. Note that we _only_ consider the highest prioritized label -in an object, and not any of the lower prioritized labels. [This discussion](https://gitlab.com/gitlab-org/gitlab-foss/issues/18554) -considers changing this. +Ties are broken arbitrarily. Note that only the highest prioritized label is checked, +and labels with a lower priority are ignored. See this [related issue](https://gitlab.com/gitlab-org/gitlab/issues/14523) +for more information. ![Labels sort label priority](img/labels_sort_label_priority.png) -If you sort by `Priority`, GitLab considers this sort comparison order: +If you sort by `Priority`, GitLab uses this sort comparison order: -- Due date of the assigned [milestone](milestones/index.md) is sooner, provided - the object has a milestone and the milestone has a due date. If this isn't the case, - consider the object having a due date in the infinite future. -- Object with a higher priority prioritized label. -- Object without a prioritized label. +1. Items with milestones that have due dates, where the soonest assigned [milestone](milestones/index.md) + is listed first. +1. Items with milestones with no due dates. +1. Items with a higher priority label. +1. Items without a prioritized label. Ties are broken arbitrarily. diff --git a/doc/user/search/index.md b/doc/user/search/index.md index 82dd4c4167a..a7a34103d0b 100644 --- a/doc/user/search/index.md +++ b/doc/user/search/index.md @@ -33,8 +33,15 @@ Follow these steps to filter the **Issues** and **Merge Requests** list pages wi groups: 1. Click in the field **Search or filter results...**. -1. In the dropdown menu that appears, select the attribute you wish to filter by (for example, - author, assignee, milestone, and so on). +1. In the dropdown menu that appears, select the attribute you wish to filter by: + - Author + - Assignee + - [Milestone](../project/milestones/index.md) + - Release + - [Label](../project/labels.md) + - My-reaction + - Confidential + - Search for this text 1. Select or type the operator to use for filtering the attribute. The following operators are available: - `=`: Is diff --git a/lib/gitlab/graphql/docs/templates/default.md.haml b/lib/gitlab/graphql/docs/templates/default.md.haml index 135b65ca7cf..b126a22c301 100644 --- a/lib/gitlab/graphql/docs/templates/default.md.haml +++ b/lib/gitlab/graphql/docs/templates/default.md.haml @@ -9,8 +9,8 @@ The API can be explored interactively using the [GraphiQL IDE](../index.md#graphiql). -Each table below documents a GraphQL type. Types match loosely to models, but not all -fields and methods on a model are available via GraphQL. + Each table below documents a GraphQL type. Types match loosely to models, but not all + fields and methods on a model are available via GraphQL. \ - objects.each do |type| - unless type[:fields].empty? |