Работа с группами
Функционал доступен в Self-hosted версиях.
Что такое группа
Группа — это сущность для объединения пользователей, проектов и подгрупп.
Группы используются для организации работы над связанными проектами и централизованного управления доступом. При наличии доступа к группе пользователь может получить доступ к проектам и подгруппам внутри неё в зависимости от назначенной роли и настроек доступа.
Для чего используются группы
Группы помогают структурировать рабочее пространство и управлять доступом к нескольким проектам из одного места.
Группы используются для следующих задач:
- объединение проектов одного продукта или направления;
- разделение проектов по командам или зонам ответственности;
- управление доступом пользователей к нескольким проектам;
- создание иерархии из групп и подгрупп;
- просмотр связанных проектов и участников в одном разделе.
Иерархия групп и подгрупп
Группы могут быть вложены друг в друга. Такая структура позволяет разделять проекты и участников по продуктам, командам, компонентам или другим рабочим областям.
В иерархии используются следующие сущности:
| Сущность | Описание |
|---|---|
| Группа | Основная сущность для объединения проектов, участников и подгрупп |
| Родительская группа | Группа, внутри которой создана другая группа |
| Подгруппа | Группа, созданная внутри родительской группы |
| Проект | Репозиторий или рабочая область, размещённая внутри группы или подгруппы |
Пример иерархии:
main_group
└── backend
└── module1
└── module2
└── frontend
└── landing
└── project-example
Максимальная глубина вложенности подгрупп — 20 уровней.
Основные настройки находятся в верхнеуровневой группе. При работе с вложенными группами необходимо учитывать, что часть параметров может задаваться на уровне родительской группы и применяться к сущностям ниже по иерархии.
Наследование доступа
В группах поддерживается наследование доступа.
Если пользователь или группа получает доступ к родительской группе, этот доступ распространяется на все сущности ниже по иерархии:
- подгруппы;
- проекты внутри группы;
- проекты внутри подгрупп.
Пример:
main_group
└── frontend
└── landing
└── project-example
Если пользователь добавлен в группу main_group, он получает доступ к подгруппам frontend и landing, а также к проектам внутри них.
Наследуется не только сам доступ, но и назначенная роль. Например, если пользователь получил роль Разработчик в родительской группе, эта роль применяется к сущностям ниже, если для них не задано другое правило доступа.
На странице управления доступом может отображаться группа, через которую пользователь получил доступ.
Пример:
| Поле | Значение |
|---|---|
| Пользователь | Gitflic User |
| Имя пользователя | gitflicuser |
| Доступ получен через | main_group |
| Роль | Администратор |
Роли участников группы
Для участников группы используются те же роли, что и для команд.
| Роль | Назначение |
|---|---|
| Гость | Базовый доступ к группе |
| Докладчик | Расширенный доступ для просмотра и участия в обсуждениях |
| Разработчик | Доступ для работы с проектами и разработкой |
| Администратор | Управление группой, участниками и настройками |
Точный набор доступных действий зависит от роли пользователя и настроек конкретной группы или проекта.
Видимость и приватность группы
Для группы можно настроить уровень видимости.
Поддерживаются два уровня видимости:
| Видимость | Описание |
|---|---|
| Публичная | Группа видна всем пользователям сервиса |
| Приватная | Группа доступна только пользователям, которым предоставлен доступ |
Доступ к приватной группе может быть предоставлен:
- через добавление пользователя в группу;
- через добавление группы;
- через наследование роли от родительской группы.
При добавлении пользователя или группы в группу приглашение не отправляется. Это отличается от механизма приглашений в командах и компаниях.
URL группы
URL группы формируется на основе пути группы в иерархии.
Если группа содержит подгруппы, путь каждой подгруппы добавляется в URL после пути родительской группы.
Пример URL подгруппы:
https://example.com/group/main_group/frontend/landing/-/overview
В этом примере:
| Часть URL | Описание |
|---|---|
https://example.com |
Адрес сервиса |
/group |
Раздел групп |
main_group |
Родительская группа |
frontend |
Подгруппа первого уровня |
landing |
Подгруппа второго уровня |
/-/overview |
Страница обзора группы |
URL используется как основной пользовательский адрес группы.
Отображение владельца проекта при поиске
При поиске проектов владельцем проекта отображается последняя группа в цепочке.
Пример:
main_group / frontend / landing / project-example
Для проекта project-example владельцем будет отображаться группа landing, так как она является последней группой в иерархии перед проектом.
Просмотр групп пользователя
Пользователь может просматривать группы, в которых состоит.
В списке групп отображаются группы, где пользователь имеет:
- прямой доступ;
- унаследованный доступ от родительской группы;
- доступ через добавленную группу.
Для просмотра группы требуется:
- Перейти в раздел групп.
- Найти нужную группу в списке.
- Открыть страницу группы.
После открытия группы отображается страница с доступными разделами. Набор доступных действий зависит от роли пользователя.
Страница группы
На странице группы доступны следующие разделы:
| Раздел | Описание |
|---|---|
| О группе | Основная информация о группе |
| Подгруппы | Список подгрупп, созданных внутри группы |
| Проекты | Список проектов, связанных с группой |
| Участники | Пользователи и группы, которым предоставлен доступ |
| Настройки | Параметры группы, доступные пользователям с соответствующими правами |
Набор видимых разделов и действий зависит от роли пользователя.
Настройки группы
Раздел Настройки содержит параметры группы.
В настройках доступны следующие разделы:
| Раздел настроек | Описание |
|---|---|
| Основное | Основные параметры группы |
| Управление доступом | Добавление пользователей и групп, настройка ролей и отзыв доступа |
| Агенты CI/CD | Настройки агентов CI/CD |
Основные настройки находятся в верхнеуровневой группе. Если группа входит в иерархию, настройки родительской группы могут влиять на вложенные подгруппы и проекты.
Управление доступом к группе
Управление доступом выполняется в разделе Настройки → Управление доступом.
В разделе Управление доступом доступны следующие действия:
- добавление пользователя;
- добавление группы;
- выбор роли;
- просмотр пользователей с доступом к группе;
- просмотр ролей пользователей;
- отзыв доступа;
- удаление пользователя из группы.
При добавлении пользователя или группы приглашение не создаётся. Пользователь или группа сразу получают доступ в соответствии с выбранной ролью.
Добавление пользователя
Для предоставления доступа пользователю требуется:
- Открыть группу.
- Перейти в раздел Настройки.
- Открыть раздел Управление доступом.
- Выбрать действие Пригласить пользователя.
- В поле Пользователь выбрать пользователя.
- В поле Выберите роль выбрать роль.
- Указать срок действия доступа, если это требуется.
- Сохранить изменения.
После добавления пользователь получает доступ к группе в соответствии с выбранной ролью. Приглашение пользователю не отправляется.
Добавление группы
Для предоставления доступа группе требуется:
- Открыть группу.
- Перейти в раздел Настройки.
- Открыть раздел Управление доступом.
- Выбрать действие Пригласить группу.
- Выбрать группу.
- В поле Выберите роль выбрать роль.
- Указать срок действия доступа, если это требуется.
- Сохранить изменения.
После добавления участники выбранной группы получают доступ к текущей группе в соответствии с назначенной ролью. Приглашение группе не отправляется.
Срок действия доступа
При настройке доступа можно указать дату и время окончания доступа в формате:
дд.мм.гггг, --:--
Если срок действия не указан, доступ действует без заданной даты окончания.
Просмотр пользователей с доступом к группе
В разделе Управление доступом отображается список пользователей, у которых есть доступ к группе.
Также отображается количество пользователей с доступом.
Пример:
Пользователи с доступом к группе: 1
Для каждого пользователя могут отображаться:
| Поле | Описание |
|---|---|
| Пользователь | Имя пользователя |
| Имя пользователя | Логин пользователя |
| Доступ получен через | Группа, через которую пользователь получил доступ |
| Роль | Роль пользователя в группе |
Пример:
Gitflic User
gitflicuser
Доступ получен через:
demo-group
Администратор
Отзыв доступа
Для отзыва доступа требуется:
- Открыть группу.
- Перейти в раздел Настройки.
- Открыть раздел Управление доступом.
- Найти пользователя или группу в списке доступа.
- Выбрать действие Отозвать доступ.
- Подтвердить действие, если система запросит подтверждение.
После отзыва доступа пользователь или группа теряет доступ к группе, если у них нет другого прямого или унаследованного доступа.
Удаление пользователя из группы
Для удаления пользователя из группы используется действие Удалить из группы.
При удалении может быть доступна дополнительная настройка:
Удалить прямое членство пользователя в подгруппах и проектах
Эта настройка используется, если требуется удалить не только членство пользователя в текущей группе, но и его прямое членство в связанных подгруппах и проектах.
Ограничения
- Функционал групп доступен только в self-hosted версии.
- Максимальная глубина вложенности подгрупп — 20 уровней.
- Поддерживаются публичные и приватные группы.
- URL используется как основной пользовательский адрес группы.
- Основные настройки находятся в верхнеуровневой группе.
- Доступ и роль наследуются всеми сущностями ниже по иерархии.
- При поиске проектов владельцем отображается последняя группа в цепочке.
- При добавлении пользователя или группы приглашение не создаётся.