Team group
- Introduce a new native abstraction, a "team group"
- A team group behaves similarly to a group, except it does not have any projects as part of it. So it doesn't have issues or merge requests.
- A team group also does not have any CI/CD functionality and does not have web hooks.
- A team group is still considered a GitLab group. So it can have super groups and sub groups. It shows up in group navigation UI as normal.
- A team group is thus a full group, with some functionality stripped out, to make it easier for users to understand it to be used as a team, i.e. a collection of users.
- A team group is intended to be used with epics, i.e. https://gitlab.com/gitlab-org/gitlab-ee/issues/3975.
- You can assign a team group to an epic.
- You can assign a capacity to a team group.
- You can also do these things with a full group. But if you are starting out to set up GitLab, you can use team groups instead of full groups, especially if you didn't need the full functionality of groups. So that would make it easier for users to understand what is going on.
- You can promote a team group to a full group if you ever needed to. But you cannot go in the reverse direction. This is to ensure that we don't run into complex scenarios where you used to have project data, and links to project data, and now they are invalid.
- Behind the scenes, a team group is a group. And a team group shows up in lists and navigation where all groups show up. So minimal changes need to be introduced to support team groups from a broader platform perspective.
Edited by Victor Wu
