Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
4e175ca905
commit
0cfa77ee9a
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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:)
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
## View groups
|
||||
|
||||
- [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).
|
||||
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.
|
||||
|
||||

|
||||
|
||||
### 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).
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||

|
||||
|
||||
### 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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||

|
||||
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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 ""
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue