Как ограничить доступ участнику

Практикант, подрядчик или новый сотрудник видит только нужные репозитории — как у GitHub, базовым правом «Нет» и командами. Задачи и код при исключении из организации не пропадают.

Кому доступно Владелец организации.

Обновлено Скопировать как Markdown
В этой статье

Как это устроено#

Доступ в организации собирается из трёх источников. Действует самый широкий из них:

  1. Базовое право — что видит любой участник во всех репозиториях организации: нет, чтение, запись или администратор.
  2. Команды — команде выдаётся доступ к отдельным репозиториям с ролью; человек получает его, пока он в команде.
  3. Лично — доступ к одному репозиторию конкретному человеку.

Владельцы организации — администраторы всех её репозиториев всегда.

Права на задачи — те же, что на репозиторий: кто видит репозиторий, видит все его задачи. Отдельно скрыть часть задач внутри одного репозитория нельзя — так же у GitHub. Что может каждая роль — в таблице на странице участников и ролей репозитория.

Пошагово: практикант видит только часть репозиториев#

  1. Закрыть всё по умолчанию. При заведении организации выбери «Участники видят только выданное» или потом: Настройки организации → Права участников → базовое право «Нет». Теперь участник без выдач видит только публичные репозитории.
  2. Завести команду. Вкладка Команды → Новая команда, например «Практиканты».
  3. Выдать команде нужные репозитории. В каждом нужном репозитории: Настройки → Доступ → внизу таблицы выбрать команду и роль.
    • читать код и задачи, заводить и комментировать — Чтение;
    • вести задачи (метки, исполнители, закрытие) без права менять код — Разбор;
    • менять код — Запись.
  4. Пригласить человека в организацию с ролью «Участник» и сразу отметить команду «Практиканты» — при принятии он попадёт в неё.
  5. Проверить. Люди → строка человека → Доступ к репозиториям: нужные репозитории — с ролью команды, остальные приватные — «нет доступа».

Если часть задач должна быть закрыта#

Задачи, которые видят не все, вынеси в отдельный приватный репозиторий — например, компания/internal — и выдай его только нужной команде. Общие задачи останутся в основном репозитории. Это приём GitHub: права живут на уровне репозитория, и так их проще проверить.

Подрядчик, которому нужен один репозиторий#

Не приглашай его в организацию: выдай доступ лично в «Доступе» репозитория. Он станет внешним участником — увидит только этот репозиторий, а организацию и её состав не увидит. Внешние участники перечислены на вкладке Люди.

Когда человек уходит#

Люди → меню участника → Убрать. Сразу пропадает:

  • членство в организации и роли организации;
  • членство во всех её командах;
  • личные выдачи в её репозиториях.

Не пропадает ничего из работы: репозитории принадлежат организации, и все коммиты, файлы, задачи и реплики человека остаются в них с его именем. Даже если позже кто-то удалит его файлы, они останутся в истории коммитов.

Его форки приватных репозиториев организации удаляются — как у GitHub: иначе он унёс бы код со всей историей. Удаление попадает в журнал организации. То же происходит, когда человек теряет доступ к приватному репозиторию иначе — выход из команды, снятие личной выдачи, снятие выдачи команде. Форки публичных репозиториев и его собственные репозитории остаются.

Проверить, что видит участник#

Люди → строка участника → Доступ к репозиториям. Там каждый репозиторий организации, роль человека и откуда она: базовое право, команда, личная выдача, владелец организации. Владелец организации видит эту страницу у любого участника, участник — свою.

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

Сразу при заведении#

При заведении организации есть выбор «Кто что видит»: участники видят все репозитории (базовое право «Чтение») или только выданное (базовое право «Нет»). Если придут практиканты — выбирай второе.

Было полезно?