33 KiB
type | stage | group | info |
---|---|---|---|
reference, howto | Manage | Access | To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments |
Groups (FREE)
In GitLab, you can put related projects together in a group.
For example, you might create a group for your company members and a subgroup for each individual team.
You can name the group company-team
, and the subgroups backend-team
, frontend-team
, and production-team
.
Then you can:
- Grant members access to multiple projects at once.
- Add to-do items for all of the group members at once.
- View the issues and merge requests for all projects in the group, together in a single list view.
- Bulk edit issues, epics, and merge requests.
You can also create subgroups.
View groups
To view groups:
- In the top menu, select Groups > Your Groups. All groups you are a member of are displayed.
- To view a list of public groups, select Explore public groups.
You can also view groups by namespace.
Namespaces
In GitLab, a namespace is a unique name and URL for a user, a group, or subgroup.
http://gitlab.example.com/username
http://gitlab.example.com/groupname
http://gitlab.example.com/groupname/subgroup_name
For example, consider a user named Alex:
- Alex creates an account with the username
alex
:https://gitlab.example.com/alex
- Alex creates a group for their team with the group name
alex-team
. The group and its projects are available at:https://gitlab.example.com/alex-team
- Alex creates a subgroup of
alex-team
with the subgroup namemarketing
. The subgroup and its projects are available at:https://gitlab.example.com/alex-team/marketing
Create a group
To create a group:
-
From the top menu, either:
- Select Groups > Your Groups, and on the right, select the New group button.
- To the left of the search box, select the plus sign and then New group.
-
For the Group name, use only:
- Alphanumeric characters
- Emojis
- Underscores
- Dashes, dots, spaces and parenthesis (however, it cannot start with any of these characters)
For a list of words that cannot be used as group names, see reserved names.
-
For the Group URL, which is used for the namespace, use only:
- Alphanumeric characters
- Underscores
- Dashes and dots (it cannot start with dashes or end in a dot)
-
Choose the visibility level.
-
Invite GitLab members or other users to join the group.
For details about groups, watch GitLab Namespaces (users, groups and subgroups).
Add users to a group
You can give a user access to all projects in a group.
- From the top menu, select Groups > Your Groups.
- Find your group and select it.
- From the left sidebar, select Members.
- Fill in the fields.
- The role applies to all projects in the group. Learn more about permissions.
- On the Access expiration date, the user can no longer access projects in the group.
Request access to a group
As a user, you can request to be a member of a group, if an administrator allows it.
- From the top menu, select Groups > Your Groups.
- Find the group and select it.
- 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.
Prevent users from requesting access to a group
As a group owner, you can prevent non-members from requesting access to your group.
- From the top menu, select Groups > Your Groups.
- Find the group and select it.
- From the left menu, select Settings > General.
- Expand the Permissions, LFS, 2FA section.
- Clear the Allow users to request access checkbox.
- Select Save changes.
Change the owner of a group
You can change the owner of a group. Each group must always have at least one member with Owner permission.
- As an administrator:
- Go to the group and from the left menu, select Members.
- Give a different member Owner permissions.
- Refresh the page. You can now remove Owner permissions from the original owner.
- As the current group's owner:
- Go to the group and from the left menu, select Members.
- Give a different member Owner permissions.
- Have the new owner sign in and remove Owner permissions from you.
Remove a member from the group
Prerequisites:
- You must have Owner permissions.
- The member must have direct membership in the group. If membership is inherited from a parent group, then the member can be removed from the parent group only.
To remove a member from a group:
- Go to the group.
- From the left menu, select Members.
- Next to the member you want to remove, select Delete.
- Optional. On the Remove member confirmation box, select the Also unassign this user from related issues and merge requests checkbox.
- Select Remove member.
Filter and sort members in a group
- Introduced in GitLab 12.6.
- Improved in GitLab 13.7.
- Feature flag removed 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.
- Go to the group and select Members.
- 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.
Search a group
You can search for members by name, username, or email.
- Go to the group and select Members.
- Above the list of members, in the Filter members box, enter search criteria.
- 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.
- Go to the group and select Members.
- Above the list of members, on the top right, from the Account list, select the criteria to filter by.
- To switch the sort between ascending and descending, to the right of the Account list, select the arrow ({sort-lowest} or {sort-highest}).
Mention a group in an issue or merge request
When you mention a group in a comment, every member of the group gets a to-do item added to their To-do list.
- Open the MR or issue.
- In a comment, type
@
followed by the user, group, or subgroup namespace. For example,@alex
,@alex-team
, or@alex-team/marketing
. - Select Comment.
A to-do item is created for all the group and subgroup members.
Change the default branch protection of a group
Introduced in GitLab 12.9.
By default, every group inherits the branch protection set at the global level.
To change this setting for a specific group:
- Go to the group's Settings > General page.
- Expand the Permissions, LFS, 2FA section.
- Select the desired option in the Default branch protection dropdown list.
- Click Save changes.
To change this setting globally, see Default branch protection.
NOTE: In GitLab Premium or higher, GitLab administrators can choose to disable group owners from updating the default branch protection.
Add projects to a group
There are two different ways to add a new project to a group:
-
Select a group, and then click New project. You can then continue creating your project.
-
While you are creating a project, select a group namespace you've already created from the dropdown menu.
Specify who can add projects to a group
- Introduced in GitLab Premium 10.5.
- Brought to GitLab Starter in 10.7.
- Moved to GitLab Free in 11.10.
By default, Developers and Maintainers can create projects under a group.
To change this setting for a specific group:
- Go to the group's Settings > General page.
- Expand the Permissions, LFS, 2FA section.
- Select the desired option in the Allowed to create projects dropdown list.
- Click Save changes.
To change this setting globally, see Default project creation protection.
Group activity analytics (PREMIUM)
- Introduced in GitLab Starter 12.10 as a beta feature.
For a group, you can view how many merge requests, issues, and members were created in the last 90 days.
These Group Activity Analytics can be enabled with the group_activity_analytics
feature flag.
View group activity
You can view the most recent actions taken in a group.
- From the top menu, select Groups > Your Groups.
- Find the group and select it.
- From the left menu, select Group overview > Activity.
To view the activity feed in Atom format, select the RSS ({rss}) icon.
Transfer projects into groups
Learn how to transfer a project into a group.
Share a project with a group
You can share your projects with a group and give all group members access to the project at once.
Alternatively, you can lock the sharing with group feature.
Share a group with another group
Introduced in GitLab 12.7.
Similar to how you share a project with a group, you can share a group with another group. Members get direct access to the shared group. This is not valid for inherited members.
To share a given group, for example, Frontend
with another group, for example,
Engineering
:
- Go to the
Frontend
group. - From the left menu, select Members.
- Select the Invite group tab.
- In the Select a group to invite list, select
Engineering
. - For the Max access level, select an access level.
- Select Invite.
All the members of the Engineering
group are added to the Frontend
group.
Manage group memberships via LDAP (PREMIUM SELF)
Group syncing allows LDAP groups to be mapped to GitLab groups. This provides more control over per-group user management. To configure group syncing, edit the group_base
DN ('OU=Global Groups,OU=GitLab INT,DC=GitLab,DC=org'
). This OU contains all groups that will be associated with GitLab groups.
Group links can be created by using either a CN or a filter. To create these group links, go to the group's Settings > LDAP Synchronization page. After configuring the link, it may take more than an hour for the users to sync with the GitLab group.
For more information on the administration of LDAP and group sync, refer to the main LDAP documentation.
NOTE: If an LDAP user is a group member when LDAP Synchronization is added, and they are not part of the LDAP group, they are removed from the group.
Create group links via CN (PREMIUM SELF)
To create group links via CN:
- Select the LDAP Server for the link.
- As the Sync method, select
LDAP Group cn
. - In the LDAP Group cn text input box, begin typing the CN of the group. There is a dropdown menu with matching CNs within the configured
group_base
. Select your CN from this list. - In the LDAP Access section, select the permission level for users synced in this group.
- Select the Add Synchronization button.
Create group links via filter (PREMIUM SELF)
To create group links via filter:
- Select the LDAP Server for the link.
- As the Sync method, select
LDAP user filter
. - Input your filter in the LDAP User filter box. Follow the documentation on user filters.
- In the LDAP Access section, select the permission level for users synced in this group.
- Select the Add Synchronization button.
Override user permissions (PREMIUM SELF)
LDAP user permissions can be manually overridden by an admin user. To override a user's permissions:
- Go to your group's Members page.
- In the row for the user you are editing, select the pencil ({pencil}) icon.
- Select the brown Edit permissions button in the modal.
Now you can edit the user's permissions from the Members page.
Epics (ULTIMATE)
Introduced in GitLab Ultimate 10.2.
Epics let you manage your portfolio of projects more efficiently and with less effort by tracking groups of issues that share a theme, across projects and milestones.
Group wikis (PREMIUM)
- Introduced in GitLab Premium 13.5.
Group wikis work the same way as project wikis, please refer to those docs for details on usage.
Group wikis can be edited by members with Developer permissions and above.
Group wiki repositories can be moved through the Group repository storage moves API.
Group wikis limitations
There are a few limitations compared to project wikis:
- Git LFS is not supported.
- Group wikis are not included in global search and Geo replication.
- Changes to group wikis don't show up in the group's activity feed.
For updates, you can follow:
Group Security Dashboard (ULTIMATE)
Get an overview of the vulnerabilities of all the projects in a group and its subgroups.
Learn more about the Group Security Dashboard.
Insights (ULTIMATE)
Introduced in GitLab Ultimate 12.0.
Configure the Insights that matter for your groups or projects, allowing users to explore data such as:
- Triage hygiene
- Issues created/closed per a given period
- Average time for merge requests to be merged
- Much more
Transfer a group
You can transfer groups in the following ways:
- Transfer a subgroup to a new parent group.
- Convert a top-level group into a subgroup by transferring it to the desired group.
- Convert a subgroup into a top-level group by transferring it out of its current group.
When transferring groups, note:
- Changing a group's parent can have unintended side effects. See Redirects when changing repository paths.
- You can only transfer groups to groups you manage.
- You must update your local repositories to point to the new location.
- If the immediate parent group's visibility is lower than the group's current visibility, visibility levels for subgroups and projects will change to match the new parent group's visibility.
- Only explicit group membership is transferred, not inherited membership. If the group's owners have only inherited membership, this leaves the group without an owner. In this case, the user transferring the group becomes the group's owner.
- Transfers will fail if packages exist in any of the projects within the group, or in any of its subgroups.
Change a group's path
Changing a group's path (group URL) can have unintended side effects. Read how redirects will behave before proceeding.
If you are vacating the path so it can be claimed by another group or user, you may need to rename the group too, since both names and paths must be unique.
To change your group path (group URL):
- Navigate to your group's Settings > General page.
- Expand the Path, transfer, remove section.
- Enter a new name under Change group URL.
- Click Change group URL.
WARNING: It is currently not possible to rename a namespace if it contains a project with Container Registry tags, because the project cannot be moved.
NOTE: If you want to retain ownership over the original namespace and protect the URL redirects, then instead of changing a group's path or renaming a username, you can create a new group and transfer projects to it.
Use a custom name for the initial branch
- Introduced in GitLab 13.6.
By default, when you create a new project in GitLab, the initial branch is called master
.
For groups, a group owner can customize the initial branch name to something
else. This way, every new project created under that group from then on will start from the custom branch name rather than master
. To do so:
- Go to the Group page > Settings > Repository and expand Default initial branch name.
- Change the default initial branch to a custom name of your choice.
- Save Changes.
Remove a group
To remove a group and its contents:
- Navigate to your group's Settings > General page.
- Expand the Path, transfer, remove section.
- In the Remove group section, click the Remove group button.
- Confirm the action when asked to.
This action either:
- Removes the group, and also queues a background job to delete all projects in that group.
- Since GitLab 12.8, on Premium or higher tiers, this action adds a background job to mark a group for deletion. By default, the job schedules the deletion 7 days in the future. You can modify this waiting period through the instance settings.
Since GitLab 13.6, if the user who sets up the deletion leaves or is otherwise removed from the group before the actual deletion happens, the job is cancelled, and the group is no longer scheduled for deletion.
Restore a group (PREMIUM)
Introduced in GitLab 12.8.
To restore a group that is marked for deletion:
- Navigate to your group's Settings > General page.
- Expand the Path, transfer, remove section.
- In the Restore group section, click the Restore group button.
Enforce two-factor authentication for group members
Add a security layer to your group by enforcing two-factor authentication (2FA) for all group members.
Prevent a project from being shared with groups
Prevent projects in a group from sharing a project with another group to enable tighter control over project access.
For example, let's say you have two distinct teams (Group A and Group B) working together in a project, and to inherit the group membership, you share the project between the two groups A and B. Share with group lock prevents any project within the group from being shared with another group, guaranteeing that only the right group members have access to those projects.
To enable this feature, navigate to the group settings page. Select Share with group lock and Save the group.
Prevent members from being added to a group (PREMIUM)
Member lock lets a group owner prevent any new project membership to all of the projects within a group, allowing tighter control over project membership.
For example, if you want to lock the group for an Audit Event, enable Member lock to guarantee that project membership cannot be modified during that audit.
To enable this feature:
- Navigate to the group's Settings > General page.
- Expand the Permissions, LFS, 2FA section, and select Member lock.
- Click Save changes.
This will disable the option for all users who previously had permissions to operate project memberships, so no new users can be added. Furthermore, any request to add a new user to a project through API will not be possible.
Restrict group access by IP address (PREMIUM)
- Introduced in GitLab Ultimate 12.0.
- Moved to GitLab Premium in 13.1.
NOTE: IP Access Restrictions are currently not functioning as expected on GitLab.com. If enabled, users cannot perform Git operations through SSH, or access projects via the UI. Please review the following bug report for more information.
To make sure only people from within your organization can access particular resources, you have the option to restrict access to groups and their underlying subgroups, projects, issues, and so on, by IP address. This can help ensure that particular content doesn't leave the premises, while not blocking off access to the entire instance. IP access restrictions can only be configured at the group level.
Add one or more allowed IP subnets using CIDR notation to the group settings and anyone coming from a different IP address won't be able to access the restricted content.
Restriction currently applies to:
- UI.
- From GitLab 12.3, API access.
- From GitLab 12.4, Git actions via SSH.
To avoid accidental lock-out, admins and group owners are able to access the group regardless of the IP restriction.
To enable this feature:
- Navigate to the group’s Settings > General page.
- Expand the Permissions, LFS, 2FA section, and enter IP address ranges into Allow access to the following IP addresses field.
- Click Save changes.
Restrict group access by domain (PREMIUM)
- Introduced in GitLab Premium 12.2.
- Support for specifying multiple email domains introduced in GitLab 13.1
You can restrict access to groups by allowing only users with email addresses in particular domains to be added to the group.
Add email domains you want to allow and users with emails from different domains won't be allowed to be added to this group.
Some domains cannot be restricted. These are the most popular public email domains, such as:
gmail.com
yahoo.com
hotmail.com
aol.com
msn.com
hotmail.co.uk
hotmail.fr
live.com
outlook.com
icloud.com
To enable this feature:
- Navigate to the group's Settings > General page.
- Expand the Permissions, LFS, 2FA section, and enter the domain names into Restrict membership by email field.
- Click Save changes.
This will enable the domain-checking for all new users added to the group from this moment on.
NOTE: Domain restrictions only apply to groups and do not prevent users from being added as members of projects owned by the restricted group.
Group file templates (PREMIUM)
Group file templates allow you to share a set of templates for common file types with every project in a group. It is analogous to the instance template repository feature, and the selected project should follow the same naming conventions as are documented on that page.
You can only choose projects in the group as the template source. This includes projects shared with the group, but it excludes projects in subgroups or parent groups of the group being configured.
You can configure this feature for both subgroups and immediate parent groups. A project in a subgroup will have access to the templates for that subgroup, as well as any immediate parent groups.
To enable this feature, navigate to the group settings page, expand the Templates section, choose a project to act as the template repository, and Save group.
To learn how to create templates for issues and merge requests, visit Description templates.
Group-level project templates (PREMIUM)
Define project templates at a group level by setting a group as the template source. Learn more about group-level project templates.
Disabling email notifications
Introduced in GitLab 12.2.
You can disable all email notifications related to the group, which includes its subgroups and projects.
To enable this feature:
- Navigate to the group's Settings > General page.
- Expand the Permissions, LFS, 2FA section, and select Disable email notifications.
- Click Save changes.
Disabling group mentions
Introduced in GitLab 12.6.
You can prevent users from being added to a conversation and getting notified when anyone mentions a group in which those users are members.
Groups with disabled mentions are visualized accordingly in the autocompletion dropdown.
This is particularly helpful for groups with a large number of users.
To enable this feature:
- Navigate to the group's Settings > General page.
- Expand the Permissions, LFS, 2FA section, and select Disable group mentions.
- Click Save changes.
Enabling delayed project removal (PREMIUM)
Introduced in GitLab 13.2.
By default, projects within a group are deleted immediately. Optionally, on Premium or higher tiers, you can configure the projects within a group to be deleted after a delayed interval.
During this interval period, the projects will be in a read-only state and can be restored, if required. The interval period defaults to 7 days, and can be modified by an admin in the instance settings.
To enable delayed deletion of projects:
- Navigate to the group's Settings > General page.
- Expand the Permissions, LFS, 2FA section, and check Enable delayed project removal.
- Click Save changes.
NOTE: The group setting for delayed deletion is not inherited by subgroups and has to be individually defined for each group.
Prevent project forking outside group (PREMIUM)
Introduced in GitLab 13.3.
By default, projects within a group can be forked. Optionally, on Premium or higher tiers, you can prevent the projects within a group from being forked outside of the current top-level group.
Previously this setting was available only for groups enforcing group managed account. This setting will be
removed from SAML setting page and migrated to group setting, but in the interim period of changes both of those settings will be taken into consideration, if even one is set to true
then it will be assumed group does not allow forking projects outside.
To enable prevent project forking:
- Navigate to the top-level group's Settings > General page.
- Expand the Permissions, LFS, 2FA section, and check Prevent project forking outside current group.
- Click Save changes.
Advanced settings
- Projects: View all projects within that group, add members to each project, access each project's settings, and remove any project, all from the same screen.
- Webhooks: Configure webhooks for your group.
- Kubernetes cluster integration: Connect your GitLab group with Kubernetes clusters.
- Audit Events: View Audit Events for the group.
- Pipelines quota: Keep track of the pipeline quota for the group.
- Integrations: Configure integrations for your group.
Group push rules (PREMIUM)
- Introduced in GitLab Starter 12.8.
- Feature flag removed in GitLab 13.4.
Group push rules allow group maintainers to set push rules for newly created projects within the specific group.
To configure push rules for a group, navigate to {push-rules} on the group's sidebar.
When set, new subgroups have push rules set for them based on either:
- The closest parent group with push rules defined.
- Push rules set at the instance level, if no parent groups have push rules defined.
Maximum artifacts size (FREE SELF)
For information about setting a maximum artifact size for a group, see Maximum artifacts size.
User contribution analysis (PREMIUM)
With GitLab Contribution Analytics, you have an overview of the contributions (pushes, merge requests, and issues) performed by your group members.
Issue analytics (PREMIUM)
With GitLab Issue Analytics, you can see a bar chart of the number of issues created each month in your groups.
Repositories analytics (PREMIUM)
- Introduced in GitLab 13.6.
- Feature flag removed in GitLab 13.7.
With GitLab Repositories Analytics, you can view overall activity of all projects with code coverage.
Dependency Proxy
Use GitLab as a dependency proxy for upstream Docker images.
DORA4 analytics overview (ULTIMATE ONLY)
Introduced in GitLab Ultimate 13.9 as a Beta feature.
Group details include the following analytics:
- Deployment Frequency
For more information, see DORA4 Project Analytics API.