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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user/group')
-rw-r--r--doc/user/group/custom_project_templates.md4
-rw-r--r--doc/user/group/epics/index.md2
-rw-r--r--doc/user/group/epics/manage_epics.md5
-rw-r--r--doc/user/group/img/access_requests_management.pngbin22616 -> 0 bytes
-rw-r--r--doc/user/group/img/add_new_members_v13_7.pngbin58897 -> 0 bytes
-rw-r--r--doc/user/group/img/create_new_group_info.pngbin27101 -> 0 bytes
-rw-r--r--doc/user/group/img/create_new_project_from_group_v13_6.pngbin40062 -> 0 bytes
-rw-r--r--doc/user/group/img/group_activity_analytics_v12_10.pngbin56709 -> 0 bytes
-rw-r--r--doc/user/group/img/group_activity_analytics_v13_10.pngbin0 -> 12597 bytes
-rw-r--r--doc/user/group/img/group_file_template_dropdown.pngbin9516 -> 0 bytes
-rw-r--r--doc/user/group/img/group_members_filter_2fa_disabled_13_7.pngbin39226 -> 0 bytes
-rw-r--r--doc/user/group/img/group_members_filter_2fa_enabled_13_7.pngbin41497 -> 0 bytes
-rw-r--r--doc/user/group/img/group_members_filter_direct_13_7.pngbin40549 -> 0 bytes
-rw-r--r--doc/user/group/img/group_members_filter_inherited_13_7.pngbin43436 -> 0 bytes
-rw-r--r--doc/user/group/img/group_members_search_13_7.pngbin28622 -> 0 bytes
-rw-r--r--doc/user/group/img/group_members_sort_13_7.pngbin41897 -> 0 bytes
-rw-r--r--doc/user/group/img/group_settings.pngbin51335 -> 0 bytes
-rw-r--r--doc/user/group/img/groups.pngbin61507 -> 0 bytes
-rw-r--r--doc/user/group/img/ldap_sync_cn_v13_1.pngbin38094 -> 0 bytes
-rw-r--r--doc/user/group/img/ldap_sync_filter_v13_1.pngbin44302 -> 0 bytes
-rw-r--r--doc/user/group/img/manual_permissions_v13_7.pngbin69289 -> 0 bytes
-rw-r--r--doc/user/group/img/member_lock.pngbin3168 -> 0 bytes
-rw-r--r--doc/user/group/img/new_group_from_groups.pngbin25256 -> 0 bytes
-rw-r--r--doc/user/group/img/new_group_from_other_pages.pngbin21593 -> 0 bytes
-rw-r--r--doc/user/group/img/request_access_button.pngbin36258 -> 0 bytes
-rw-r--r--doc/user/group/img/select_group_dropdown.pngbin64359 -> 0 bytes
-rw-r--r--doc/user/group/img/select_group_dropdown_13_10.pngbin0 -> 11986 bytes
-rw-r--r--doc/user/group/img/share_with_group_lock.pngbin7493 -> 0 bytes
-rw-r--r--doc/user/group/img/withdraw_access_request_button.pngbin36782 -> 0 bytes
-rw-r--r--doc/user/group/import/index.md38
-rw-r--r--doc/user/group/index.md856
-rw-r--r--doc/user/group/repositories_analytics/index.md3
-rw-r--r--doc/user/group/roadmap/index.md2
-rw-r--r--doc/user/group/saml_sso/group_managed_accounts.md12
-rw-r--r--doc/user/group/saml_sso/index.md37
-rw-r--r--doc/user/group/saml_sso/scim_setup.md9
-rw-r--r--doc/user/group/subgroups/index.md6
-rw-r--r--doc/user/group/value_stream_analytics/img/delete_value_stream_v13_4.png (renamed from doc/user/group/value_stream_analytics/img/delete_value_stream_v13.4.png)bin29439 -> 29439 bytes
-rw-r--r--doc/user/group/value_stream_analytics/img/extended_value_stream_form_v13_10.pngbin0 -> 259265 bytes
-rw-r--r--doc/user/group/value_stream_analytics/img/vsa_custom_stage_v13_10.pngbin0 -> 47083 bytes
-rw-r--r--doc/user/group/value_stream_analytics/img/vsa_default_stage_v13_10.pngbin0 -> 43974 bytes
-rw-r--r--doc/user/group/value_stream_analytics/img/vsa_filter_bar_v13_3.png (renamed from doc/user/group/value_stream_analytics/img/vsa_filter_bar_v13.3.png)bin33694 -> 33694 bytes
-rw-r--r--doc/user/group/value_stream_analytics/index.md53
43 files changed, 459 insertions, 568 deletions
diff --git a/doc/user/group/custom_project_templates.md b/doc/user/group/custom_project_templates.md
index a59b1f2e9b2..813d2b8e265 100644
--- a/doc/user/group/custom_project_templates.md
+++ b/doc/user/group/custom_project_templates.md
@@ -11,7 +11,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
Custom project templates are useful for organizations that need to create many similar types of [projects](../project/index.md) and want to start from the same jumping-off point.
-## Setting up Group-level Project Templates
+## Setting up group-level project templates
To use a custom project template for a new project you need to:
@@ -30,7 +30,7 @@ To use a custom project template for a new project you need to:
Here is a sample group/project structure for a hypothetical "Acme Co" for project templates:
-```txt
+```plaintext
# GitLab instance and group
gitlab.com/acmeco/
# Subgroups
diff --git a/doc/user/group/epics/index.md b/doc/user/group/epics/index.md
index c76b07481b2..1cb024ceb01 100644
--- a/doc/user/group/epics/index.md
+++ b/doc/user/group/epics/index.md
@@ -154,7 +154,7 @@ You can also consult the [group permissions table](../../permissions.md#group-me
- Comments: collaborate on that epic by posting comments in its thread.
These text fields also fully support
- [GitLab Flavored Markdown](../../markdown.md#gitlab-flavored-markdown-gfm).
+ [GitLab Flavored Markdown](../../markdown.md#gitlab-flavored-markdown).
## Comment or start a thread
diff --git a/doc/user/group/epics/manage_epics.md b/doc/user/group/epics/manage_epics.md
index d4c1a5fc768..3c5e140965a 100644
--- a/doc/user/group/epics/manage_epics.md
+++ b/doc/user/group/epics/manage_epics.md
@@ -75,6 +75,9 @@ A modal appears to confirm your action.
Deleting an epic releases all existing issues from their associated epic in the system.
+WARNING:
+If you delete an epic, all its child epics and their descendants are deleted as well. If needed, you can [remove child epics](#remove-a-child-epic-from-a-parent-epic) from the parent epic before you delete it.
+
## Close an epic
Whenever you decide that there is no longer need for that epic,
@@ -243,7 +246,7 @@ To move an issue to another epic:
If you have the necessary [permissions](../../permissions.md) to close an issue and create an
epic in the immediate parent group, you can promote an issue to an epic with the `/promote`
-[quick action](../../project/quick_actions.md#quick-actions-for-issues-merge-requests-and-epics).
+[quick action](../../project/quick_actions.md#issues-merge-requests-and-epics).
Only issues from projects that are in groups can be promoted. When you attempt to promote a confidential
issue, a warning is displayed. Promoting a confidential issue to an epic makes all information
related to the issue public as epics are public to group members.
diff --git a/doc/user/group/img/access_requests_management.png b/doc/user/group/img/access_requests_management.png
deleted file mode 100644
index 7de6a1c0a5e..00000000000
--- a/doc/user/group/img/access_requests_management.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/add_new_members_v13_7.png b/doc/user/group/img/add_new_members_v13_7.png
deleted file mode 100644
index 7e06bdf8fd1..00000000000
--- a/doc/user/group/img/add_new_members_v13_7.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/create_new_group_info.png b/doc/user/group/img/create_new_group_info.png
deleted file mode 100644
index bd724240c37..00000000000
--- a/doc/user/group/img/create_new_group_info.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/create_new_project_from_group_v13_6.png b/doc/user/group/img/create_new_project_from_group_v13_6.png
deleted file mode 100644
index 72d19817686..00000000000
--- a/doc/user/group/img/create_new_project_from_group_v13_6.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/group_activity_analytics_v12_10.png b/doc/user/group/img/group_activity_analytics_v12_10.png
deleted file mode 100644
index e49594c155b..00000000000
--- a/doc/user/group/img/group_activity_analytics_v12_10.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/group_activity_analytics_v13_10.png b/doc/user/group/img/group_activity_analytics_v13_10.png
new file mode 100644
index 00000000000..b6e9b04861d
--- /dev/null
+++ b/doc/user/group/img/group_activity_analytics_v13_10.png
Binary files differ
diff --git a/doc/user/group/img/group_file_template_dropdown.png b/doc/user/group/img/group_file_template_dropdown.png
deleted file mode 100644
index f0586772218..00000000000
--- a/doc/user/group/img/group_file_template_dropdown.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/group_members_filter_2fa_disabled_13_7.png b/doc/user/group/img/group_members_filter_2fa_disabled_13_7.png
deleted file mode 100644
index 8336103bad1..00000000000
--- a/doc/user/group/img/group_members_filter_2fa_disabled_13_7.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/group_members_filter_2fa_enabled_13_7.png b/doc/user/group/img/group_members_filter_2fa_enabled_13_7.png
deleted file mode 100644
index eb27906b583..00000000000
--- a/doc/user/group/img/group_members_filter_2fa_enabled_13_7.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/group_members_filter_direct_13_7.png b/doc/user/group/img/group_members_filter_direct_13_7.png
deleted file mode 100644
index c1b2d996e59..00000000000
--- a/doc/user/group/img/group_members_filter_direct_13_7.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/group_members_filter_inherited_13_7.png b/doc/user/group/img/group_members_filter_inherited_13_7.png
deleted file mode 100644
index f75990f9da8..00000000000
--- a/doc/user/group/img/group_members_filter_inherited_13_7.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/group_members_search_13_7.png b/doc/user/group/img/group_members_search_13_7.png
deleted file mode 100644
index 21f36fc75f8..00000000000
--- a/doc/user/group/img/group_members_search_13_7.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/group_members_sort_13_7.png b/doc/user/group/img/group_members_sort_13_7.png
deleted file mode 100644
index 5d307da649a..00000000000
--- a/doc/user/group/img/group_members_sort_13_7.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/group_settings.png b/doc/user/group/img/group_settings.png
deleted file mode 100644
index f3a75f1bde8..00000000000
--- a/doc/user/group/img/group_settings.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/groups.png b/doc/user/group/img/groups.png
deleted file mode 100644
index 2e27d46b370..00000000000
--- a/doc/user/group/img/groups.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/ldap_sync_cn_v13_1.png b/doc/user/group/img/ldap_sync_cn_v13_1.png
deleted file mode 100644
index 279b3192328..00000000000
--- a/doc/user/group/img/ldap_sync_cn_v13_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/ldap_sync_filter_v13_1.png b/doc/user/group/img/ldap_sync_filter_v13_1.png
deleted file mode 100644
index 655bed58d46..00000000000
--- a/doc/user/group/img/ldap_sync_filter_v13_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/manual_permissions_v13_7.png b/doc/user/group/img/manual_permissions_v13_7.png
deleted file mode 100644
index fcea0121915..00000000000
--- a/doc/user/group/img/manual_permissions_v13_7.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/member_lock.png b/doc/user/group/img/member_lock.png
deleted file mode 100644
index 3f1382e76c6..00000000000
--- a/doc/user/group/img/member_lock.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/new_group_from_groups.png b/doc/user/group/img/new_group_from_groups.png
deleted file mode 100644
index ffafac1b1cd..00000000000
--- a/doc/user/group/img/new_group_from_groups.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/new_group_from_other_pages.png b/doc/user/group/img/new_group_from_other_pages.png
deleted file mode 100644
index f84501d1ff2..00000000000
--- a/doc/user/group/img/new_group_from_other_pages.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/request_access_button.png b/doc/user/group/img/request_access_button.png
deleted file mode 100644
index 4d73990ec7e..00000000000
--- a/doc/user/group/img/request_access_button.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/select_group_dropdown.png b/doc/user/group/img/select_group_dropdown.png
deleted file mode 100644
index 4948cefb65f..00000000000
--- a/doc/user/group/img/select_group_dropdown.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/select_group_dropdown_13_10.png b/doc/user/group/img/select_group_dropdown_13_10.png
new file mode 100644
index 00000000000..bf0d927b653
--- /dev/null
+++ b/doc/user/group/img/select_group_dropdown_13_10.png
Binary files differ
diff --git a/doc/user/group/img/share_with_group_lock.png b/doc/user/group/img/share_with_group_lock.png
deleted file mode 100644
index 77b00d8a248..00000000000
--- a/doc/user/group/img/share_with_group_lock.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/img/withdraw_access_request_button.png b/doc/user/group/img/withdraw_access_request_button.png
deleted file mode 100644
index a5fe78eb090..00000000000
--- a/doc/user/group/img/withdraw_access_request_button.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/group/import/index.md b/doc/user/group/import/index.md
index f4d15dce1cd..302f12273cb 100644
--- a/doc/user/group/import/index.md
+++ b/doc/user/group/import/index.md
@@ -20,11 +20,23 @@ Using GitLab Group Migration, you can migrate existing top-level groups from Git
The following resources are migrated to the target instance:
-- Groups
+- Groups ([Introduced in 13.7](https://gitlab.com/groups/gitlab-org/-/epics/4374))
- description
- attributes
- subgroups
-- Epics
+- Group Labels ([Introduced in 13.9](https://gitlab.com/gitlab-org/gitlab/-/issues/292429))
+ - title
+ - description
+ - color
+ - created_at ([Introduced in 13.10](https://gitlab.com/gitlab-org/gitlab/-/issues/300007))
+ - updated_at ([Introduced in 13.10](https://gitlab.com/gitlab-org/gitlab/-/issues/300007))
+- Members ([Introduced in 13.9](https://gitlab.com/gitlab-org/gitlab/-/issues/299415))
+ Group members are associated with the imported group if:
+ - The user already exists in the target GitLab instance and
+ - The user has a public email in the source GitLab instance that matches a
+ confirmed email in the target GitLab instance
+ confirmed email in the target GitLab instance
+- Epics ([Introduced in 13.7](https://gitlab.com/gitlab-org/gitlab/-/issues/250281))
- title
- description
- state (open / closed)
@@ -32,6 +44,28 @@ The following resources are migrated to the target instance:
- due date
- epic order on boards
- confidentiality
+ - labels ([Introduced in 13.9](https://gitlab.com/gitlab-org/gitlab/-/issues/297460))
+ - author ([Introduced in 13.9](https://gitlab.com/gitlab-org/gitlab/-/issues/298745))
+ - parent epic ([Introduced in 13.9](https://gitlab.com/gitlab-org/gitlab/-/issues/297459))
+ - emoji award ([Introduced in 13.9](https://gitlab.com/gitlab-org/gitlab/-/issues/297466))
+ - events ([Introduced in 13.10](https://gitlab.com/gitlab-org/gitlab/-/issues/297465))
+- Milestones ([Introduced in 13.10](https://gitlab.com/gitlab-org/gitlab/-/issues/292427))
+ - title
+ - description
+ - state (active / closed)
+ - start date
+ - due date
+ - created at
+ - updated at
+- Iterations ([Introduced in 13.10](https://gitlab.com/gitlab-org/gitlab/-/issues/292428))
+ - iid
+ - title
+ - description
+ - state (upcoming / started / closed)
+ - start date
+ - due date
+ - created at
+ - updated at
Any other items are **not** migrated.
diff --git a/doc/user/group/index.md b/doc/user/group/index.md
index 4c63bae7e44..36d292f670d 100644
--- a/doc/user/group/index.md
+++ b/doc/user/group/index.md
@@ -5,56 +5,36 @@ group: Access
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# Groups
+# Groups **(FREE)**
-With GitLab Groups, you can:
+In GitLab, you can put related projects together in a group.
-- Assemble related projects together.
-- Grant members access to several projects at once.
+For example, you might create a group for your company members and a subgroup for each individual team.
+You can name the group `company-team`, and the subgroups `backend-team`, `frontend-team`, and `production-team`.
-For a video introduction to GitLab Groups, see [GitLab University: Repositories, Projects and Groups](https://www.youtube.com/watch?v=4TWfh1aKHHw).
+Then you can:
-Groups can also be nested in [subgroups](subgroups/index.md).
+- Grant members access to multiple projects at once.
+- Add to-do items for all of the group members at once.
+- View the [issues](../project/issues/index.md#issues-list) and
+ [merge requests](../project/merge_requests/reviewing_and_managing_merge_requests.md#view-merge-requests-for-all-projects-in-a-group)
+ for all projects in the group, together in a single list view.
+- [Bulk edit](../group/bulk_editing/index.md) issues, epics, and merge requests.
-Find your groups by clicking **Groups > Your Groups** in the top navigation.
+You can also create [subgroups](subgroups/index.md).
-![GitLab Groups](img/groups.png)
+## View groups
-> The **Groups** dropdown in the top navigation was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/36234) in [GitLab 11.1](https://about.gitlab.com/releases/2018/07/22/gitlab-11-1-released/#groups-dropdown-in-navigation).
+To view groups:
-The **Groups** page displays:
+1. In the top menu, select **Groups > Your Groups**. All groups you are a member of are displayed.
+1. To view a list of public groups, select **Explore public groups**.
-- All groups you are a member of, when **Your groups** is selected.
-- A list of public groups, when **Explore public groups** is selected.
+You can also view groups by namespace.
-Each group on the **Groups** page is listed with:
+### Namespaces
-- How many subgroups it has.
-- How many projects it contains.
-- How many members the group has, not including members inherited from parent group(s).
-- The group's visibility.
-- A link to the group's settings, if you have sufficient permissions.
-- A link to leave the group, if you are a member.
-
-## Use cases
-
-You can create groups for numerous reasons. To name a couple:
-
-- Grant access to multiple projects and multiple team members in fewer steps by organizing related projects under the same [namespace](#namespaces) and adding members to the top-level group.
-- Make it easier to `@mention` all of your team at once in issues and merge requests by creating a group and including the appropriate members.
-
-For example, you could create a group for your company members, and create a [subgroup](subgroups/index.md) for each individual team. Let's say you create a group called `company-team`, and you create subgroups in this group for the individual teams `backend-team`, `frontend-team`, and `production-team`.
-
-- When you start a new implementation from an issue, you add a comment:
- _"`@company-team`, let's do it! `@company-team/backend-team` you're good to go!"_
-- When your backend team needs help from frontend, they add a comment:
- _"`@company-team/frontend-team` could you help us here please?"_
-- When the frontend team completes their implementation, they comment:
- _"`@company-team/backend-team`, it's done! Let's ship it `@company-team/production-team`!"_
-
-## Namespaces
-
-In GitLab, a namespace is a unique name to be used as a user name, a group name, or a subgroup name.
+In GitLab, a namespace is a unique name and URL for a user, a group, or subgroup.
- `http://gitlab.example.com/username`
- `http://gitlab.example.com/groupname`
@@ -62,154 +42,106 @@ In GitLab, a namespace is a unique name to be used as a user name, a group name,
For example, consider a user named Alex:
-1. Alex creates an account on GitLab.com with the username `alex`;
- their profile will be accessed under `https://gitlab.example.com/alex`
-1. Alex creates a group for their team with the group name `alex-team`;
- the group and its projects will be accessed under `https://gitlab.example.com/alex-team`
-1. Alex creates a subgroup of `alex-team` with the subgroup name `marketing`;
- this subgroup and its projects will be accessed under `https://gitlab.example.com/alex-team/marketing`
-
-By doing so:
-
-- Any team member mentions Alex with `@alex`
-- Alex mentions everyone from their team with `@alex-team`
-- Alex mentions only the marketing team with `@alex-team/marketing`
-
-## Issues and merge requests within a group
-
-Issues and merge requests are part of projects. For a given group, you can view all of the
-[issues](../project/issues/index.md#issues-list) and [merge requests](../project/merge_requests/reviewing_and_managing_merge_requests.md#view-merge-requests-for-all-projects-in-a-group) across all projects in that group,
-together in a single list view.
-
-### Bulk editing issues and merge requests
-
-For details, see [bulk editing issues and merge requests](../group/bulk_editing/index.md).
-
-## Create a new group
-
-> For a list of words that are not allowed to be used as group names see the
-> [reserved names](../reserved_names.md).
-
-To create a new Group, either:
-
-- In the top menu, click **Groups** and then **Your Groups**, and click the green button **New group**.
-
- ![new group from groups page](img/new_group_from_groups.png)
+1. Alex creates an account with the username `alex`: `https://gitlab.example.com/alex`
+1. Alex creates a group for their team with the group name `alex-team`.
+ The group and its projects are available at: `https://gitlab.example.com/alex-team`
+1. Alex creates a subgroup of `alex-team` with the subgroup name `marketing`.
+ The subgroup and its projects are available at: `https://gitlab.example.com/alex-team/marketing`
-- Or, in the top menu, expand the `plus` sign and choose **New group**.
+## Create a group
- ![new group from elsewhere](img/new_group_from_other_pages.png)
+To create a group:
-Add the following information:
-
-![new group information](img/create_new_group_info.png)
-
-1. The **Group name** will automatically populate the URL. Optionally, you can change it.
- This is the name that displays in group views.
- The name can contain only:
+1. From the top menu, either:
+ - Select **Groups > Your Groups**, and on the right, select the **New group** button.
+ - To the left of the search box, select the plus sign and then **New group**.
+1. For the **Group name**, use only:
- Alphanumeric characters
+ - Emojis
- Underscores
- - Dashes and dots
- - Spaces
-1. The **Group URL** is the namespace under which your projects will be hosted.
- The URL can contain only:
+ - Dashes, dots, spaces, and parentheses (however, it cannot start with any of these characters)
+
+ For a list of words that cannot be used as group names, see [reserved names](../reserved_names.md).
+
+1. For the **Group URL**, which is used for the [namespace](#namespaces),
+ use only:
- Alphanumeric characters
- Underscores
- Dashes and dots (it cannot start with dashes or end in a dot)
-1. Optionally, you can add a brief description to tell others
- what this group is about.
-1. Optionally, choose an avatar for your group.
1. Choose the [visibility level](../../public_access/public_access.md).
+1. Invite GitLab members or other users to join the group.
-For more details on creating groups, watch the video [GitLab Namespaces (users, groups and subgroups)](https://youtu.be/r0sJgjR2f5A).
+<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
+For details about groups, watch [GitLab Namespaces (users, groups and subgroups)](https://youtu.be/r0sJgjR2f5A).
## Add users to a group
-A benefit of putting multiple projects in one group is that you can
-give a user access to all projects in the group with one action.
-
-Add members to a group by navigating to the group's dashboard and clicking **Members**.
-
-![add members to group](img/add_new_members_v13_7.png)
-
-Select the [permission level](../permissions.md#permissions), and add the new member. You can also set the expiring date for that user; this is the date on which they will no longer have access to your group.
-
-Consider a group with two projects:
-
-- On the **Group Members** page, you can now add a new user to the group.
-- Now, because this user is a **Developer** member of the group, they automatically
- get **Developer** access to **all projects** within that group.
+You can give a user access to all projects in a group.
-To increase the access level of an existing user for a specific project,
-add them again as a new member to the project with the desired permission level.
+1. From the top menu, select **Groups > Your Groups**.
+1. Find your group and select it.
+1. From the left sidebar, select **Members**.
+1. Fill in the fields.
+ - The role applies to all projects in the group. [Learn more about permissions](../permissions.md#permissions).
+ - On the **Access expiration date**, the user can no longer access projects in the group.
## Request access to a group
-As a group owner, you can enable or disable the ability for non-members to request access to
-your group. Go to the group settings, and click **Allow users to request access**.
+As a user, you can request to be a member of a group, if an administrator allows it.
-As a user, you can request to be a member of a group, if that setting is enabled. Go to the group for which you'd like to be a member, and click the **Request Access** button on the right
-side of your screen.
+1. From the top menu, select **Groups > Your Groups**.
+1. Find the group and select it.
+1. Under the group name, select **Request Access**.
-![Request access button](img/request_access_button.png)
+As many as ten of the most-recently-active group owners receive an email with your request.
+Any group owner can approve or decline the request.
-Once access is requested:
+If you change your mind before your request is approved, select
+**Withdraw Access Request**.
-- Up to ten group owners are notified of your request via email.
- Email is sent to the most recently active group owners.
-- Any group owner can approve or decline your request on the members page.
+## Prevent users from requesting access to a group
-![Manage access requests](img/access_requests_management.png)
+As a group owner, you can prevent non-members from requesting access to
+your group.
-If you change your mind before your request is approved, just click the
-**Withdraw Access Request** button.
-
-![Withdraw access request button](img/withdraw_access_request_button.png)
-
-## Changing the owner of a group
+1. From the top menu, select **Groups > Your Groups**.
+1. Find the group and select it.
+1. From the left menu, select **Settings > General**.
+1. Expand the **Permissions, LFS, 2FA** section.
+1. Clear the **Allow users to request access** checkbox.
+1. Select **Save changes**.
-Ownership of a group means at least one of its members has
-[Owner permission](../permissions.md#group-members-permissions). Groups must have at
-least one owner.
+## Change the owner of a group
-Changing the owner of a group with only one owner is possible. To change the sole owner
-of a group:
+You can change the owner of a group. Each group must always have at least one
+member with [Owner permission](../permissions.md#group-members-permissions).
- As an administrator:
- 1. Go to the group's **{users}** **Members** tab.
+ 1. Go to the group and from the left menu, select **Members**.
1. Give a different member **Owner** permissions.
1. Refresh the page. You can now remove **Owner** permissions from the original owner.
- As the current group's owner:
- 1. Go to the group's **{users}** **Members** tab.
+ 1. Go to the group and from the left menu, select **Members**.
1. Give a different member **Owner** permissions.
1. Have the new owner sign in and remove **Owner** permissions from you.
## Remove a member from the group
-Only users with permissions of [Owner](../permissions.md#group-members-permissions) can manage
-group members.
-
-You can remove a member from the group if the given member has a direct membership in the group. If
-membership is inherited from a parent group, then the member can be removed only from the parent
-group itself.
-
-When removing a member, you can decide whether to unassign the user from all issues and merge
-requests they are currently assigned or leave the assignments as they are.
+Prerequisites:
-- **Unassigning the removed member** from all issues and merge requests might be helpful when a user
- is leaving a private group and you wish to revoke their access to any issues and merge requests
- they are assigned.
-- **Keeping the issues and merge requests assigned** might be helpful for groups that accept public
- contributions where a user doesn't have to be a member to be able to contribute to issues and
- merge requests.
+- You must have [Owner permissions](../permissions.md#group-members-permissions).
+- The member must have direct membership in the group. If
+ membership is inherited from a parent group, then the member can be removed
+ from the parent group only.
To remove a member from a group:
-1. In a group, go to **{users}** **Members**.
-1. Click the **Delete** **{remove}** button next to a group member you want to remove.
- A **Remove member** modal appears.
-1. (Optional) Select the **Also unassign this user from related issues and merge requests** checkbox.
-1. Click **Remove member**.
+1. Go to the group.
+1. From the left menu, select **Members**.
+1. Next to the member you want to remove, select **Delete**.
+1. Optional. On the **Remove member** confirmation box, select the
+ **Also unassign this user from related issues and merge requests** checkbox.
+1. Select **Remove member**.
## Filter and sort members in a group
@@ -217,56 +149,49 @@ To remove a member from a group:
> - [Improved](https://gitlab.com/gitlab-org/gitlab/-/issues/228675) in GitLab 13.7.
> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/289911) in GitLab 13.8.
-The following sections illustrate how you can filter and sort members in a group. To view these options,
-navigate to your desired group, go to **Members**, and include the noted search terms.
-
-### Membership filter
-
-By default, inherited and direct members are displayed. The [membership](subgroups/index.md#membership) filter can be used to display only inherited or only direct members.
-
-#### Only display inherited members
-
-Include `Membership` `=` `Inherited` in the search text box.
+To find members in a group, you can sort, filter, or search.
-![Group members filter inherited](img/group_members_filter_inherited_13_7.png)
+### Filter a group
-#### Only display direct members
+Filter a group to find members. By default, all members in the group and subgroups are displayed.
-Include `Membership` `=` `Direct` in the search text box.
+1. Go to the group and select **Members**.
+1. Above the list of members, in the **Filter members** box, enter filter criteria.
+ - To view members in the group only, select **Membership = Direct**.
+ - To view members of the group and its subgroups, select **Membership = Inherited**.
+ - To view members with two-factor authentication enabled or disabled, select **2FA = Enabled** or **Disabled**.
-![Group members filter direct](img/group_members_filter_direct_13_7.png)
+### Search a group
-### 2FA filter
-
-[Owner](../permissions.md#group-members-permissions) permissions required.
-
-By default, members with 2FA enabled and disabled are displayed. The 2FA filter can be used to display only members with 2FA enabled or only members with 2FA disabled.
-
-#### Only display members with 2FA enabled
-
-Include `2FA` `=` `Enabled` in the search text box.
-
-![Group members filter 2FA enabled](img/group_members_filter_2fa_enabled_13_7.png)
-
-#### Only display members with 2FA disabled
+You can search for members by name, username, or email.
-Include `2FA` `=` `Disabled` in the search text box.
+1. Go to the group and select **Members**.
+1. Above the list of members, in the **Filter members** box, enter search criteria.
+1. To the right of the **Filter members** box, select the magnifying glass (**{search}**).
-![Group members filter 2FA disabled](img/group_members_filter_2fa_disabled_13_7.png)
+### Sort members in a group
-### Search
+You can sort members by **Account**, **Access granted**, **Max role**, or **Last sign-in**.
-You can search for members by name, username, or email.
+1. Go to the group and select **Members**.
+1. Above the list of members, on the top right, from the **Account** list, select
+ the criteria to filter by.
+1. To switch the sort between ascending and descending, to the right of the **Account** list, select the
+ arrow (**{sort-lowest}** or **{sort-highest}**).
-![Group members search](img/group_members_search_13_7.png)
+## Mention a group in an issue or merge request
-### Sort
+When you mention a group in a comment, every member of the group gets a to-do item
+added to their To-do list.
-You can sort members by **Account**, **Access granted**, **Max role**, or **Last sign-in** in ascending or descending order.
+1. Open the MR or issue.
+1. In a comment, type `@` followed by the user, group, or subgroup namespace.
+ For example, `@alex`, `@alex-team`, or `@alex-team/marketing`.
+1. Select **Comment**.
-![Group members sort](img/group_members_sort_13_7.png)
+A to-do item is created for all the group and subgroup members.
-## Changing the default branch protection of a group
+## Change the default branch protection of a group
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/7583) in GitLab 12.9.
@@ -289,15 +214,11 @@ In [GitLab Premium or higher](https://about.gitlab.com/pricing/), GitLab adminis
There are two different ways to add a new project to a group:
- Select a group, and then click **New project**. You can then continue [creating your project](../../user/project/working_with_projects.md#create-a-project).
+- While you are creating a project, select a group from the dropdown menu.
- ![New project](img/create_new_project_from_group_v13_6.png)
-
-- While you are creating a project, select a group namespace
- you've already created from the dropdown menu.
+ ![Select group](img/select_group_dropdown_13_10.png)
- ![Select group](img/select_group_dropdown.png)
-
-### Default project-creation level
+### Specify who can add projects to a group
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/2534) in [GitLab Premium](https://about.gitlab.com/pricing/) 10.5.
> - Brought to [GitLab Starter](https://about.gitlab.com/pricing/) in 10.7.
@@ -314,188 +235,115 @@ 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).
-## View group details
-
-A group's **Details** page includes tabs for:
-
-- Subgroups and projects.
-- Shared projects.
-- Archived projects.
-
-### Group activity analytics overview
+## Group activity analytics **(PREMIUM)**
> - [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: **(PREMIUM)**
-
-- 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-locally-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).
+a [beta feature](https://about.gitlab.com/handbook/product/#beta).
-## View group activity
+For a group, you can view how many merge requests, issues, and members were created in the last 90 days.
-A group's **Activity** page displays the most recent actions taken in a group, including:
+These Group Activity Analytics can be enabled with the `group_activity_analytics` [feature flag](../../development/feature_flags/index.md#enabling-a-feature-flag-locally-in-development).
-- **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.
+![Recent Group Activity](img/group_activity_analytics_v13_10.png)
-The entire activity feed is also available in Atom format by clicking the
-**RSS** icon.
+### View group activity
-To view a group's **Activity** page:
+You can view the most recent actions taken in a group.
-1. Go to the group's page.
-1. In the left navigation menu, go to **Group Overview** and select **Activity**.
+1. From the top menu, select **Groups > Your Groups**.
+1. Find the group and select it.
+1. From the left menu, select **Group overview > Activity**.
-## Transfer projects into groups
+To view the activity feed in Atom format, select the
+**RSS** (**{rss}**) icon.
-Learn how to [transfer a project into a group](../project/settings/index.md#transferring-an-existing-project-into-another-namespace).
-
-## Sharing a project with a group
-
-You can [share your projects with a group](../project/members/share_project_with_groups.md)
-and give all group members access to the project at once.
-
-Alternatively, you can [lock the sharing with group feature](#share-with-group-lock).
-
-## Sharing a group with another group
+## Share a group with another group
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/18328) in GitLab 12.7.
-Similarly to [sharing a project with a group](#sharing-a-project-with-a-group),
-you can share a group with another group to give direct group members access
+Similar to how you [share a project with a group](../project/members/share_project_with_groups.md),
+you can share a group with another group. Members get direct access
to the shared group. This is not valid for inherited members.
-To share a given group, for example, 'Frontend' with another group, for example,
-'Engineering':
+To share a given group, for example, `Frontend` with another group, for example,
+`Engineering`:
-1. Navigate to your 'Frontend' group page and use the left navigation menu to go
- to your group **Members**.
+1. Go to the `Frontend` group.
+1. From the left menu, select **Members**.
1. Select the **Invite group** tab.
-1. Add 'Engineering' with the maximum access level of your choice.
-1. Click **Invite**.
+1. In the **Select a group to invite** list, select `Engineering`.
+1. For the **Max access level**, select an access level.
+1. Select **Invite**.
-All the members of the 'Engineering' group will have been added to 'Frontend'.
+All the members of the `Engineering` group are added to the `Frontend` group.
## Manage group memberships via LDAP **(PREMIUM SELF)**
-Group syncing allows LDAP groups to be mapped to GitLab groups. This provides more control over per-group user management. To configure group syncing edit the `group_base` **DN** (`'OU=Global Groups,OU=GitLab INT,DC=GitLab,DC=org'`). This **OU** contains all groups that will be associated with GitLab groups.
+Group syncing allows LDAP groups to be mapped to GitLab groups. This provides more control over per-group user management. To configure group syncing, edit the `group_base` **DN** (`'OU=Global Groups,OU=GitLab INT,DC=GitLab,DC=org'`). This **OU** contains all groups that will be associated with GitLab groups.
-Group links can be created using either a CN or a filter. These group links are created on the **Group Settings -> LDAP Synchronization** page. After configuring the link, it may take over an hour for the users to sync with the GitLab group.
+Group links can be created by using either a CN or a filter. To create these group links, go to the group's **Settings > LDAP Synchronization** page. After configuring the link, it may take more than an hour for the users to sync with the GitLab group.
For more information on the administration of LDAP and group sync, refer to the [main LDAP documentation](../../administration/auth/ldap/index.md#group-sync).
NOTE:
-If an LDAP user is a group member when LDAP Synchronization is added, and they are not part of the LDAP group, they will be removed from the group.
+When you add LDAP synchronization, if an LDAP user is a group member and they are not part of the LDAP group, they are removed from the group.
-### Creating group links via CN **(PREMIUM SELF)**
+### Create group links via CN **(PREMIUM SELF)**
To create group links via CN:
<!-- vale gitlab.Spelling = NO -->
1. Select the **LDAP Server** for the link.
-1. Select `LDAP Group cn` as the **Sync method**.
-1. In the **LDAP Group cn** text input box, begin typing the CN of the group. There will be a dropdown menu with matching CNs within the configured `group_base`. Select your CN from this list.
+1. As the **Sync method**, select `LDAP Group cn`.
+1. In the **LDAP Group cn** field, begin typing the CN of the group. There is a dropdown menu with matching CNs in the configured `group_base`. Select your CN from this list.
1. In the **LDAP Access** section, select the [permission level](../permissions.md) for users synced in this group.
-1. Click the `Add Synchronization` button to save this group link.
-
-![Creating group links via CN](img/ldap_sync_cn_v13_1.png)
+1. Select the **Add Synchronization** button.
<!-- vale gitlab.Spelling = YES -->
-### Creating group links via filter **(PREMIUM SELF)**
+### Create group links via filter **(PREMIUM SELF)**
To create group links via filter:
1. Select the **LDAP Server** for the link.
-1. Select `LDAP user filter` as the **Sync method**.
+1. As the **Sync method**, select `LDAP user filter`.
1. Input your filter in the **LDAP User filter** box. Follow the [documentation on user filters](../../administration/auth/ldap/index.md#set-up-ldap-user-filter).
1. In the **LDAP Access** section, select the [permission level](../permissions.md) for users synced in this group.
-1. Click the `Add Synchronization` button to save this group link.
+1. Select the **Add Synchronization** button.
-![Creating group links via filter](img/ldap_sync_filter_v13_1.png)
+### Override user permissions **(PREMIUM SELF)**
-### Overriding user permissions **(PREMIUM SELF)**
-
-In GitLab [8.15](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/822) and later, LDAP user permissions can now be manually overridden by an admin user. To override a user's permissions:
+LDAP user permissions can be manually overridden by an administrator. To override a user's permissions:
1. Go to your group's **Members** page.
-1. Select the pencil icon in the row for the user you are editing.
-1. Select the brown `Edit permissions` button in the modal.
-
-![Setting manual permissions](img/manual_permissions_v13_7.png)
-
-Now you will be able to edit the user's permissions from the **Members** page.
-
-## Epics **(ULTIMATE)**
+1. In the row for the user you are editing, select the pencil (**{pencil}**) icon.
+1. Select the brown **Edit permissions** button in the modal.
-> Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.2.
-
-Epics let you manage your portfolio of projects more efficiently and with less
-effort by tracking groups of issues that share a theme, across projects and
-milestones.
-
-[Learn more about Epics.](epics/index.md)
+Now you can edit the user's permissions from the **Members** page.
## Group wikis **(PREMIUM)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/13195) in [GitLab Premium](https://about.gitlab.com/pricing/) 13.5.
-Group wikis work the same way as [project wikis](../project/wiki/index.md), please refer to those docs for details on usage.
+Group wikis work the same way as [project wikis](../project/wiki/index.md).
Group wikis can be edited by members with [Developer permissions](../../user/permissions.md#group-members-permissions)
and above.
-Group wiki repositories can be moved through the [Group repository storage moves API](../../api/group_repository_storage_moves.md).
-
-### Group wikis limitations
+You can move group wiki repositories by using the [Group repository storage moves API](../../api/group_repository_storage_moves.md).
There are a few limitations compared to project wikis:
- Git LFS is not supported.
-- Group wikis are not included in global search and Geo replication.
+- Group wikis are not included in global search.
- Changes to group wikis don't show up in the group's activity feed.
-For updates, you can follow:
-
-- [The epic tracking feature parity with project wikis](https://gitlab.com/groups/gitlab-org/-/epics/2782).
-
-## Group Security Dashboard **(ULTIMATE)**
-
-Get an overview of the vulnerabilities of all the projects in a group and its subgroups.
-
-[Learn more about the Group Security Dashboard.](../application_security/security_dashboard/index.md)
-
-## Insights **(ULTIMATE)**
-
-> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/725) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.0.
+For updates, follow [the epic that tracks feature parity with project wikis](https://gitlab.com/groups/gitlab-org/-/epics/2782).
-Configure the Insights that matter for your groups or projects, allowing users
-to explore data such as:
+## Transfer a group
-- Triage hygiene
-- Issues created/closed per a given period
-- Average time for merge requests to be merged
-- Much more
-
-[Learn more about Insights](insights/index.md).
-
-## Transferring groups
-
-From GitLab 10.5, you can transfer groups in the following ways:
+You can transfer groups in the following ways:
- Transfer a subgroup to a new parent group.
- Convert a top-level group into a subgroup by transferring it to the desired group.
@@ -506,214 +354,173 @@ When transferring groups, note:
- Changing a group's parent can have unintended side effects. See [Redirects when changing repository paths](../project/repository/index.md#redirects-when-changing-repository-paths).
- You can only transfer groups to groups you manage.
- You must update your local repositories to point to the new location.
-- If the immediate parent group's visibility is lower than the group's current visibility, visibility levels for subgroups and projects will change to match the new parent group's visibility.
+- If the immediate parent group's visibility is lower than the group's current visibility, visibility levels for subgroups and projects change to match the new parent group's visibility.
- Only explicit group membership is transferred, not inherited membership. If the group's owners have only inherited membership, this leaves the group without an owner. In this case, the user transferring the group becomes the group's owner.
-- Transfers will fail if [packages](../packages/index.md) exist in any of the projects within the group, or in any of its subgroups.
-
-## Group settings
-
-After creating a group, you can manage its settings by navigating to
-the group's dashboard, and clicking **Settings**.
+- Transfers fail if [packages](../packages/index.md) exist in any of the projects in the group, or in any of its subgroups.
-![group settings](img/group_settings.png)
-
-### General settings
-
-In addition to editing any settings you previously
-set when [creating the group](#create-a-new-group), you can also
-access further configurations for your group.
-
-#### Changing a group's path
+## Change a group's path
Changing a group's path (group URL) can have unintended side effects. Read
-[how redirects will behave](../project/repository/index.md#redirects-when-changing-repository-paths)
-before proceeding.
+[how redirects behave](../project/repository/index.md#redirects-when-changing-repository-paths)
+before you proceed.
-If you are vacating the path so it can be claimed by another group or user,
-you may need to rename the group too, since both names and paths must
+If you are changing the path so it can be claimed by another group or user,
+you may need to rename the group too. Both names and paths must
be unique.
+To retain ownership of the original namespace and protect the URL redirects,
+create a new group and transfer projects to it instead.
+
To change your group path (group URL):
-1. Navigate to your group's **Settings > General** page.
+1. Go to your group's **Settings > General** page.
1. Expand the **Path, transfer, remove** section.
-1. Enter a new name under **Change group URL**.
-1. Click **Change group URL**.
+1. Under **Change group URL**, enter a new name.
+1. Select **Change group URL**.
WARNING:
-It is currently not possible to rename a namespace if it contains a
+It is not possible to rename a namespace if it contains a
project with [Container Registry](../packages/container_registry/index.md) tags,
because the project cannot be moved.
-NOTE:
-If you want to retain ownership over the original namespace and
-protect the URL redirects, then instead of changing a group's path or renaming a
-username, you can create a new group and transfer projects to it.
-
-### Group repository settings
-
-You can change settings that are specific to repositories in your group.
-
-#### Custom initial branch name **(FREE)**
+## Use a custom name for the initial branch
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43290) in GitLab 13.6.
By default, when you create a new project in GitLab, the initial branch is called `master`.
For groups, a group owner can customize the initial branch name to something
-else. This way, every new project created under that group from then on will start from the custom branch name rather than `master`. To do so:
+else. This way, every new project created under that group from then on starts from the custom branch name rather than `master`.
+
+To use a custom name for the initial branch:
-1. Go to the **Group page > Settings > Repository** and expand **Default initial
- branch name**.
+1. Go to the group's **Settings > Repository** page.
+1. Expand the **Default initial branch name** section.
1. Change the default initial branch to a custom name of your choice.
-1. **Save Changes**.
+1. Select **Save changes**.
-### Remove a group
+## Remove a group
To remove a group and its contents:
-1. Navigate to your group's **Settings > General** page.
+1. Go to your group's **Settings > General** page.
1. Expand the **Path, transfer, remove** section.
-1. In the Remove group section, click the **Remove group** button.
-1. Confirm the action when asked to.
+1. In the Remove group section, select **Remove group**.
+1. Confirm the action.
-This action either:
+This action removes the group. It also adds a background job to delete all projects in the group.
-- Removes the group, and also queues a background job to delete all projects in that group.
-- Since [GitLab 12.8](https://gitlab.com/gitlab-org/gitlab/-/issues/33257), on [Premium](https://about.gitlab.com/pricing/premium/) or higher tiers, this action adds a background job to mark a group for deletion. By default, the job schedules the deletion 7 days in the future. You can modify this waiting period through the [instance settings](../admin_area/settings/visibility_and_access_controls.md#default-deletion-delay).
+Specifically:
-Since [GitLab 13.6](https://gitlab.com/gitlab-org/gitlab/-/issues/39504), if the user who sets up the deletion leaves or is otherwise removed from the group before the
-actual deletion happens, the job is cancelled, and the group is no longer scheduled for deletion.
+- In [GitLab 12.8 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/33257), on [Premium](https://about.gitlab.com/pricing/premium/) or higher tiers, this action adds a background job to mark a group for deletion. By default, the job schedules the deletion 7 days in the future. You can modify this waiting period through the [instance settings](../admin_area/settings/visibility_and_access_controls.md#default-deletion-delay).
+- In [GitLab 13.6 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/39504), if the user who sets up the deletion is removed from the group before the
+deletion happens, the job is cancelled, and the group is no longer scheduled for deletion.
-### Restore a group **(PREMIUM)**
+## Restore a group **(PREMIUM)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/33257) in GitLab 12.8.
To restore a group that is marked for deletion:
-1. Navigate to your group's **Settings > General** page.
+1. Go to your group's **Settings > General** page.
1. Expand the **Path, transfer, remove** section.
-1. In the Restore group section, click the **Restore group** button.
+1. In the Restore group section, select **Restore group**.
-#### Enforce 2FA to group members
-
-Add a security layer to your group by
-[enforcing two-factor authentication (2FA)](../../security/two_factor_authentication.md#enforcing-2fa-for-all-users-in-a-group)
-for all group members.
-
-#### Share with group lock
+## Prevent a project from being shared with groups
Prevent projects in a group from [sharing
a project with another group](../project/members/share_project_with_groups.md) to enable tighter control over project access.
-For example, let's say you have two distinct teams (Group A and Group B) working together in a project, and to inherit the group membership, you share the project between the
-two groups A and B. **Share with group lock** prevents any project within
-the group from being shared with another group,
-guaranteeing that only the right group members have access to those projects.
+To prevent a project from being shared with other groups:
-To enable this feature, navigate to the group settings page. Select
-**Share with group lock** and **Save the group**.
-
-![Checkbox for share with group lock](img/share_with_group_lock.png)
+1. Go to the group's **Settings > General** page.
+1. Expand the **Permissions, LFS, 2FA** section.
+1. Select **Prevent sharing a project within <group_name> with other groups**.
+1. Select **Save changes**.
-#### Member Lock **(PREMIUM)**
+## Prevent members from being added to a group **(PREMIUM)**
-Member lock lets a group owner prevent any new project membership to all of the
-projects within a group, allowing tighter control over project membership.
+As a group owner, you can prevent any new project membership for all
+projects in a group, allowing tighter control over project membership.
For example, if you want to lock the group for an [Audit Event](../../administration/audit_events.md),
-enable Member lock to guarantee that project membership cannot be modified during that audit.
-
-To enable this feature:
+you can guarantee that project membership cannot be modified during the audit.
-1. Navigate to the group's **Settings > General** page.
-1. Expand the **Permissions, LFS, 2FA** section, and select **Member lock**.
-1. Click **Save changes**.
+To prevent members from being added to a group:
-![Checkbox for membership lock](img/member_lock.png)
+1. Go to the group's **Settings > General** page.
+1. Expand the **Permissions, LFS, 2FA** section.
+1. Under **Member lock**, select **Prevent adding new members to project membership within this group**.
+1. Select **Save changes**.
-This will disable the option for all users who previously had permissions to
-operate project memberships, so no new users can be added. Furthermore, any
-request to add a new user to a project through API will not be possible.
+All users who previously had permissions can no longer add members to a group.
+API requests to add a new user to a project are not possible.
-#### IP access restriction **(PREMIUM)**
+## Restrict group access by IP address **(PREMIUM)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/1985) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.0.
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/215410) to [GitLab Premium](https://about.gitlab.com/pricing/) in 13.1.
NOTE:
-IP Access Restrictions are currently not functioning as expected on GitLab.com. Some users
-may experience blocked Git operations or have difficulties accessing projects. Please
-review the [following bug report](https://gitlab.com/gitlab-org/gitlab/-/issues/271673) for
-more information.
+IP access restrictions are not functioning as expected on GitLab.com. If enabled,
+users cannot perform Git operations through SSH, or access projects in the UI.
+For more information, [see this issue](https://gitlab.com/gitlab-org/gitlab/-/issues/271673).
-To make sure only people from within your organization can access particular
-resources, you have the option to restrict access to groups and their
-underlying subgroups, projects, issues, and so on, by IP address. This can help ensure that
-particular content doesn't leave the premises, while not blocking off access to
-the entire instance. IP access restrictions can only be configured at the group level.
+To ensure only people from your organization can access particular
+resources, you can restrict access to groups by IP address. This setting applies to all subgroups,
+projects, issues, and so on.
-Add one or more allowed IP subnets using CIDR notation to the group settings and anyone
-coming from a different IP address won't be able to access the restricted
-content.
+IP access restrictions can be configured at the group level only.
-Restriction currently applies to:
+This restriction applies to:
-- UI.
-- [From GitLab 12.3](https://gitlab.com/gitlab-org/gitlab/-/issues/12874), API access.
-- [From GitLab 12.4](https://gitlab.com/gitlab-org/gitlab/-/issues/32113), Git actions via SSH.
+- The GitLab UI.
+- [In GitLab 12.3 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/12874), the API.
+- [In GitLab 12.4 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/32113), Git actions via SSH.
-To avoid accidental lock-out, admins and group owners are able to access
-the group regardless of the IP restriction.
+Administrators and group owners are able to access the group regardless of the IP restriction.
-To enable this feature:
+To restrict group access by IP address:
-1. Navigate to the group’s **Settings > General** page.
-1. Expand the **Permissions, LFS, 2FA** section, and enter IP address ranges into **Allow access to the following IP addresses** field.
-1. Click **Save changes**.
+1. Go to the group’s **Settings > General** page.
+1. Expand the **Permissions, LFS, 2FA** section.
+1. In the **Allow access to the following IP addresses** field, enter IP address ranges in CIDR notation.
+1. Select **Save changes**.
![Domain restriction by IP address](img/restrict-by-ip.gif)
-#### Allowed domain restriction **(PREMIUM)**
+## Restrict group access by domain **(PREMIUM)**
>- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/7297) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2.
->- Support for specifying multiple email domains [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/33143) in GitLab 13.1
+>- Support for specifying multiple email domains [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/33143) added in GitLab 13.1.
-You can restrict access to groups by allowing only users with email addresses in particular domains to be added to the group.
+You can prevent users with email addresses in specific domains from being added to a group.
-Add email domains you want to allow and users with emails from different domains won't be allowed to be added to this group.
-
-Some domains cannot be restricted. These are the most popular public email domains, such as:
+To restrict group access by domain:
-- `gmail.com`
-- `yahoo.com`
-- `hotmail.com`
-- `aol.com`
-- `msn.com`
-- `hotmail.co.uk`
-- `hotmail.fr`
-- `live.com`
-- `outlook.com`
-- `icloud.com`
-
-To enable this feature:
-
-1. Navigate to the group's **Settings > General** page.
-1. Expand the **Permissions, LFS, 2FA** section, and enter the domain names into **Restrict membership by email** field.
-1. Click **Save changes**.
+1. Go to the group's **Settings > General** page.
+1. Expand the **Permissions, LFS, 2FA** section.
+1. In the **Restrict membership by email** field, enter the domain names.
+1. Select **Save changes**.
![Domain restriction by email](img/restrict-by-email.gif)
-This will enable the domain-checking for all new users added to the group from this moment on.
+Any time you attempt to add a new user, they are compared against this list.
+
+Some domains cannot be restricted. These are the most popular public email domains, such as:
+
+- `gmail.com`, `yahoo.com`, `aol.com`, `icloud.com`
+- `hotmail.com`, `hotmail.co.uk`, `hotmail.fr`
+- `msn.com`, `live.com`, `outlook.com`
NOTE:
-Domain restrictions only apply to groups and do not prevent users from being added as members of projects owned by the restricted group.
+Domain restrictions apply to groups only. They do not prevent users from being added as members of projects owned by the restricted group.
-#### Group file templates **(PREMIUM)**
+## Group file templates **(PREMIUM)**
-Group file templates allow you to share a set of templates for common file
+Use group file templates to share a set of templates for common file
types with every project in a group. It is analogous to the
-[instance template repository](../admin_area/settings/instance_template_repository.md)
-feature, and the selected project should follow the same naming conventions as
+[instance template repository](../admin_area/settings/instance_template_repository.md).
+The selected project should follow the same naming conventions as
are documented on that page.
You can only choose projects in the group as the template source.
@@ -721,38 +528,38 @@ This includes projects shared with the group, but it **excludes** projects in
subgroups or parent groups of the group being configured.
You can configure this feature for both subgroups and immediate parent groups. A project
-in a subgroup will have access to the templates for that subgroup, as well as
+in a subgroup has access to the templates for that subgroup, as well as
any immediate parent groups.
-![Group file template dropdown](img/group_file_template_dropdown.png)
+To learn how to create templates for issues and merge requests, see
+[Description templates](../project/description_templates.md).
-To enable this feature, navigate to the group settings page, expand the
-**Templates** section, choose a project to act as the template repository, and
-**Save group**.
+Define project templates at a group level by setting a group as the template source.
+[Learn more about group-level project templates](custom_project_templates.md). **(PREMIUM)**
-![Group file template settings](img/group_file_template_settings.png)
+### Enable group file template **(PREMIUM)**
-To learn how to create templates for issues and merge requests, visit
-[Description templates](../project/description_templates.md).
+To enable group file templates:
-#### Group-level project templates **(PREMIUM)**
-
-Define project templates at a group level by setting a group as the template source.
-[Learn more about group-level project templates](custom_project_templates.md).
+1. Go to the group's **Settings > General** page.
+1. Expand the **Templates** section.
+1. Choose a project to act as the template repository.
+1. Select **Save changes**.
-#### Disabling email notifications
+## Disable email notifications
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/23585) in GitLab 12.2.
You can disable all email notifications related to the group, which includes its subgroups and projects.
-To enable this feature:
+To disable email notifications:
-1. Navigate to the group's **Settings > General** page.
-1. Expand the **Permissions, LFS, 2FA** section, and select **Disable email notifications**.
-1. Click **Save changes**.
+1. Go to the group's **Settings > General** page.
+1. Expand the **Permissions, LFS, 2FA** section.
+1. Select **Disable email notifications**.
+1. Select **Save changes**.
-#### Disabling group mentions
+## Disable group mentions
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/21301) in GitLab 12.6.
@@ -763,120 +570,95 @@ Groups with disabled mentions are visualized accordingly in the autocompletion d
This is particularly helpful for groups with a large number of users.
-To enable this feature:
+To disable group mentions:
-1. Navigate to the group's **Settings > General** page.
-1. Expand the **Permissions, LFS, 2FA** section, and select **Disable group mentions**.
-1. Click **Save changes**.
+1. Go to the group's **Settings > General** page.
+1. Expand the **Permissions, LFS, 2FA** section.
+1. Select **Disable group mentions**.
+1. Select **Save changes**.
-#### Enabling delayed Project removal **(PREMIUM)**
+## Enable delayed project removal **(PREMIUM)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/220382) in GitLab 13.2.
-By default, projects within a group are deleted immediately.
+By default, projects in a group are deleted immediately.
Optionally, on [Premium](https://about.gitlab.com/pricing/) or higher tiers,
-you can configure the projects within a group to be deleted after a delayed interval.
+you can configure the projects in a group to be deleted after a delayed interval.
-During this interval period, the projects will be in a read-only state and can be restored, if required.
-The interval period defaults to 7 days, and can be modified by an admin in the [instance settings](../admin_area/settings/visibility_and_access_controls.md#default-deletion-delay).
+During this interval period, the projects are in a read-only state and can be restored, if required.
+The interval period defaults to 7 days, and can be modified by an administrator in the [instance settings](../admin_area/settings/visibility_and_access_controls.md#default-deletion-delay).
To enable delayed deletion of projects:
-1. Navigate to the group's **Settings > General** page.
-1. Expand the **Permissions, LFS, 2FA** section, and check **Enable delayed project removal**.
-1. Click **Save changes**.
+1. Go to the group's **Settings > General** page.
+1. Expand the **Permissions, LFS, 2FA** section.
+1. Check **Enable delayed project removal**.
+1. Select **Save changes**.
NOTE:
The group setting for delayed deletion is not inherited by subgroups and has to be individually defined for each group.
-#### Prevent project forking outside group **(PREMIUM)**
+## Prevent project forking outside group **(PREMIUM)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/216987) in GitLab 13.3.
-By default, projects within a group can be forked.
+By default, projects in a group can be forked.
Optionally, on [Premium](https://about.gitlab.com/pricing/) or higher tiers,
-you can prevent the projects within a group from being forked outside of the current top-level group.
+you can prevent the projects in a group from being forked outside of the current top-level group.
Previously this setting was available only for groups enforcing group managed account. This setting will be
-removed from SAML setting page and migrated to group setting, but in the interim period of changes both of those settings will be taken into consideration, if even one is set to `true` then it will be assumed group does not allow forking projects outside.
+removed from SAML setting page and migrated to group settings. In the interim period, both of these settings are taken into consideration.
+If even one is set to `true` then it will be assumed the group does not allow forking projects outside.
To enable prevent project forking:
-1. Navigate to the top-level group's **Settings > General** page.
-1. Expand the **Permissions, LFS, 2FA** section, and check **Prevent project forking outside current group**.
-1. Click **Save changes**.
-
-### Advanced settings
-
-- **Projects**: View all projects within that group, add members to each project,
- access each project's settings, and remove any project, all from the same screen.
-- **Webhooks**: Configure [webhooks](../project/integrations/webhooks.md) for your group.
-- **Kubernetes cluster integration**: Connect your GitLab group with [Kubernetes clusters](clusters/index.md).
-- **Audit Events**: View [Audit Events](../../administration/audit_events.md)
- for the group. **(PREMIUM SELF)**
-- **Pipelines quota**: Keep track of the [pipeline quota](../admin_area/settings/continuous_integration.md) for the group.
-- **Integrations**: Configure [integrations](../admin_area/settings/project_integration_management.md) for your group.
+1. Go to the top-level group's **Settings > General** page.
+1. Expand the **Permissions, LFS, 2FA** section.
+1. Check **Prevent project forking outside current group**.
+1. Select **Save changes**.
-#### Group push rules **(PREMIUM)**
+## Group push rules **(PREMIUM)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/34370) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.8.
> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/224129) in GitLab 13.4.
Group push rules allow group maintainers to set
-[push rules](../../push_rules/push_rules.md) for newly created projects within the specific group.
+[push rules](../../push_rules/push_rules.md) for newly created projects in the specific group.
-To configure push rules for a group, navigate to **{push-rules}** on the group's
-sidebar.
+To configure push rules for a group:
-When set, new subgroups have push rules set for them based on either:
+1. Go to the groups's **Push Rules** page.
+1. Select the settings you want.
+1. Select **Save Push Rules**.
+
+The group's new subgroups have push rules set for them based on either:
- The closest parent group with push rules defined.
- Push rules set at the instance level, if no parent groups have push rules defined.
-### Maximum artifacts size **(FREE SELF)**
-
-For information about setting a maximum artifact size for a group, see
-[Maximum artifacts size](../admin_area/settings/continuous_integration.md#maximum-artifacts-size).
-
-## User contribution analysis **(PREMIUM)**
-
-With [GitLab Contribution Analytics](contribution_analytics/index.md),
-you have an overview of the contributions (pushes, merge requests,
-and issues) performed by your group members.
-
-## Issue analytics **(PREMIUM)**
-
-With [GitLab Issue Analytics](issues_analytics/index.md), you can see a bar chart of the number of issues created each month in your groups.
-
-## Repositories analytics **(PREMIUM)**
-
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/263478) in GitLab 13.6.
-> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/276003) in GitLab 13.7.
-
-With [GitLab Repositories Analytics](repositories_analytics/index.md), you can view overall activity of all projects with code coverage.
-
-## Dependency Proxy
-
-Use GitLab as a [dependency proxy](../packages/dependency_proxy/index.md) for upstream Docker images.
-
-<!-- ## Troubleshooting
-
-Include any troubleshooting steps that you can foresee. If you know beforehand what issues
-one might have when setting this up, or when something is changed, or on upgrading, it's
-important to describe those, too. Think of things that may go wrong and include them here.
-This is important to minimize requests for support, and to avoid doc comments with
-questions that you know someone might ask.
-
-Each scenario can be a third-level heading, e.g. `### Getting error message X`.
-If you have none to add when creating a doc, leave this section in place
-but commented out to help encourage others to add to it in the future. -->
-
-## DORA4 analytics overview **(ULTIMATE ONLY)**
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/291747) in GitLab [Ultimate](https://about.gitlab.com/pricing/) 13.9 as a [Beta feature](https://about.gitlab.com/handbook/product/gitlab-the-product/#beta).
-
-Group details include the following analytics:
-
-- Deployment Frequency
-
-For more information, see [DORA4 Project Analytics API](../../api/dora4_group_analytics.md).
+## Related topics
+
+- [Maximum artifacts size](../admin_area/settings/continuous_integration.md#maximum-artifacts-size). **(FREE SELF)**
+- [Repositories analytics](repositories_analytics/index.md): View overall activity of all projects with code coverage. **(PREMIUM)**
+- [Contribution analytics](contribution_analytics/index.md): View the contributions (pushes, merge requests,
+ and issues) of group members. **(PREMIUM)**
+- [Issue analytics](issues_analytics/index.md): View a bar chart of your group's number of issues per month. **(PREMIUM)**
+- Use GitLab as a [dependency proxy](../packages/dependency_proxy/index.md) for upstream Docker images.
+- [DORA4 Project Analytics API](../../api/dora4_group_analytics.md): View deployment frequency analytics.
+ [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/291747) in GitLab Ultimate 13.9 as a
+ [Beta feature](https://about.gitlab.com/handbook/product/gitlab-the-product/#beta). **(ULTIMATE SELF)**
+- [Epics](epics/index.md): Track groups of issues that share a theme. **(ULTIMATE)**
+- [Security Dashboard](../application_security/security_dashboard/index.md): View the vulnerabilities of all
+ the projects in a group and its subgroups. **(ULTIMATE)**
+- [Insights](insights/index.md): Configure insights like triage hygiene, issues created/closed per a given period, and
+ average time for merge requests to be merged. **(ULTIMATE)**
+- [Webhooks](../project/integrations/webhooks.md).
+- [Kubernetes cluster integration](clusters/index.md).
+- [Audit Events](../../administration/audit_events.md#group-events). **(PREMIUM)**
+- [Pipelines quota](../admin_area/settings/continuous_integration.md): Keep track of the pipeline quota for the group.
+- [Integrations](../admin_area/settings/project_integration_management.md).
+- [Transfer a project into a group](../project/settings/index.md#transferring-an-existing-project-into-another-namespace).
+- [Share a project with a group](../project/members/share_project_with_groups.md): Give all group members access to the project at once.
+- [Lock the sharing with group feature](#prevent-a-project-from-being-shared-with-groups).
+- [Enforce two-factor authentication (2FA)](../../security/two_factor_authentication.md#enforcing-2fa-for-all-users-in-a-group): Enforce 2FA
+ for all group members.
diff --git a/doc/user/group/repositories_analytics/index.md b/doc/user/group/repositories_analytics/index.md
index 1cb7c05bb5f..42522723047 100644
--- a/doc/user/group/repositories_analytics/index.md
+++ b/doc/user/group/repositories_analytics/index.md
@@ -40,6 +40,9 @@ To see the latest code coverage for each project in your group:
1. Go to **Analytics > Repositories** in the group (not from a project).
1. In the **Latest test coverage results** section, use the **Select projects** dropdown to choose the projects you want to check.
+You can download code coverage data for specific projects using
+[code coverage history](../../../ci/pipelines/settings.md#code-coverage-history).
+
## Download historic test coverage data
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/215104) in [GitLab Premium](https://about.gitlab.com/pricing/) 13.4.
diff --git a/doc/user/group/roadmap/index.md b/doc/user/group/roadmap/index.md
index e2c01987e36..9b3ae75b39c 100644
--- a/doc/user/group/roadmap/index.md
+++ b/doc/user/group/roadmap/index.md
@@ -41,7 +41,7 @@ toggle the list of the milestone bars.
> - Filtering roadmaps by milestone is enabled on GitLab.com.
> - Filtering roadmaps by milestone is recommended for production use.
> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](#enable-or-disable-filtering-roadmaps-by-milestone). **(PREMIUM SELF)**
-> - Filtering by epic confidentiality [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/218624) in GitLab 13.8.
+> - Filtering by epic confidentiality [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/218624) in GitLab 13.9.
WARNING:
Filtering roadmaps by milestone might not be available to you. Check the **version history** note above for details.
diff --git a/doc/user/group/saml_sso/group_managed_accounts.md b/doc/user/group/saml_sso/group_managed_accounts.md
index dd0888a610f..9f2cafd456b 100644
--- a/doc/user/group/saml_sso/group_managed_accounts.md
+++ b/doc/user/group/saml_sso/group_managed_accounts.md
@@ -37,17 +37,7 @@ Since use of the group-managed account requires the use of SSO, users of group-m
- The user is unable to access the group (their credentials no longer work on the identity provider when prompted to use SSO).
- Contributions in the group (for example, issues and merge requests) remains intact.
-## Assertions
-
-When using group-managed accounts, the following user details need to be passed to GitLab as SAML
-assertions to be able to create a user.
-
-| Field | Supported keys |
-|-----------------|----------------|
-| Email (required)| `email`, `mail` |
-| Full Name | `name` |
-| First Name | `first_name`, `firstname`, `firstName` |
-| Last Name | `last_name`, `lastname`, `lastName` |
+Please refer to our [SAML SSO for Groups page](../index.md) for information on how to configure SAML.
## Feature flag **(PREMIUM SELF)**
diff --git a/doc/user/group/saml_sso/index.md b/doc/user/group/saml_sso/index.md
index d1c490b0769..004efe7b244 100644
--- a/doc/user/group/saml_sso/index.md
+++ b/doc/user/group/saml_sso/index.md
@@ -25,7 +25,8 @@ SAML SSO is only configurable at the top-level group.
1. Navigate to the group and select **Settings > SAML SSO**.
1. Configure your SAML server using the **Assertion consumer service URL**, **Identifier**, and **GitLab single sign-on URL**. Alternatively GitLab provides [metadata XML configuration](#metadata-configuration). See [specific identity provider documentation](#providers) for more details.
1. Configure the SAML response to include a NameID that uniquely identifies each user.
-1. Configure [required assertions](group_managed_accounts.md#assertions) if using [Group Managed Accounts](group_managed_accounts.md).
+1. Configure [required assertions](#assertions) at minimum containing
+ the user's email address.
1. While the default is enabled for most SAML providers, please ensure the app is set to have [Service Provider](#glossary) initiated calls in order to link existing GitLab accounts.
1. Once the identity provider is set up, move on to [configuring GitLab](#configuring-gitlab).
@@ -53,6 +54,19 @@ Once users have signed into GitLab using the SSO SAML setup, changing the `NameI
We recommend setting the NameID format to `Persistent` unless using a field (such as email) that requires a different format.
+### Assertions
+
+For users to be created with the right information with the improved [user access and management](#user-access-and-management),
+the following user details need to be passed to GitLab as SAML assertions.
+
+| Field | Supported keys |
+|-----------------|----------------|
+| Email (required)| `email`, `mail` |
+| Username | `username`, `nickname` |
+| Full Name | `name` |
+| First Name | `first_name`, `firstname`, `firstName` |
+| Last Name | `last_name`, `lastname`, `lastName` |
+
### Metadata configuration
GitLab provides metadata XML that can be used to configure your Identity Provider.
@@ -87,9 +101,8 @@ Please note that the certificate [fingerprint algorithm](#additional-providers-a
With this option enabled, users must go through your group's GitLab single sign-on URL. They may also be added via SCIM, if configured. Users can't be added manually, and may only access project/group resources via the UI by signing in through the SSO URL.
However, users are not prompted to sign in through SSO on each visit. GitLab checks whether a user
-has authenticated through SSO. If it's been more than 7 days since the last sign-in, GitLab
+has authenticated through SSO. If it's been more than 1 day since the last sign-in, GitLab
prompts the user to sign in again through SSO.
-You can see more information about how long a session is valid in our [user profile documentation](../../profile/#why-do-i-keep-getting-signed-out).
We intend to add a similar SSO requirement for [Git and API activity](https://gitlab.com/gitlab-org/gitlab/-/issues/9152).
@@ -98,7 +111,7 @@ When SSO enforcement is enabled for a group, users can't share a project in the
## Providers
NOTE:
-GitLab is unable to provide full support for integrating identify providers that are not listed here.
+GitLab is unable to provide full support for integrating identity providers that are not listed here.
| Provider | Documentation |
|----------|---------------|
@@ -106,7 +119,7 @@ GitLab is unable to provide full support for integrating identify providers that
| Okta | [Setting up a SAML application in Okta](https://developer.okta.com/docs/guides/build-sso-integration/saml2/overview/) |
| OneLogin | [Use the OneLogin SAML Test Connector](https://onelogin.service-now.com/support?id=kb_article&sys_id=93f95543db109700d5505eea4b96198f) |
-When [configuring your identify provider](#configuring-your-identity-provider), please consider the notes below for specific providers to help avoid common issues and as a guide for terminology used.
+When [configuring your identity provider](#configuring-your-identity-provider), please consider the notes below for specific providers to help avoid common issues and as a guide for terminology used.
### Azure setup notes
@@ -148,8 +161,11 @@ For NameID, the following settings are recommended; for SCIM, the following sett
### OneLogin setup notes
-The GitLab app listed in the OneLogin app catalog is for self-managed GitLab instances.
-For GitLab.com, use a generic SAML Test Connector such as the SAML Test Connector (Advanced).
+OneLogin supports their own [GitLab (SaaS)](https://onelogin.service-now.com/support?id=kb_article&sys_id=92e4160adbf16cd0ca1c400e0b961923&kb_category=50984e84db738300d5505eea4b961913)
+application.
+
+If you decide to use the OneLogin generic [SAML Test Connector (Advanced)](https://onelogin.service-now.com/support?id=kb_article&sys_id=b2c19353dbde7b8024c780c74b9619fb&kb_category=93e869b0db185340d5505eea4b961934),
+we recommend the following settings:
| GitLab Setting | OneLogin Field |
|--------------|----------------|
@@ -170,7 +186,7 @@ For more information, see our [discussion on providers](#providers).
Your identity provider may have relevant documentation. It may be generic SAML documentation, or specifically targeted for GitLab. Examples:
- [ADFS (Active Directory Federation Services)](https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/create-a-relying-party-trust)
-- [Auth0](https://auth0.com/docs/protocols/saml-configuration-options/configure-auth0-as-saml-identity-provider)
+- [Auth0](https://auth0.com/docs/protocols/saml-protocol/configure-auth0-as-saml-identity-provider)
- [Google Workspace](https://support.google.com/a/answer/6087519?hl=en)
- [JumpCloud](https://support.jumpcloud.com/support/s/article/single-sign-on-sso-with-gitlab-2019-08-21-10-36-47)
- [PingOne by Ping Identity](https://docs.pingidentity.com/bundle/pingone/page/xsh1564020480660-1.html)
@@ -348,6 +364,11 @@ the user gets the highest access level from the groups. For example, if one grou
is linked as `Guest` and another `Maintainer`, a user in both groups gets `Maintainer`
access.
+Users who are not members of any mapped SAML groups are removed from the GitLab group.
+
+You can prevent accidental member removal. For example, if you have a SAML group link for `Owner` level access
+in a top-level group, you should also set up a group link for all other members.
+
## Glossary
| Term | Description |
diff --git a/doc/user/group/saml_sso/scim_setup.md b/doc/user/group/saml_sso/scim_setup.md
index 3a34a4b0599..35374812b37 100644
--- a/doc/user/group/saml_sso/scim_setup.md
+++ b/doc/user/group/saml_sso/scim_setup.md
@@ -161,6 +161,11 @@ The Okta GitLab application currently only supports SCIM. Continue
using the separate Okta [SAML SSO](index.md) configuration along with the new SCIM
application described above.
+### OneLogin
+
+OneLogin provides a "GitLab (SaaS)" app in their catalog, which includes a SCIM integration.
+As the app is developed by OneLogin, please reach out to OneLogin if you encounter issues.
+
## User access and linking setup
The following diagram is a general outline on what happens when you add users to your SCIM app:
@@ -197,6 +202,10 @@ Upon the next sync, the user is deprovisioned, which means that the user is remo
NOTE:
Deprovisioning does not delete the user account.
+During the synchronization process, all of your users get GitLab accounts, welcoming them
+to their respective groups, with an invitation email. When implementing SCIM provisioning,
+you may want to warn your security-conscious employees about this email.
+
```mermaid
graph TD
A[Remove User from SCIM app] -->|IdP sends request to GitLab| B(GitLab: Is the user part of the group?)
diff --git a/doc/user/group/subgroups/index.md b/doc/user/group/subgroups/index.md
index 59812fc2b2f..16430b49549 100644
--- a/doc/user/group/subgroups/index.md
+++ b/doc/user/group/subgroups/index.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Manage
+group: Access
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
type: reference, howto, concepts
---
@@ -147,7 +147,7 @@ From the image above, we can deduce the following things:
- Administrator is the Owner and member of **all** subgroups and for that reason,
as with User 3, the **Source** column indicates **Direct member**.
-Members can be [filtered by inherited or direct membership](../index.md#membership-filter).
+Members can be [filtered by inherited or direct membership](../index.md#filter-a-group).
### Overriding the ancestor group membership
diff --git a/doc/user/group/value_stream_analytics/img/delete_value_stream_v13.4.png b/doc/user/group/value_stream_analytics/img/delete_value_stream_v13_4.png
index c97fcb76343..c97fcb76343 100644
--- a/doc/user/group/value_stream_analytics/img/delete_value_stream_v13.4.png
+++ b/doc/user/group/value_stream_analytics/img/delete_value_stream_v13_4.png
Binary files differ
diff --git a/doc/user/group/value_stream_analytics/img/extended_value_stream_form_v13_10.png b/doc/user/group/value_stream_analytics/img/extended_value_stream_form_v13_10.png
new file mode 100644
index 00000000000..26508787177
--- /dev/null
+++ b/doc/user/group/value_stream_analytics/img/extended_value_stream_form_v13_10.png
Binary files differ
diff --git a/doc/user/group/value_stream_analytics/img/vsa_custom_stage_v13_10.png b/doc/user/group/value_stream_analytics/img/vsa_custom_stage_v13_10.png
new file mode 100644
index 00000000000..77f4a26b880
--- /dev/null
+++ b/doc/user/group/value_stream_analytics/img/vsa_custom_stage_v13_10.png
Binary files differ
diff --git a/doc/user/group/value_stream_analytics/img/vsa_default_stage_v13_10.png b/doc/user/group/value_stream_analytics/img/vsa_default_stage_v13_10.png
new file mode 100644
index 00000000000..1adb114b025
--- /dev/null
+++ b/doc/user/group/value_stream_analytics/img/vsa_default_stage_v13_10.png
Binary files differ
diff --git a/doc/user/group/value_stream_analytics/img/vsa_filter_bar_v13.3.png b/doc/user/group/value_stream_analytics/img/vsa_filter_bar_v13_3.png
index 506765f63cb..506765f63cb 100644
--- a/doc/user/group/value_stream_analytics/img/vsa_filter_bar_v13.3.png
+++ b/doc/user/group/value_stream_analytics/img/vsa_filter_bar_v13_3.png
Binary files differ
diff --git a/doc/user/group/value_stream_analytics/index.md b/doc/user/group/value_stream_analytics/index.md
index 4fcef07a04e..52cf51d85a4 100644
--- a/doc/user/group/value_stream_analytics/index.md
+++ b/doc/user/group/value_stream_analytics/index.md
@@ -59,7 +59,7 @@ To filter results:
1. Select a parameter to filter by.
1. Select a value from the autocompleted results, or type to refine the results.
-![Value stream analytics filter bar](img/vsa_filter_bar_v13.3.png "Active filter bar for value stream analytics")
+![Value stream analytics filter bar](img/vsa_filter_bar_v13_3.png "Active filter bar for value stream analytics")
### Date ranges
@@ -299,10 +299,59 @@ To create a value stream:
1. Navigate to your group's **Analytics > Value Stream**.
1. Click the Value stream dropdown and select **Create new Value Stream**
1. Fill in a name for the new Value Stream
+ - You can [customize the stages](#creating-a-value-stream-with-stages) as the `value_stream_analytics_extended_form` feature flag is enabled.
1. Click the **Create Value Stream** button.
![New value stream](img/new_value_stream_v13_3.png "Creating a new value stream")
+#### Creating a value stream with stages
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/55572) in GitLab 13.10.
+> - It's [deployed behind a feature flag](../../feature_flags.md), enabled by default.
+> - It's enabled on GitLab.com.
+> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](../../../administration/feature_flags.md). **(FREE SELF)**
+
+WARNING:
+This feature might not be available to you. Check the **version history** note above for details.
+
+You can create value streams with stages, starting with a default or a blank template. You can
+add stages as desired.
+
+To create a value stream with stages:
+
+1. Navigate to your group's **Analytics > Value Stream**.
+1. Find and select the Value Stream dropdown. Select **Create new Value Stream**.
+1. Select either **Create from default template** or **Create from no template**.
+ - Default stages in the value stream can be hidden or re-ordered
+ ![Default stage actions](img/vsa_default_stage_v13_10.png "Default stage actions")
+ - New stages can be added by clicking the 'Add another stage' button
+ - The name, start and end events for the stage can be selected
+ ![Custom stage actions](img/vsa_custom_stage_v13_10.png "Custom stage actions")
+1. Select the **Create Value Stream** button to save the value stream.
+
+![Extended create value stream form](img/extended_value_stream_form_v13_10.png "Extended create value stream form")
+
+#### Enable or disable value stream with stages
+
+Value streams with stages is under development but ready for production use.
+It is deployed behind a feature flag that is **enabled by default**.
+[GitLab administrators with access to the GitLab Rails console](../../../administration/feature_flags.md)
+can opt to disable it.
+
+To enable it:
+
+```ruby
+# For the instance
+Feature.enable(:value_stream_analytics_extended_form)
+```
+
+To disable it:
+
+```ruby
+# For the instance
+Feature.disable(:value_stream_analytics_extended_form)
+```
+
### Deleting a value stream
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/221205) in GitLab 13.4.
@@ -314,7 +363,7 @@ To delete a custom value stream:
1. Click the **Delete (name of value stream)**.
1. Click the **Delete** button to confirm.
-![Delete value stream](img/delete_value_stream_v13.4.png "Deleting a custom value stream")
+![Delete value stream](img/delete_value_stream_v13_4.png "Deleting a custom value stream")
## Days to completion chart