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

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

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

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

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

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

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

Права на **задачи** — те же, что на репозиторий: кто видит репозиторий, видит все его задачи. Отдельно скрыть часть задач внутри одного репозитория нельзя — так же у GitHub. Что может каждая роль — в таблице на странице [участников и ролей репозитория](https://skillok.org/docs/ru/repositories/settings/collaborators).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

---

https://skillok.org/docs/ru/organizations/restricting-access
