index.md 11,4 КБ
Newer Older
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Groups

With GitLab Groups you can assemble related projects together
and grant members access to several projects at once.

Groups can also be nested in [subgroups](subgroups/index.md).

Find your groups by expanding the left menu and clicking **Groups**:

![GitLab Groups](img/groups.png)

The Groups page displays all groups you are a member of, how many projects it holds,
how many members it has, the group visibility, and, if you have enough permissions,
a link to the group settings. By clicking the last button you can leave that group.

## Use cases

You can create groups for numerous reasons. To name a few:

- Organize related projects under the same [namespace](#namespaces), add members to that
group and grant access to all their projects at once
- Create a group, include members of your team, and make it easier to
`@mention` all the team at once in issues and merge requests
  - Create a group for your company members, and create [subgroups](subgroups/index.md)
Brett Walker's avatar
Brett Walker включено в состав коммита
25
26
27
28
    for each individual team. Let's say you create a group called `company-team`, and among others,
    you created subgroups in this group for each individual team `backend-team`,
    `frontend-team`, and `production-team`:
     1. When you start a new implementation from an issue, you add a comment:
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
29
        _"`@company-team`, let's do it! `@company-team/backend-team` you're good to go!"_
Brett Walker's avatar
Brett Walker включено в состав коммита
30
     1. When your backend team needs help from frontend, they add a comment:
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
31
        _"`@company-team/frontend-team` could you help us here please?"_
Brett Walker's avatar
Brett Walker включено в состав коммита
32
     1. When the frontend team completes their implementation, they comment:
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
33
34
35
36
37
38
39
40
41
42
        _"`@company-team/backend-team`, it's done! Let's ship it `@company-team/production-team`!"_

## Namespaces

In GitLab, a namespace is a unique name to be used as a user name, a group name, or a subgroup name.

- `http://gitlab.example.com/username`
- `http://gitlab.example.com/groupname`
- `http://gitlab.example.com/groupname/subgroup_name`

Brendan O'Leary 🐢's avatar
Brendan O'Leary 🐢 включено в состав коммита
43
For example, consider a user named Alex:
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
44

Brendan O'Leary 🐢's avatar
Brendan O'Leary 🐢 включено в состав коммита
45
46
47
48
49
50
1. Alex creates an account on GitLab.com with the username `alex`;
their profile will be accessed under `https://gitlab.example.com/alex`
1. Alex creates a group for their team with the groupname `alex-team`;
the group and its projects will be accessed under `https://gitlab.example.com/alex-team`
1. Alex creates a subgroup of `alex-team` with the subgroup name `marketing`;
this subgroup and its projects will be accessed under `https://gitlab.example.com/alex-team/marketing`
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
51
52
53

By doing so:

Brendan O'Leary 🐢's avatar
Brendan O'Leary 🐢 включено в состав коммита
54
55
56
- Any team member mentions Alex with `@alex`
- Alex mentions everyone from their team with `@alex-team`
- Alex mentions only the marketing team with `@alex-team/marketing`
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
57

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
58
## Issues and merge requests within a group
Victor Wu's avatar
Victor Wu включено в состав коммита
59

Victor Wu's avatar
Wording    
Victor Wu включено в состав коммита
60
Issues and merge requests are part of projects. For a given group, view all the
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
61
62
[issues](../project/issues/index.md#issues-per-group) and [merge requests](../project/merge_requests/index.md#merge-requests-per-group) across all the projects in that group,
together in a single list view.
Victor Wu's avatar
Victor Wu включено в состав коммита
63

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
64
65
## Create a new group

Bob Van Landuyt's avatar
Bob Van Landuyt включено в состав коммита
66
> **Notes:**
Brett Walker's avatar
Brett Walker включено в состав коммита
67
68
> - For a list of words that are not allowed to be used as group names see the
>   [reserved names](../reserved_names.md).
Bob Van Landuyt's avatar
Bob Van Landuyt включено в состав коммита
69

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
You can create a group in GitLab from:

1. The Groups page: expand the left menu, click **Groups**, and click the green button **New group**:

    ![new group from groups page](img/new_group_from_groups.png)

1. Elsewhere: expand the `plus` sign button on the top navbar and choose **New group**:

    ![new group from elsewhere](img/new_group_from_other_pages.png)

Add the following information:

![new group info](img/create_new_group_info.png)

1. Set the **Group path** which will be the **namespace** under which your projects
   will be hosted (path can contain only letters, digits, underscores, dashes
   and dots; it cannot start with dashes or end in dot).
1. The **Group name** will populate with the path. Optionally, you can change
   it. This is the name that will display in the group views.
1. Optionally, you can add a description so that others can briefly understand
   what this group is about.
1. Optionally, choose an avatar for your project.
1. Choose the [visibility level](../../public_access/public_access.md).

## Add users to a group

Add members to a group by navigating to the group's dashboard, and clicking **Members**:

![add members to group](img/add_new_members.png)

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
100
Select the [permission level](../permissions.md#permissions) and add the new member. You can also set the expiring
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
date for that user, from which they will no longer have access to your group.

One of the benefits of putting multiple projects in one group is that you can
give a user to access to all projects in the group with one action.

Consider we have a group with two projects:

- On the **Group Members** page we can now add a new user to the group.
- Now because this user is a **Developer** member of the group, he automatically
gets **Developer** access to **all projects** within that group.

If necessary, you can increase the access level of an individual user for a specific project,
by adding them again as a new member to the project with the new permission levels.

## Request access to a group

As a group owner you can enable or disable non members to request access to
your group. Go to the group settings and click on **Allow users to request access**.

As a user, you can request to be a member of a group. Go to the group you'd
like to be a member of, and click the **Request Access** button on the right
side of your screen.

![Request access button](img/request_access_button.png)

---

Mark Chao's avatar
doc    
Mark Chao включено в состав коммита
128
Group owners and maintainers will be notified of your request and will be able to approve or
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
decline it on the members page.

![Manage access requests](img/access_requests_management.png)

---

If you change your mind before your request is approved, just click the
**Withdraw Access Request** button.

![Withdraw access request button](img/withdraw_access_request_button.png)

## Add projects to a group

There are two different ways to add a new project to a group:

- Select a group and then click on the **New project** button.

    ![New project](img/create_new_project_from_group.png)

    You can then continue on [creating a project](../../gitlab-basics/create-project.md).

- While you are creating a project, select a group namespace
  you've already created from the dropdown menu.

    ![Select group](img/select_group_dropdown.png)

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
155
## Transfer projects into groups
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
156

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
157
Learn how to [transfer a project into a group](../project/index.md#transfer-an-existing-project-into-a-group).
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
158

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
159
160
161
162
163
## Sharing a project with a group

You can [share your projects with a group](../project/members/share_project_with_groups.md)
and give your group members access to the project all at once.

Michael Kozono's avatar
Michael Kozono включено в состав коммита
164
Alternatively, you can [lock the sharing with group feature](#share-with-group-lock).
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
165

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
166
167
168
169
170
## Manage group memberships via LDAP

In GitLab Enterprise Edition it is possible to manage GitLab group memberships using LDAP groups.
See [the GitLab Enterprise Edition documentation](../../integration/ldap.md) for more information.

Mayra Cabrera's avatar
Mayra Cabrera включено в состав коммита
171
172
173
174
175
176
177
178
179
180
181
182
183
184
## Transfer groups to another group

From 10.5 there are two different ways to transfer a group:

- Either by transferring a group into another group (making it a subgroup of that group).
- Or by converting a subgroup into a root group (a group with no parent).

Please make sure to understand that:

- Changing a group's parent can have unintended side effects. See [Redirects when changing repository paths](https://docs.gitlab.com/ce/user/project/index.html#redirects-when-changing-repository-paths)
- You can only transfer the group to a group you manage.
- You will need to update your local repositories to point to the new location.
- If the parent group's visibility is lower than the group current visibility, visibility levels for subgroups and projects will be changed to match the new parent group's visibility.

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
185
186
187
188
189
190
191
192
193
194
195
196
197
## Group settings

Once you have created a group, you can manage its settings by navigating to
the group's dashboard, and clicking **Settings**.

![group settings](img/group_settings.png)

### General settings

Besides giving you the option to edit any settings you've previously
set when [creating the group](#create-a-new-group), you can also
access further configurations for your group.

Michael Kozono's avatar
Michael Kozono включено в состав коммита
198
199
#### Changing a group's path

John Doe's avatar
John Doe включено в состав коммита
200
201
202
203
204
205
206
Changing a group's path can have unintended side effects. Read
[how redirects will behave](../project/index.md#redirects-when-changing-repository-paths)
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 name as well since both names and paths must
be unique.
Michael Kozono's avatar
Michael Kozono включено в состав коммита
207

John Doe's avatar
John Doe включено в состав коммита
208
To change your group path:
Michael Kozono's avatar
Michael Kozono включено в состав коммита
209

John Doe's avatar
John Doe включено в состав коммита
210
211
212
1. Navigate to your group's **Settings > General**.
1. Enter a new name under "Group path".
1. Hit **Save group**.
Michael Kozono's avatar
Michael Kozono включено в состав коммита
213

John Doe's avatar
John Doe включено в состав коммита
214
215
216
217
218
219
220
221
222
CAUTION: **Caution:**
It is currently not possible to rename a namespace if it contains a
project with [Container Registry](../project/container_registry.md) tags,
because the project cannot be moved.

TIP: **TIP:**
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.
Michael Kozono's avatar
Michael Kozono включено в состав коммита
223

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
224
225
#### Enforce 2FA to group members

Michael Kozono's avatar
Michael Kozono включено в состав коммита
226
Add a security layer to your group by
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
227
228
229
[enforcing two-factor authentication (2FA)](../../security/two_factor_authentication.md#enforcing-2fa-for-all-users-in-a-group)
to all group members.

Michael Kozono's avatar
Michael Kozono включено в состав коммита
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
#### Share with group lock

Prevent projects in a group from [sharing
a project with another group](../project/members/share_project_with_groups.md).
This allows for tighter control over project access.

For example, consider you have two distinct teams (Group A and Group B)
working together in a project.
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. By doing so, you
guarantee only the right group members have access to that projects.

To enable this feature, navigate to the group settings page. Select
**Share with group lock** and **Save the group**.

![Checkbox for share with group lock](img/share_with_group_lock.png)

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
248
#### Member Lock **[STARTER]**
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
249
250

With **Member Lock** it is possible to lock membership in project to the
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
251
252
level of members in group.

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
253
Learn more about [Member Lock](https://docs.gitlab.com/ee/user/group/index.html#member-lock).
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
254

Nick Thomas's avatar
Nick Thomas включено в состав коммита
255
256
257
258
259
260
261
#### Group-level file templates **[PREMIUM]**

Group-level file templates allow you to share a set of templates for common file
types with every project in a group.

Learn more about [Group-level file templates](https://docs.gitlab.com/ee/user/group/index.html#group-level-file-templates-premium).

Dennis Tang's avatar
Dennis Tang включено в состав коммита
262
263
264
#### Group-level project templates **[PREMIUM]**

Define project templates at a group-level by setting a group as a template source.
Dennis Tang's avatar
Dennis Tang включено в состав коммита
265
[Learn more about group-level project templates](custom_project_templates.md).
Dennis Tang's avatar
Dennis Tang включено в состав коммита
266

Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
267
268
269
270
### Advanced settings

- **Projects**: view all projects within that group, add members to each project,
access each project's settings, and remove any project from the same screen.
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
271
- **Webhooks**: configure [webhooks](../project/integrations/webhooks.md) to your group.
Thong Kuah's avatar
Thong Kuah включено в состав коммита
272
- **Kubernetes cluster integration**: connect your GitLab group with [Kubernetes clusters](clusters/index.md).
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
273
- **Audit Events**: view [Audit Events](https://docs.gitlab.com/ee/administration/audit_events.html#audit-events)
Marcia Ramos's avatar
Marcia Ramos включено в состав коммита
274
for the group. **[STARTER ONLY]**
Thong Kuah's avatar
Thong Kuah включено в состав коммита
275
- **Pipelines quota**: keep track of the [pipeline quota](../admin_area/settings/continuous_integration.md) for the group.