Refactor groups docs
|
@ -50,8 +50,7 @@ Shortcuts to GitLab's most visited docs:
|
|||
- [Fork a project](gitlab-basics/fork-project.md)
|
||||
- [Importing and exporting projects between instances](user/project/settings/import_export.md).
|
||||
- [Project access](public_access/public_access.md): Setting up your project's visibility to public, internal, or private.
|
||||
- [Groups](workflow/groups.md): Organize your projects in groups.
|
||||
- [Create a group](gitlab-basics/create-group.md)
|
||||
- [Groups](user/group/index.md): Organize your projects in groups.
|
||||
- [GitLab Subgroups](user/group/subgroups/index.md)
|
||||
- [Search through GitLab](user/search/index.md): Search for issues, merge requests, projects, groups, todos, and issues in Issue Boards.
|
||||
- [Snippets](user/snippets.md): Snippets allow you to create little bits of code.
|
||||
|
|
|
@ -6,7 +6,7 @@ Step-by-step guides on the basics of working with Git and GitLab.
|
|||
- [Start using Git on the command line](start-using-git.md)
|
||||
- [Create and add your SSH Keys](create-your-ssh-keys.md)
|
||||
- [Create a project](create-project.md)
|
||||
- [Create a group](create-group.md)
|
||||
- [Create a group](../user/group/index.md#create-a-new-group)
|
||||
- [Create a branch](create-branch.md)
|
||||
- [Fork a project](fork-project.md)
|
||||
- [Add a file](add-file.md)
|
||||
|
|
|
@ -1,50 +1,2 @@
|
|||
# How to create a group in GitLab
|
||||
|
||||
Your projects in GitLab can be organized in 2 different ways:
|
||||
under your own namespace for single projects, such as `your-name/project-1` or
|
||||
under groups.
|
||||
|
||||
If you organize your projects under a group, it works like a folder. You can
|
||||
manage your group members' permissions and access to the projects.
|
||||
|
||||
---
|
||||
|
||||
To create a group:
|
||||
|
||||
1. Expand the left sidebar by clicking the three bars at the upper left corner
|
||||
and then navigate to **Groups**.
|
||||
|
||||
![Go to groups](img/create_new_group_sidebar.png)
|
||||
|
||||
1. Once in your groups dashboard, click on **New group**.
|
||||
|
||||
![Create new group information](img/create_new_group_info.png)
|
||||
|
||||
1. Fill out the needed information:
|
||||
|
||||
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 and avatar for your project.
|
||||
1. Choose the [visibility level](../public_access/public_access.md).
|
||||
|
||||
1. Finally, click the **Create group** button.
|
||||
|
||||
## Add a new project to a group
|
||||
|
||||
There are 2 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](create-project.md).
|
||||
|
||||
- While you are [creating a project](create-project.md), select a group namespace
|
||||
you've already created from the dropdown menu.
|
||||
|
||||
![Select group](img/select_group_dropdown.png)
|
||||
This document was moved to [another location](../user/group/index.md#create-a-new-group).
|
||||
|
|
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
BIN
doc/user/group/img/add_new_members.png
Normal file
After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
BIN
doc/user/group/img/group_settings.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
doc/user/group/img/groups.png
Normal file
After Width: | Height: | Size: 198 KiB |
BIN
doc/user/group/img/membership_lock.png
Normal file
After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
BIN
doc/user/group/img/new_group_from_groups.png
Normal file
After Width: | Height: | Size: 95 KiB |
BIN
doc/user/group/img/new_group_from_other_pages.png
Normal file
After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
BIN
doc/user/group/img/share_with_group_lock.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
doc/user/group/img/transfer_project_to_other_group.png
Normal file
After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
208
doc/user/group/index.md
Normal file
|
@ -0,0 +1,208 @@
|
|||
# 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)
|
||||
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:
|
||||
_"`@company-team`, let's do it! `@company-team/backend-team` you're good to go!"_
|
||||
1. When your backend team needs help from frontend, they add a comment:
|
||||
_"`@company-team/frontend-team` could you help us here please?"_
|
||||
1. When the frontend team completes their implementation, they comment:
|
||||
_"`@company-team/backend-team`, it's done! Let's ship it `@company-team/production-team`!"_
|
||||
|
||||
## Namespaces
|
||||
|
||||
In GitLab, a namespace is a unique name to be used as a user name, a group name, or a subgroup name.
|
||||
|
||||
- `http://gitlab.example.com/username`
|
||||
- `http://gitlab.example.com/groupname`
|
||||
- `http://gitlab.example.com/groupname/subgroup_name`
|
||||
|
||||
For example, consider a user called John:
|
||||
|
||||
1. John creates his account on GitLab.com with the username `jonh`;
|
||||
his profile will be accessed under `https://gitlab.example.com/john`
|
||||
1. John creates a group for his team with the groupname `john-team`;
|
||||
his group and its projects will be accessed under `https://gitlab.example.com/john-team`
|
||||
1. John creates a subgroup of `john-team` with the subgroup name `marketing`;
|
||||
his subgroup and its projects will be accessed under `https://gitlab.example.com/john-team/marketing`
|
||||
|
||||
By doing so:
|
||||
|
||||
- Any team member mentions John with `@john`
|
||||
- John mentions everyone from his team with `@john-team`
|
||||
- John mentions only his marketing team with `@john-team/marketing`
|
||||
|
||||
## Create a new group
|
||||
|
||||
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)
|
||||
|
||||
Select the [permission level][permissions] and add the new member. You can also set the expiring
|
||||
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)
|
||||
|
||||
---
|
||||
|
||||
Group owners and masters will be notified of your request and will be able to approve or
|
||||
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)
|
||||
|
||||
## Transfer an existing project into a group
|
||||
|
||||
You can transfer an existing project into a group as long as you have at least **Master** [permissions][permissions] to that group
|
||||
and if you are an **Owner** of the project.
|
||||
|
||||
![Transfer a project to a new namespace](img/transfer_project_to_other_group.png)
|
||||
|
||||
Find this option under your project's settings.
|
||||
|
||||
GitLab administrators can use the admin interface to move any project to any namespace if needed.
|
||||
|
||||
## 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.
|
||||
|
||||
## 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.
|
||||
|
||||
#### Enforce 2FA to group members
|
||||
|
||||
Add a secury layer to your group by
|
||||
[enforcing two-factor authentication (2FA)](../../security/two_factor_authentication.md#enforcing-2fa-for-all-users-in-a-group)
|
||||
to all group members.
|
||||
|
||||
#### Member Lock (EES/EEP)
|
||||
|
||||
Available in [GitLab Enterprise Edition Starter](https://about.gitlab.com/gitlab-ee/),
|
||||
with **Member Lock** it is possible to lock membership in project to the
|
||||
level of members in group.
|
||||
|
||||
Learn more about [Member Lock](https://docs.gitlab.com/ee/user/group/index.html#member-lock-ees-eep).
|
||||
|
||||
#### Share with group lock (EES/EEP)
|
||||
|
||||
In [GitLab Enterprise Edition Starter](https://about.gitlab.com/gitlab-ee/)
|
||||
it is possible to prevent projects in a group from [sharing
|
||||
a project with another group](../../workflow/share_projects_with_other_groups.md).
|
||||
This allows for tighter control over project access.
|
||||
|
||||
Learn more about [Share with group lock](https://docs.gitlab.com/ee/user/group/index.html#share-with-group-lock-ees-eep).
|
||||
|
||||
### 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.
|
||||
- **Webhooks**: configure [webhooks](../project/integrations/webhooks.md)
|
||||
and [push rules](https://docs.gitlab.com/ee/push_rules/push_rules.html#push-rules) to your group (Push Rules is available in [GitLab Enteprise Edition Starter][ee].)
|
||||
- **Audit Events**: view [Audit Events](https://docs.gitlab.com/ee/administration/audit_events.html#audit-events)
|
||||
for the group (GitLab admins only, available in [GitLab Enterprise Edition Starter][ee]).
|
||||
- **Pipelines quota**: keep track of the [pipeline quota](../admin_area/settings/continuous_integration.md) for the group
|
||||
|
||||
[permissions]: ../permissions.md#permissions
|
||||
[ee]: https://about.gitlab.com/products/
|
|
@ -6,7 +6,7 @@
|
|||
- [Description templates](../user/project/description_templates.md)
|
||||
- [Feature branch workflow](workflow.md)
|
||||
- [GitLab Flow](gitlab_flow.md)
|
||||
- [Groups](groups.md)
|
||||
- [Groups](../user/group/index.md)
|
||||
- Issues - The GitLab Issue Tracker is an advanced and complete tool for
|
||||
tracking the evolution of a new idea or the process of solving a problem.
|
||||
- [Confidential issues](../user/project/issues/confidential_issues.md)
|
||||
|
|
|
@ -1,97 +1,2 @@
|
|||
# GitLab Groups
|
||||
|
||||
GitLab groups allow you to group projects into directories and give users access to several projects at once.
|
||||
|
||||
When you create a new project in GitLab, the default namespace for the project is the personal namespace associated with your GitLab user.
|
||||
In this document we will see how to create groups, put projects in groups and manage who can access the projects in a group.
|
||||
|
||||
## Creating groups
|
||||
|
||||
You can create a group by going to the 'Groups' tab of the GitLab dashboard and clicking the 'New group' button.
|
||||
|
||||
![Click the 'New group' button in the 'Groups' tab](groups/new_group_button.png)
|
||||
|
||||
Next, enter the path and name (required) and the optional description and group avatar.
|
||||
|
||||
![Fill in the path for your new group](groups/new_group_form.png)
|
||||
|
||||
When your group has been created you are presented with the group dashboard feed, which will be empty.
|
||||
|
||||
![Group dashboard](groups/group_dashboard.png)
|
||||
|
||||
You can use the 'New project' button to add a project to the new group.
|
||||
|
||||
## Transferring an existing project into a group
|
||||
|
||||
You can transfer an existing project into a group you have at least Master access in from the project settings page.
|
||||
The option to transfer a project is only available if you are the Owner of the project.
|
||||
First scroll down to the 'Dangerous settings' and click 'Show them to me'.
|
||||
Now you can pick any of the groups you have at least Master access in as the new namespace for the group.
|
||||
|
||||
![Transfer a project to a new namespace](groups/transfer_project.png)
|
||||
|
||||
GitLab administrators can use the admin interface to move any project to any namespace if needed.
|
||||
|
||||
## Adding users to a 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.
|
||||
|
||||
Suppose we have a group with two projects.
|
||||
|
||||
![Group with two projects](groups/group_with_two_projects.png)
|
||||
|
||||
On the 'Group Members' page we can now add a new user Barry to the group.
|
||||
|
||||
![Add user Barry to the group](groups/add_member_to_group.png)
|
||||
|
||||
Now because Barry is a 'Developer' member of the 'Open Source' group, he automatically gets 'Developer' access to all projects in the 'Open Source' group.
|
||||
|
||||
![Barry has 'Developer' access to GitLab CI](groups/project_members_via_group.png)
|
||||
|
||||
If necessary, you can increase the access level of an individual user for a specific project, by adding them as a Member to the project.
|
||||
|
||||
![Barry effectively has 'Master' access to GitLab CI now](groups/override_access_level.png)
|
||||
|
||||
## Requesting 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](groups/request_access_button.png)
|
||||
|
||||
---
|
||||
|
||||
Group owners & masters will be notified of your request and will be able to approve or
|
||||
decline it on the members page.
|
||||
|
||||
![Manage access requests](groups/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](groups/withdraw_access_request_button.png)
|
||||
|
||||
## Managing 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](http://docs.gitlab.com/ee/integration/ldap.html) for more information.
|
||||
|
||||
## Allowing only admins to create groups
|
||||
|
||||
By default, any GitLab user can create new groups.
|
||||
This ability can be disabled for individual users from the admin panel.
|
||||
It is also possible to configure GitLab so that new users default to not being able to create groups:
|
||||
|
||||
```
|
||||
# For omnibus-gitlab, put the following in /etc/gitlab/gitlab.rb
|
||||
gitlab_rails['gitlab_default_can_create_group'] = false
|
||||
|
||||
# For installations from source, uncomment the 'default_can_create_group'
|
||||
# line in /home/git/gitlab/config/gitlab.yml
|
||||
```
|
||||
This document was moved to [another location](../user/group/index.md).
|
||||
|
|
Before Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 42 KiB |
|
@ -5,7 +5,7 @@ to a project with a single action.
|
|||
|
||||
## Groups as collections of users
|
||||
|
||||
Groups are used primarily to [create collections of projects](groups.md), but you can also
|
||||
Groups are used primarily to [create collections of projects](../user/group/index.md), but you can also
|
||||
take advantage of the fact that groups define collections of _users_, namely the group
|
||||
members.
|
||||
|
||||
|
|