Перейти к содержанию

Работа с группами

Функционал доступен в 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, так как она является последней группой в иерархии перед проектом.

Просмотр групп пользователя

Пользователь может просматривать группы, в которых состоит.

В списке групп отображаются группы, где пользователь имеет:

  • прямой доступ;
  • унаследованный доступ от родительской группы;
  • доступ через добавленную группу.

Для просмотра группы требуется:

  1. Перейти в раздел групп.
  2. Найти нужную группу в списке.
  3. Открыть страницу группы.

После открытия группы отображается страница с доступными разделами. Набор доступных действий зависит от роли пользователя.

Страница группы

На странице группы доступны следующие разделы:

Раздел Описание
О группе Основная информация о группе
Подгруппы Список подгрупп, созданных внутри группы
Проекты Список проектов, связанных с группой
Участники Пользователи и группы, которым предоставлен доступ
Настройки Параметры группы, доступные пользователям с соответствующими правами

Набор видимых разделов и действий зависит от роли пользователя.

Настройки группы

Раздел Настройки содержит параметры группы.

В настройках доступны следующие разделы:

Раздел настроек Описание
Основное Основные параметры группы
Управление доступом Добавление пользователей и групп, настройка ролей и отзыв доступа
Агенты CI/CD Настройки агентов CI/CD

Основные настройки находятся в верхнеуровневой группе. Если группа входит в иерархию, настройки родительской группы могут влиять на вложенные подгруппы и проекты.

Управление доступом к группе

Управление доступом выполняется в разделе НастройкиУправление доступом.

В разделе Управление доступом доступны следующие действия:

  • добавление пользователя;
  • добавление группы;
  • выбор роли;
  • просмотр пользователей с доступом к группе;
  • просмотр ролей пользователей;
  • отзыв доступа;
  • удаление пользователя из группы.

При добавлении пользователя или группы приглашение не создаётся. Пользователь или группа сразу получают доступ в соответствии с выбранной ролью.

Добавление пользователя

Для предоставления доступа пользователю требуется:

  1. Открыть группу.
  2. Перейти в раздел Настройки.
  3. Открыть раздел Управление доступом.
  4. Выбрать действие Пригласить пользователя.
  5. В поле Пользователь выбрать пользователя.
  6. В поле Выберите роль выбрать роль.
  7. Указать срок действия доступа, если это требуется.
  8. Сохранить изменения.

После добавления пользователь получает доступ к группе в соответствии с выбранной ролью. Приглашение пользователю не отправляется.

Добавление группы

Для предоставления доступа группе требуется:

  1. Открыть группу.
  2. Перейти в раздел Настройки.
  3. Открыть раздел Управление доступом.
  4. Выбрать действие Пригласить группу.
  5. Выбрать группу.
  6. В поле Выберите роль выбрать роль.
  7. Указать срок действия доступа, если это требуется.
  8. Сохранить изменения.

После добавления участники выбранной группы получают доступ к текущей группе в соответствии с назначенной ролью. Приглашение группе не отправляется.

Срок действия доступа

При настройке доступа можно указать дату и время окончания доступа в формате:

дд.мм.гггг, --:--

Если срок действия не указан, доступ действует без заданной даты окончания.

Просмотр пользователей с доступом к группе

В разделе Управление доступом отображается список пользователей, у которых есть доступ к группе.

Также отображается количество пользователей с доступом.

Пример:

Пользователи с доступом к группе: 1

Для каждого пользователя могут отображаться:

Поле Описание
Пользователь Имя пользователя
Имя пользователя Логин пользователя
Доступ получен через Группа, через которую пользователь получил доступ
Роль Роль пользователя в группе

Пример:

Gitflic User
gitflicuser
Доступ получен через:
demo-group
Администратор

Отзыв доступа

Для отзыва доступа требуется:

  1. Открыть группу.
  2. Перейти в раздел Настройки.
  3. Открыть раздел Управление доступом.
  4. Найти пользователя или группу в списке доступа.
  5. Выбрать действие Отозвать доступ.
  6. Подтвердить действие, если система запросит подтверждение.

После отзыва доступа пользователь или группа теряет доступ к группе, если у них нет другого прямого или унаследованного доступа.

Удаление пользователя из группы

Для удаления пользователя из группы используется действие Удалить из группы.

При удалении может быть доступна дополнительная настройка:

Удалить прямое членство пользователя в подгруппах и проектах

Эта настройка используется, если требуется удалить не только членство пользователя в текущей группе, но и его прямое членство в связанных подгруппах и проектах.

Ограничения

  • Функционал групп доступен только в self-hosted версии.
  • Максимальная глубина вложенности подгрупп — 20 уровней.
  • Поддерживаются публичные и приватные группы.
  • URL используется как основной пользовательский адрес группы.
  • Основные настройки находятся в верхнеуровневой группе.
  • Доступ и роль наследуются всеми сущностями ниже по иерархии.
  • При поиске проектов владельцем отображается последняя группа в цепочке.
  • При добавлении пользователя или группы приглашение не создаётся.