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:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-05-24 03:07:19 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-05-24 03:07:19 +0300
commit0cfa77ee9ac952f50bb0adce18261730ecc476ed (patch)
treef9c131abdeab359a84d641b67cc72b30ec88f70e
parent4e175ca905e0c6bdcf83f78fcffd1f5bc8767f82 (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--app/assets/javascripts/ide/init_gitlab_web_ide.js2
-rw-r--r--app/helpers/ide_helper.rb6
-rw-r--r--doc/administration/get_started.md4
-rw-r--r--doc/ci/environments/protected_environments.md2
-rw-r--r--doc/subscriptions/gitlab_com/index.md4
-rw-r--r--doc/tutorials/agile_sprint/index.md2
-rw-r--r--doc/user/admin_area/index.md2
-rw-r--r--doc/user/admin_area/settings/visibility_and_access_controls.md2
-rw-r--r--doc/user/enterprise_user/index.md2
-rw-r--r--doc/user/group/access_and_permissions.md4
-rw-r--r--doc/user/group/custom_project_templates.md2
-rw-r--r--doc/user/group/index.md254
-rw-r--r--doc/user/group/manage.md328
-rw-r--r--doc/user/group/subgroups/index.md2
-rw-r--r--doc/user/group/troubleshooting.md102
-rw-r--r--doc/user/permissions.md2
-rw-r--r--doc/user/project/merge_requests/approvals/rules.md6
-rw-r--r--doc/user/project/settings/index.md2
-rw-r--r--locale/gitlab.pot3
19 files changed, 359 insertions, 372 deletions
diff --git a/app/assets/javascripts/ide/init_gitlab_web_ide.js b/app/assets/javascripts/ide/init_gitlab_web_ide.js
index 51af73decad..11a0095db92 100644
--- a/app/assets/javascripts/ide/init_gitlab_web_ide.js
+++ b/app/assets/javascripts/ide/init_gitlab_web_ide.js
@@ -42,6 +42,7 @@ export const initGitlabWebIDE = async (el) => {
editorFontSrcUrl,
editorFontFormat,
editorFontFamily,
+ codeSuggestionsEnabled,
} = el.dataset;
const rootEl = setupRootElement(el);
@@ -74,6 +75,7 @@ export const initGitlabWebIDE = async (el) => {
fontFamily: editorFontFamily,
format: editorFontFormat,
},
+ codeSuggestionsEnabled,
handleTracking,
async handleStartRemote({ remoteHost, remotePath, connectionToken }) {
const confirmed = await confirmAction(
diff --git a/app/helpers/ide_helper.rb b/app/helpers/ide_helper.rb
index 22b6919dcdc..af1feb7c206 100644
--- a/app/helpers/ide_helper.rb
+++ b/app/helpers/ide_helper.rb
@@ -29,13 +29,17 @@ module IdeHelper
private
+ def new_ide_code_suggestions_data
+ {}
+ end
+
def new_ide_data(project:)
{
'project-path' => project&.path_with_namespace,
'csp-nonce' => content_security_policy_nonce,
# We will replace these placeholders in the FE
'ide-remote-path' => ide_remote_path(remote_host: ':remote_host', remote_path: ':remote_path')
- }
+ }.merge(new_ide_code_suggestions_data)
end
def legacy_ide_data(project:)
diff --git a/doc/administration/get_started.md b/doc/administration/get_started.md
index 0b5de38a78b..b780008281b 100644
--- a/doc/administration/get_started.md
+++ b/doc/administration/get_started.md
@@ -37,8 +37,8 @@ Watch an overview of [groups and projects](https://www.youtube.com/watch?v=cqb2m
Get started:
- Create a [project](../user/project/index.md#create-a-project).
-- Create a [group](../user/group/manage.md#create-a-group).
-- [Add members](../user/group/manage.md#add-users-to-a-group) to the group.
+- Create a [group](../user/group/index.md#create-a-group).
+- [Add members](../user/group/index.md#add-users-to-a-group) to the group.
- Create a [subgroup](../user/group/subgroups/index.md#create-a-subgroup).
- [Add members](../user/group/subgroups/index.md#subgroup-membership) to the subgroup.
- Enable [external authorization control](../user/admin_area/settings/external_authorization.md#configuration).
diff --git a/doc/ci/environments/protected_environments.md b/doc/ci/environments/protected_environments.md
index f752e2179df..2fd5f85afd5 100644
--- a/doc/ci/environments/protected_environments.md
+++ b/doc/ci/environments/protected_environments.md
@@ -87,7 +87,7 @@ Alternatively, you can use the API to protect an environment:
name: ${CI_JOB_NAME}
```
-1. Use the UI to [create a new group](../../user/group/manage.md#create-a-group).
+1. Use the UI to [create a new group](../../user/group/index.md#create-a-group).
For example, this group is called `protected-access-group` and has the group ID `9899826`. Note
that the rest of the examples in these steps use this group.
diff --git a/doc/subscriptions/gitlab_com/index.md b/doc/subscriptions/gitlab_com/index.md
index ff93d1c903a..bc96768bbd1 100644
--- a/doc/subscriptions/gitlab_com/index.md
+++ b/doc/subscriptions/gitlab_com/index.md
@@ -33,9 +33,9 @@ To subscribe to GitLab SaaS:
and decide which tier you want.
1. Create a user account for yourself by using the
[sign up page](https://gitlab.com/users/sign_up).
-1. Create a [group](../../user/group/manage.md#create-a-group). Your subscription tier applies to the top-level group, its subgroups, and projects.
+1. Create a [group](../../user/group/index.md#create-a-group). Your subscription tier applies to the top-level group, its subgroups, and projects.
1. Create additional users and
- [add them to the group](../../user/group/manage.md#add-users-to-a-group). The users in this group, its subgroups, and projects can use
+ [add them to the group](../../user/group/index.md#add-users-to-a-group). The users in this group, its subgroups, and projects can use
the features of your subscription tier, and they consume a seat in your subscription.
1. On the left sidebar, select **Settings > Billing** and choose a tier.
1. Fill out the form to complete your purchase.
diff --git a/doc/tutorials/agile_sprint/index.md b/doc/tutorials/agile_sprint/index.md
index 0ce100df65e..fe106af2dc2 100644
--- a/doc/tutorials/agile_sprint/index.md
+++ b/doc/tutorials/agile_sprint/index.md
@@ -23,7 +23,7 @@ After you've created these core components, you can begin running your iteration
## Create a group
Iteration cadences are created at the group level, so start by
-[creating one](../../user/group/manage.md#create-a-group) if you don't have one already.
+[creating one](../../user/group/index.md#create-a-group) if you don't have one already.
You use groups to manage one or more related projects at the same time.
You add your users as members in the group, and assign them a role. Roles determine
diff --git a/doc/user/admin_area/index.md b/doc/user/admin_area/index.md
index 71c2468c97f..4ab8577cbb2 100644
--- a/doc/user/admin_area/index.md
+++ b/doc/user/admin_area/index.md
@@ -273,7 +273,7 @@ sort order is by **Last created**.
To search for groups by name, enter your criteria in the search field. The group search is case
insensitive, and applies partial matching.
-To [Create a new group](../group/manage.md#create-a-group) select **New group**.
+To [Create a new group](../group/index.md#create-a-group) select **New group**.
### Administering Topics
diff --git a/doc/user/admin_area/settings/visibility_and_access_controls.md b/doc/user/admin_area/settings/visibility_and_access_controls.md
index c7b144113ee..381f985e923 100644
--- a/doc/user/admin_area/settings/visibility_and_access_controls.md
+++ b/doc/user/admin_area/settings/visibility_and_access_controls.md
@@ -20,7 +20,7 @@ To access the visibility and access control options:
## Define which roles can create projects
Instance-level protections for project creation define which roles can
-[add projects to a group](../../group/manage.md#specify-who-can-add-projects-to-a-group)
+[add projects to a group](../../group/index.md#specify-who-can-add-projects-to-a-group)
on the instance. To alter which roles have permission to create projects:
1. Sign in to GitLab as a user with Administrator access level.
diff --git a/doc/user/enterprise_user/index.md b/doc/user/enterprise_user/index.md
index 8cebdf2749d..e64a9de1a12 100644
--- a/doc/user/enterprise_user/index.md
+++ b/doc/user/enterprise_user/index.md
@@ -11,7 +11,7 @@ Enterprise users have user accounts that are administered by an organization tha
has purchased a [GitLab subscription](../../subscriptions/index.md).
Enterprise users are identified by the [**Enterprise** badge](../project/badges.md)
-next to their names on the [Members list](../group/manage.md#filter-and-sort-members-in-a-group).
+next to their names on the [Members list](../group/index.md#filter-and-sort-members-in-a-group).
## Provision an enterprise user
diff --git a/doc/user/group/access_and_permissions.md b/doc/user/group/access_and_permissions.md
index 375a6bd3939..a0191ba3369 100644
--- a/doc/user/group/access_and_permissions.md
+++ b/doc/user/group/access_and_permissions.md
@@ -290,7 +290,7 @@ LDAP user permissions can be manually overridden by an administrator. To overrid
- The same or fewer permissions than the parent group membership, that user is displayed as having
[inherited membership](../project/members/index.md#display-inherited-members) of the group.
1. Optional. If the user you want to edit is displayed as having inherited membership,
- [filter the subgroup to show direct members](manage.md#filter-a-group) before
+ [filter the subgroup to show direct members](index.md#filter-a-group) before
overriding LDAP user permissions.
1. In the row for the user you are editing, select the pencil (**{pencil}**) icon.
1. Select **Edit permissions** in the modal.
@@ -318,6 +318,6 @@ If a parent group membership has the same or higher role than a subgroup, the
listed on the subgroup members page, even if a [direct membership](../project/members/index.md#membership-types)
on the group exists.
-To view and update direct memberships, [filter the group to show direct members](manage.md#filter-a-group).
+To view and update direct memberships, [filter the group to show direct members](index.md#filter-a-group).
The need to filter members by type through a redesigned members page that lists both direct and inherited memberships is proposed in [issue 337539](https://gitlab.com/gitlab-org/gitlab/-/issues/337539#note_1277786161).
diff --git a/doc/user/group/custom_project_templates.md b/doc/user/group/custom_project_templates.md
index 95d7ddb056e..cbab83dd61e 100644
--- a/doc/user/group/custom_project_templates.md
+++ b/doc/user/group/custom_project_templates.md
@@ -29,7 +29,7 @@ To set up custom project templates in a group, add the subgroup that contains th
project templates to the group settings:
1. In the group, create a [subgroup](subgroups/index.md).
-1. [Add projects to the new subgroup](manage.md#add-projects-to-a-group) as your templates.
+1. [Add projects to the new subgroup](index.md#add-projects-to-a-group) as your templates.
1. In the left menu for the group, select **Settings > General**.
1. Expand **Custom project templates** and select the subgroup.
diff --git a/doc/user/group/index.md b/doc/user/group/index.md
index 9ebf3be3000..e6d6034e4b2 100644
--- a/doc/user/group/index.md
+++ b/doc/user/group/index.md
@@ -45,29 +45,231 @@ empty for anonymous users. The group page has a visibility level icon.
Administrator users cannot create a subgroup or project with a higher visibility level than that of
the immediate parent group.
-## Related topics
-
-- [Group wikis](../project/wiki/index.md)
-- [Maximum artifacts size](../admin_area/settings/continuous_integration.md#maximum-artifacts-size).
-- [Repositories analytics](repositories_analytics/index.md): View overall activity of all projects with code coverage.
-- [Contribution analytics](contribution_analytics/index.md): View the contributions (pushes, merge requests,
- and issues) of group members.
-- [Issue analytics](issues_analytics/index.md): View a bar chart of your group's number of issues per month.
-- Use GitLab as a [dependency proxy](../packages/dependency_proxy/index.md) for upstream Docker images.
-- [Epics](epics/index.md): Track groups of issues that share a theme.
-- [Security Dashboard](../application_security/security_dashboard/index.md): View the vulnerabilities of all
- the projects in a group and its subgroups.
-- [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.
-- [Webhooks](../project/integrations/webhooks.md).
-- [Kubernetes cluster integration](clusters/index.md).
-- [Audit Events](../../administration/audit_events.md#group-events).
-- [CI/CD minutes quota](../../ci/pipelines/cicd_minutes.md): Keep track of the CI/CD minute quota for the group.
-- [Integrations](../admin_area/settings/project_integration_management.md).
-- [Transfer a project into a group](../project/settings/index.md#transfer-a-project-to-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](access_and_permissions.md#prevent-a-project-from-being-shared-with-groups).
-- [Enforce two-factor authentication (2FA)](../../security/two_factor_authentication.md#enforce-2fa-for-all-users-in-a-group): Enforce 2FA
- for all group members.
-- Namespaces [API](../../api/namespaces.md) and [Rake tasks](../../raketasks/index.md).
-- [Control access and visibility](../admin_area/settings/visibility_and_access_controls.md).
+## View groups
+
+To view groups, on the top bar, select **Main menu > Groups > View all groups**.
+
+The **Groups** page shows a list of groups, sorted by last updated date.
+
+- To explore all public groups, select **Explore groups**.
+- To view groups where you have a direct or indirect membership, select **Your groups**. This tab shows groups that you are a member of:
+ - Through membership of a subgroup's parent group.
+ - Through direct or inherited membership of a project in the group or subgroup.
+
+## Create a group
+
+To create a group:
+
+1. On the top bar, either:
+ - Select **Main menu > Groups > View all groups**, and on the right, select **New group**.
+ - To the left of the search box, select the plus sign and then **New group**.
+1. Select **Create group**.
+1. Enter a name for the group in **Group name**. For a list of words that cannot be used as group names, see
+ [reserved names](../reserved_names.md).
+1. Enter a path for the group in **Group URL**, which is used for the [namespace](../namespace/index.md).
+1. Choose the [visibility level](../public_access.md).
+1. Personalize your GitLab experience by answering the following questions:
+ - What is your role?
+ - Who is using this group?
+ - What are you using this group for?
+1. Invite GitLab members or other users to join the group.
+
+<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).
+
+## Remove a group
+
+> Enabled delayed deletion by default and removed the option to delete immediately [on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/393622) and [on self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119606) in GitLab 16.0.
+
+To remove a group and its contents:
+
+1. On the top bar, select **Main menu > Groups** and find your group.
+1. On the left sidebar, select **Settings > General**.
+1. Expand the **Advanced** section.
+1. In the **Remove group** section, select **Remove group**.
+1. Type the group name.
+1. Select **Confirm**.
+
+A group can also be removed from the groups dashboard:
+
+1. On the top bar, select **Main menu > Groups > View all groups**.
+1. Select **Your Groups**.
+1. Select (**{ellipsis_v}**) for the group you want to delete.
+1. Select **Delete**.
+1. In the Remove group section, select **Remove group**.
+1. Type the group name.
+1. Select **Confirm**.
+
+This action removes the group. It also adds a background job to delete all projects in the group.
+
+In [GitLab 12.8 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/33257), on GitLab [Premium](https://about.gitlab.com/pricing/premium/) and [Ultimate](https://about.gitlab.com/pricing/ultimate/), this action adds a background job to mark a group for deletion. By default, the job schedules the deletion seven days in the future. You can modify this retention period through the [instance settings](../admin_area/settings/visibility_and_access_controls.md#deletion-protection).
+
+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.
+
+## Remove a group immediately **(PREMIUM)**
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/336985) in GitLab 14.2.
+> - Enabled delayed deletion by default and removed the option to delete immediately [on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/393622) and [on self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119606) in GitLab 16.0.
+
+If you don't want to wait, you can remove a group immediately.
+
+Prerequisites:
+
+- You must have the Owner role for a group.
+- You have [marked the group for deletion](#remove-a-group).
+
+To immediately remove a group marked for deletion:
+
+1. On the top bar, select **Main menu > Groups** and find your group.
+1. On the left sidebar, select **Settings > General**.
+1. Expand **Advanced**.
+1. In the "Permanently remove group" section, select **Remove group**.
+1. Confirm the action when asked to.
+
+Your group, its subgroups, projects, and all related resources, including issues and merge requests,
+are deleted.
+
+## 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. On the top bar, select **Main menu > Groups** and find your group.
+1. Select **Settings > General**.
+1. Expand the **Path, transfer, remove** section.
+1. In the Restore group section, select **Restore group**.
+
+## Request access to a group
+
+As a user, you can request to be a member of a group, if an administrator allows it.
+
+1. On the top bar, select **Main menu > Groups** and find your group.
+1. Under the group name, select **Request Access**.
+
+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.
+
+If you change your mind before your request is approved, select
+**Withdraw Access Request**.
+
+## Filter and sort members in a group
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/21727) in GitLab 12.6.
+> - [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.
+
+To find members in a group, you can sort, filter, or search.
+
+### Filter a group
+
+Filter a group to find members. By default, all members in the group and subgroups are displayed.
+
+In lists of group members, entries can display the following badges:
+
+- **SAML**, to indicate the member has a [SAML account](saml_sso/index.md) connected to them.
+- **Enterprise**, to indicate that the member is an [enterprise user](../enterprise_user/index.md).
+
+1. On the top bar, select **Main menu > Groups** and find your group.
+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**.
+ - [In GitLab 14.0 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/349887), to view GitLab users created by [SAML SSO](saml_sso/index.md) or [SCIM provisioning](saml_sso/scim_setup.md) select **Enterprise = true**.
+
+### Search a group
+
+You can search for members by name, username, or email.
+
+1. On the top bar, select **Main menu > Groups** and find your group.
+1. On the left sidebar, select **Group information > 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}**).
+
+### Sort members in a group
+
+You can sort members by **Account**, **Access granted**, **Max role**, or **Last sign-in**.
+
+1. On the top bar, select **Main menu > Groups** and find your group.
+1. On the left sidebar, select **Group information > Members**.
+1. Above the list of members, in the upper-right corner, 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}**).
+
+## Add users to a group
+
+You can give a user access to all projects in a group.
+
+Prerequisite:
+
+- You must have the Owner role.
+
+1. On the top bar, select **Main menu > Groups** and find your group.
+1. On the left sidebar, select **Group information > Members**.
+1. Select **Invite members**.
+1. Fill in the fields.
+ - The role applies to all projects in the group. For more information, see [permissions](../permissions.md).
+ - On the **Access expiration date**, the user can no longer access projects in the group.
+1. Select **Invite**.
+
+Members that are not automatically added are displayed on the **Invited** tab.
+Users can be on this tab because they:
+
+- Have not yet accepted the invitation.
+- Are waiting for [approval from an administrator](../admin_area/moderate_users.md).
+- [Exceed the group user cap](manage.md#user-cap-for-groups).
+
+## Remove a member from the group
+
+Prerequisites:
+
+- You must have the Owner role.
+- 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. On the top bar, select **Main menu > Groups** and find your group.
+1. On the left sidebar, select **Group information > Members**.
+1. Next to the member you want to remove, select **Remove member**.
+1. Optional. On the **Remove member** confirmation box:
+ - To remove direct user membership from subgroups and projects, select the **Also remove direct user membership from subgroups and projects** checkbox.
+ - To unassign the user from linked issues and merge requests, select the **Also unassign this user from linked issues and merge requests** checkbox.
+1. Select **Remove member**.
+
+## Ensure removed users cannot invite themselves back
+
+Malicious users with the Maintainer or Owner role could exploit a race condition that allows
+them to invite themselves back to a group or project that a GitLab administrator has removed them from.
+
+To avoid this problem, GitLab administrators can [ensure removed users cannot invite themselves back](../project/members/index.md#ensure-removed-users-cannot-invite-themselves-back).
+
+## Add projects to a group
+
+There are two different ways to add a new project to a group:
+
+- Select a group, and then select **New project**. You can then continue [creating your project](../../user/project/index.md#create-a-project).
+- While you are creating a project, select a group from the dropdown list.
+
+ ![Select group](img/select_group_dropdown_13_10.png)
+
+### Specify who can add projects to a group
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/2534) in GitLab 10.5.
+> - [Moved](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/25975) from GitLab Premium to GitLab Free in 11.10.
+
+By default, users with at least the Developer role can create projects under a group.
+
+To change this setting for a specific group:
+
+1. On the top bar, select **Main menu > Groups > View all groups**.
+1. Select **Your Groups**.
+1. Find the group and select it.
+1. From the left menu, select **Settings > General**.
+1. Expand the **Permissions and group features** section.
+1. Select the desired option in the **Roles allowed to create projects** dropdown list.
+1. Select **Save changes**.
+
+To change this setting globally, see [Default project creation protection](../admin_area/settings/visibility_and_access_controls.md#define-which-roles-can-create-projects).
diff --git a/doc/user/group/manage.md b/doc/user/group/manage.md
index 2bb57c02f81..3549818e611 100644
--- a/doc/user/group/manage.md
+++ b/doc/user/group/manage.md
@@ -18,236 +18,7 @@ A single top-level group provides insights in your entire organization via a com
[Compliance Report](../compliance/compliance_report/index.md), and
[Value stream analytics](../group/value_stream_analytics/index.md).
-## View groups
-
-To view groups, on the top bar, select **Main menu > Groups > View all groups**.
-
-The **Groups** page shows a list of groups, sorted by last updated date.
-
-- To explore all public groups, select **Explore groups**.
-- To view groups where you have a direct or indirect membership, select **Your groups**. This tab shows groups that you are a member of:
- - Through membership of a subgroup's parent group.
- - Through direct or inherited membership of a project in the group or subgroup.
-
-## Create a group
-
-To create a group:
-
-1. On the top bar, either:
- - Select **Main menu > Groups > View all groups**, and on the right, select **New group**.
- - To the left of the search box, select the plus sign and then **New group**.
-1. Select **Create group**.
-1. Enter a name for the group in **Group name**. For a list of words that cannot be used as group names, see
- [reserved names](../reserved_names.md).
-1. Enter a path for the group in **Group URL**, which is used for the [namespace](../namespace/index.md).
-1. Choose the [visibility level](../public_access.md).
-1. Personalize your GitLab experience by answering the following questions:
- - What is your role?
- - Who is using this group?
- - What are you using this group for?
-1. Invite GitLab members or other users to join the group.
-
-<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).
-
-## Remove a group
-
-> Enabled delayed deletion by default and removed the option to delete immediately [on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/393622) and [on self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119606) in GitLab 16.0.
-
-To remove a group and its contents:
-
-1. On the top bar, select **Main menu > Groups** and find your group.
-1. On the left sidebar, select **Settings > General**.
-1. Expand the **Advanced** section.
-1. In the **Remove group** section, select **Remove group**.
-1. Type the group name.
-1. Select **Confirm**.
-
-A group can also be removed from the groups dashboard:
-
-1. On the top bar, select **Main menu > Groups > View all groups**.
-1. Select **Your Groups**.
-1. Select (**{ellipsis_v}**) for the group you want to delete.
-1. Select **Delete**.
-1. In the Remove group section, select **Remove group**.
-1. Type the group name.
-1. Select **Confirm**.
-
-This action removes the group. It also adds a background job to delete all projects in the group.
-
-In [GitLab 12.8 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/33257), on GitLab [Premium](https://about.gitlab.com/pricing/premium/) and [Ultimate](https://about.gitlab.com/pricing/ultimate/), this action adds a background job to mark a group for deletion. By default, the job schedules the deletion seven days in the future. You can modify this retention period through the [instance settings](../admin_area/settings/visibility_and_access_controls.md#deletion-protection).
-
-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.
-
-## Remove a group immediately **(PREMIUM)**
-
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/336985) in GitLab 14.2.
-> - Enabled delayed deletion by default and removed the option to delete immediately [on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/393622) and [on self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119606) in GitLab 16.0.
-
-If you don't want to wait, you can remove a group immediately.
-
-Prerequisites:
-
-- You must have the Owner role for a group.
-- You have [marked the group for deletion](#remove-a-group).
-
-To immediately remove a group marked for deletion:
-
-1. On the top bar, select **Main menu > Groups** and find your group.
-1. On the left sidebar, select **Settings > General**.
-1. Expand **Advanced**.
-1. In the "Permanently remove group" section, select **Remove group**.
-1. Confirm the action when asked to.
-
-Your group, its subgroups, projects, and all related resources, including issues and merge requests,
-are deleted.
-
-## 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. On the top bar, select **Main menu > Groups** and find your group.
-1. Select **Settings > General**.
-1. Expand the **Path, transfer, remove** section.
-1. In the Restore group section, select **Restore group**.
-
-## Request access to a group
-
-As a user, you can request to be a member of a group, if an administrator allows it.
-
-1. On the top bar, select **Main menu > Groups** and find your group.
-1. Under the group name, select **Request Access**.
-
-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.
-
-If you change your mind before your request is approved, select
-**Withdraw Access Request**.
-
-## Filter and sort members in a group
-
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/21727) in GitLab 12.6.
-> - [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.
-
-To find members in a group, you can sort, filter, or search.
-
-### Filter a group
-
-Filter a group to find members. By default, all members in the group and subgroups are displayed.
-
-In lists of group members, entries can display the following badges:
-
-- **SAML**, to indicate the member has a [SAML account](saml_sso/index.md) connected to them.
-- **Enterprise**, to indicate that the member is an [enterprise user](../enterprise_user/index.md).
-
-1. On the top bar, select **Main menu > Groups** and find your group.
-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**.
- - [In GitLab 14.0 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/349887), to view GitLab users created by [SAML SSO](saml_sso/index.md) or [SCIM provisioning](saml_sso/scim_setup.md) select **Enterprise = true**.
-
-### Search a group
-
-You can search for members by name, username, or email.
-
-1. On the top bar, select **Main menu > Groups** and find your group.
-1. On the left sidebar, select **Group information > 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}**).
-
-### Sort members in a group
-
-You can sort members by **Account**, **Access granted**, **Max role**, or **Last sign-in**.
-
-1. On the top bar, select **Main menu > Groups** and find your group.
-1. On the left sidebar, select **Group information > Members**.
-1. Above the list of members, in the upper-right corner, 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}**).
-
-## Add users to a group
-
-You can give a user access to all projects in a group.
-
-Prerequisite:
-
-- You must have the Owner role.
-
-1. On the top bar, select **Main menu > Groups** and find your group.
-1. On the left sidebar, select **Group information > Members**.
-1. Select **Invite members**.
-1. Fill in the fields.
- - The role applies to all projects in the group. For more information, see [permissions](../permissions.md).
- - On the **Access expiration date**, the user can no longer access projects in the group.
-1. Select **Invite**.
-
-Members that are not automatically added are displayed on the **Invited** tab.
-Users can be on this tab because they:
-
-- Have not yet accepted the invitation.
-- Are waiting for [approval from an administrator](../admin_area/moderate_users.md).
-- [Exceed the group user cap](#user-cap-for-groups).
-
-## Remove a member from the group
-
-Prerequisites:
-
-- You must have the Owner role.
-- 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. On the top bar, select **Main menu > Groups** and find your group.
-1. On the left sidebar, select **Group information > Members**.
-1. Next to the member you want to remove, select **Remove member**.
-1. Optional. On the **Remove member** confirmation box:
- - To remove direct user membership from subgroups and projects, select the **Also remove direct user membership from subgroups and projects** checkbox.
- - To unassign the user from linked issues and merge requests, select the **Also unassign this user from linked issues and merge requests** checkbox.
-1. Select **Remove member**.
-
-## Ensure removed users cannot invite themselves back
-
-Malicious users with the Maintainer or Owner role could exploit a race condition that allows
-them to invite themselves back to a group or project that a GitLab administrator has removed them from.
-
-To avoid this problem, GitLab administrators can [ensure removed users cannot invite themselves back](../project/members/index.md#ensure-removed-users-cannot-invite-themselves-back).
-
-## Add projects to a group
-
-There are two different ways to add a new project to a group:
-
-- Select a group, and then select **New project**. You can then continue [creating your project](../../user/project/index.md#create-a-project).
-- While you are creating a project, select a group from the dropdown list.
-
- ![Select group](img/select_group_dropdown_13_10.png)
-
-### Specify who can add projects to a group
-
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/2534) in GitLab 10.5.
-> - [Moved](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/25975) from GitLab Premium to GitLab Free in 11.10.
-
-By default, users with at least the Developer role can create projects under a group.
-
-To change this setting for a specific group:
-
-1. On the top bar, select **Main menu > Groups > View all groups**.
-1. Select **Your Groups**.
-1. Find the group and select it.
-1. From the left menu, select **Settings > General**.
-1. Expand the **Permissions and group features** section.
-1. Select the desired option in the **Roles allowed to create projects** dropdown list.
-1. Select **Save changes**.
-
-To change this setting globally, see [Default project creation protection](../admin_area/settings/visibility_and_access_controls.md#define-which-roles-can-create-projects).
-
-## Add Group README
+## Add a group README
As a group owner or member, you can use a README to provide more information about your team, and invite users to contribute to your projects.
The README is displayed on the group overview page, and can be changed in the group settings. All group members can edit the README.
@@ -729,100 +500,3 @@ You can view the most recent actions taken in a group, either in your browser or
To view the activity feed in Atom format, select the
**RSS** (**{rss}**) icon.
-
-## Troubleshooting
-
-### Validation errors on namespaces and groups
-
-[GitLab 14.4 and later](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70365) performs
-the following checks when creating or updating namespaces or groups:
-
-- Namespaces must not have parents.
-- Group parents must be groups and not namespaces.
-
-In the unlikely event that you see these errors in your GitLab installation,
-[contact Support](https://about.gitlab.com/support/) so that we can improve this validation.
-
-### Find groups using an SQL query
-
-To find and store an array of groups based on an SQL query in the [rails console](../../administration/operations/rails_console.md):
-
-```ruby
-# Finds groups and subgroups that end with '%oup'
-Group.find_by_sql("SELECT * FROM namespaces WHERE name LIKE '%oup'")
-=> [#<Group id:3 @test-group>, #<Group id:4 @template-group/template-subgroup>]
-```
-
-### Transfer subgroup to another location using Rails console
-
-If transferring a group doesn't work through the UI or API, you may want to attempt the transfer in a [Rails console session](../../administration/operations/rails_console.md#starting-a-rails-console-session):
-
-WARNING:
-Commands that change data can cause damage if not run correctly or under the right conditions. Always run commands in a test environment first and have a backup instance ready to restore.
-
-```ruby
-user = User.find_by_username('<username>')
-group = Group.find_by_name("<group_name>")
-## Set parent_group = nil to make the subgroup a top-level group
-parent_group = Group.find_by(id: "<group_id>")
-service = ::Groups::TransferService.new(group, user)
-service.execute(parent_group)
-```
-
-### Find groups pending deletion using Rails console
-
-If you need to find all the groups that are pending deletion, you can use the following command in a [Rails console session](../../administration/operations/rails_console.md#starting-a-rails-console-session):
-
-```ruby
-Group.all.each do |g|
- if g.marked_for_deletion?
- puts "Group ID: #{g.id}"
- puts "Group name: #{g.name}"
- puts "Group path: #{g.full_path}"
- end
-end
-```
-
-### Delete a group using Rails console
-
-At times, a group deletion may get stuck. If needed, in a [Rails console session](../../administration/operations/rails_console.md#starting-a-rails-console-session),
-you can attempt to delete a group using the following command:
-
-WARNING:
-Commands that change data can cause damage if not run correctly or under the right conditions. Always run commands in a test environment first and have a backup instance ready to restore.
-
-```ruby
-GroupDestroyWorker.new.perform(group_id, user_id)
-```
-
-### Find a user's maximum permissions for a group or project
-
-Administrators can find a user's maximum permissions for a group or project.
-
-1. Start a [Rails console session](../../administration/operations/rails_console.md#starting-a-rails-console-session).
-1. Run the following commands:
-
- ```ruby
- user = User.find_by_username 'username'
- project = Project.find_by_full_path 'group/project'
- user.max_member_access_for_project project.id
- ```
-
- ```ruby
- user = User.find_by_username 'username'
- group = Group.find_by_full_path 'group'
- user.max_member_access_for_group group.id
- ```
-
-### Unable to remove billable members with badge `Project Invite/Group Invite`
-
-```plaintext
-Members who were invited via a group invitation cannot be removed. You can either remove the entire group, or ask an Owner of the invited group to remove the member.
-```
-
-This error typically occurs when the user you're trying to remove is part of an external group that has been [shared with one or more of your projects](../project/members/share_project_with_groups.md) or [groups](#share-a-group-with-another-group). To remove the user as a billable member, follow one of the options:
-
-- Remove the invited group membership from your project or group members page.
-- Recommended. Remove the user directly from the invited group, if you have access to the group.
-
-The feature request to **Update billable_members endpoint to include invited group** is currently being worked on. For more information, see [issue 386583](https://gitlab.com/gitlab-org/gitlab/-/issues/386583)
diff --git a/doc/user/group/subgroups/index.md b/doc/user/group/subgroups/index.md
index 63ffbf62981..4134c541496 100644
--- a/doc/user/group/subgroups/index.md
+++ b/doc/user/group/subgroups/index.md
@@ -184,7 +184,7 @@ In the screenshot above:
- Administrator has the Owner role on group _Four_ and is a member of all subgroups. For that reason, as with User 3,
the **Source** column indicates they are a direct member.
-Members can be [filtered by inherited or direct membership](../manage.md#filter-a-group).
+Members can be [filtered by inherited or direct membership](../index.md#filter-a-group).
### Override ancestor group membership
diff --git a/doc/user/group/troubleshooting.md b/doc/user/group/troubleshooting.md
new file mode 100644
index 00000000000..6de90053c21
--- /dev/null
+++ b/doc/user/group/troubleshooting.md
@@ -0,0 +1,102 @@
+---
+stage: Data Stores
+group: Tenant Scale
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Troubleshooting groups
+
+## Validation errors on namespaces and groups
+
+[GitLab 14.4 and later](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70365) performs
+the following checks when creating or updating namespaces or groups:
+
+- Namespaces must not have parents.
+- Group parents must be groups and not namespaces.
+
+In the unlikely event that you see these errors in your GitLab installation,
+[contact Support](https://about.gitlab.com/support/) so that we can improve this validation.
+
+## Find groups using an SQL query
+
+To find and store an array of groups based on an SQL query in the [rails console](../../administration/operations/rails_console.md):
+
+```ruby
+# Finds groups and subgroups that end with '%oup'
+Group.find_by_sql("SELECT * FROM namespaces WHERE name LIKE '%oup'")
+=> [#<Group id:3 @test-group>, #<Group id:4 @template-group/template-subgroup>]
+```
+
+## Transfer subgroup to another location using Rails console
+
+If transferring a group doesn't work through the UI or API, you may want to attempt the transfer in a [Rails console session](../../administration/operations/rails_console.md#starting-a-rails-console-session):
+
+WARNING:
+Commands that change data can cause damage if not run correctly or under the right conditions. Always run commands in a test environment first and have a backup instance ready to restore.
+
+```ruby
+user = User.find_by_username('<username>')
+group = Group.find_by_name("<group_name>")
+## Set parent_group = nil to make the subgroup a top-level group
+parent_group = Group.find_by(id: "<group_id>")
+service = ::Groups::TransferService.new(group, user)
+service.execute(parent_group)
+```
+
+## Find groups pending deletion using Rails console
+
+If you need to find all the groups that are pending deletion, you can use the following command in a [Rails console session](../../administration/operations/rails_console.md#starting-a-rails-console-session):
+
+```ruby
+Group.all.each do |g|
+ if g.marked_for_deletion?
+ puts "Group ID: #{g.id}"
+ puts "Group name: #{g.name}"
+ puts "Group path: #{g.full_path}"
+ end
+end
+```
+
+## Delete a group using Rails console
+
+At times, a group deletion may get stuck. If needed, in a [Rails console session](../../administration/operations/rails_console.md#starting-a-rails-console-session),
+you can attempt to delete a group using the following command:
+
+WARNING:
+Commands that change data can cause damage if not run correctly or under the right conditions. Always run commands in a test environment first and have a backup instance ready to restore.
+
+```ruby
+GroupDestroyWorker.new.perform(group_id, user_id)
+```
+
+## Find a user's maximum permissions for a group or project
+
+Administrators can find a user's maximum permissions for a group or project.
+
+1. Start a [Rails console session](../../administration/operations/rails_console.md#starting-a-rails-console-session).
+1. Run the following commands:
+
+ ```ruby
+ user = User.find_by_username 'username'
+ project = Project.find_by_full_path 'group/project'
+ user.max_member_access_for_project project.id
+ ```
+
+ ```ruby
+ user = User.find_by_username 'username'
+ group = Group.find_by_full_path 'group'
+ user.max_member_access_for_group group.id
+ ```
+
+## Unable to remove billable members with badge `Project Invite/Group Invite`
+
+```plaintext
+Members who were invited via a group invitation cannot be removed. You can either remove the entire group, or ask an Owner of the invited group to remove the member.
+```
+
+This error typically occurs when the user you're trying to remove is part of an external group that has been [shared with one or more of your projects](../project/members/share_project_with_groups.md) or [groups](manage.md#share-a-group-with-another-group). To remove the user as a billable member, follow one of the options:
+
+- Remove the invited group membership from your project or group members page.
+- Recommended. Remove the user directly from the invited group, if you have access to the group.
+
+The feature request to **Update billable_members endpoint to include invited group** is currently being worked on. For more information, see [issue 386583](https://gitlab.com/gitlab-org/gitlab/-/issues/386583)
diff --git a/doc/user/permissions.md b/doc/user/permissions.md
index 418c01cd851..eaeb2a500c2 100644
--- a/doc/user/permissions.md
+++ b/doc/user/permissions.md
@@ -407,7 +407,7 @@ The following table lists group permissions available for each role:
1. Groups can be set to allow either Owners, or Owners and users with the Maintainer role, to [create subgroups](group/subgroups/index.md#create-a-subgroup).
2. Default project creation role can be changed at:
- The [instance level](admin_area/settings/visibility_and_access_controls.md#define-which-roles-can-create-projects).
- - The [group level](group/manage.md#specify-who-can-add-projects-to-a-group).
+ - The [group level](group/index.md#specify-who-can-add-projects-to-a-group).
3. Does not apply to subgroups.
4. Developers can push commits to the default branch of a new project only if the [default branch protection](group/manage.md#change-the-default-branch-protection-of-a-group) is set to "Partially protected" or "Not protected".
5. In addition, if your group is public or internal, all users who can see the group can also see group wiki pages.
diff --git a/doc/user/project/merge_requests/approvals/rules.md b/doc/user/project/merge_requests/approvals/rules.md
index 3a6ce48d071..23cad67b69c 100644
--- a/doc/user/project/merge_requests/approvals/rules.md
+++ b/doc/user/project/merge_requests/approvals/rules.md
@@ -186,8 +186,8 @@ oversight on proposed work. To enable approval permissions for these users witho
granting them push access:
1. [Create a protected branch](../../protected_branches.md)
-1. [Create a new group](../../../group/manage.md#create-a-group).
-1. [Add the user to the group](../../../group/manage.md#add-users-to-a-group),
+1. [Create a new group](../../../group/index.md#create-a-group).
+1. [Add the user to the group](../../../group/index.md#add-users-to-a-group),
and select the Reporter role for the user.
1. [Share the project with your group](../../members/share_project_with_groups.md#share-a-project-with-a-group),
based on the Reporter role.
@@ -195,7 +195,7 @@ granting them push access:
1. In the **Merge request approvals** section, scroll to **Approval rules**, and either:
- For a new rule, select **Add approval rule** and target the protected branch.
- For an existing rule, select **Edit** and target the protected branch.
-1. [Add the group](../../../group/manage.md#create-a-group) to the permission list.
+1. [Add the group](../../../group/index.md#create-a-group) to the permission list.
![Update approval rule](img/update_approval_rule_v13_10.png)
diff --git a/doc/user/project/settings/index.md b/doc/user/project/settings/index.md
index 551b4fab454..2df86038789 100644
--- a/doc/user/project/settings/index.md
+++ b/doc/user/project/settings/index.md
@@ -249,7 +249,7 @@ When you transfer a project to another namespace, you move the project to a diff
Prerequisites:
-- You must have at least the Maintainer role for the [group](../../group/manage.md#create-a-group) to which you are transferring.
+- You must have at least the Maintainer role for the [group](../../group/index.md#create-a-group) to which you are transferring.
- You must be the Owner of the project you transfer.
- The group must allow creation of new projects.
- The project must not contain any [container images](../../packages/container_registry/index.md#move-or-rename-container-registry-repositories).
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 7041b5a4e9b..5fb7860ebf0 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -1904,6 +1904,9 @@ msgstr ""
msgid "AI|Helpful"
msgstr ""
+msgid "AI|I don't see how I can help. Please give better instructions!"
+msgstr ""
+
msgid "AI|Responses generated by AI"
msgstr ""