Примечание.
Политики репозитория в настоящее время находятся в public preview и подвергаются изменению. Вы можете иметь до 75 общих политик и наборов правил для каждой организации, а также до 75 общих политик и наборов правил для каждого предприятия.
Чтобы управлять ключевыми событиями в жизненном цикле репозиториев, например, которые могут создавать или удалять репозитории, можно создать политику репозитория. Политика репозитория — это коллекция ограничений, которая обеспечивает гибкий контроль над тем, какие пользователи затронуты и какие репозитории предназначены.
В политике репозитория можно ограничить:
- Какие видимости разрешены для новых репозиториев и изменений видимости.
- Кто может создавать репозитории.
- Кто может удалить репозитории.
- Кто может передавать репозитории из организации.
- Как люди могут называть репозитории.
Совет
Если вы являетесь владельцем предприятия, вы можете создать политику репозитория, которая применяется к нескольким организациям. См . раздел AUTOTITLE.
Примеры
Политику репозитория можно использовать для выполнения таких действий:
- Убедитесь, что все новые репозитории используют определенное соглашение об именовании, например
kebab-case. - Запретить удаление репозитория, за исключением администраторов организации.
- Разрешить создавать общедоступные репозитории только в организации "открытый код" в вашей организации.
- Запретить изменение общедоступных репозиториев на частный, чтобы избежать потенциальной потери метаданных.
Как использовать репозитории?
Мы рекомендуем использовать политики репозитория вместе с настраиваемыми свойствами репозитория. Добавив настраиваемые свойства в репозитории, вы сможете гибко использовать эти репозитории в политике.
Например, можно добавить свойство для пометки репозиториев, содержащих рабочие данные или другие конфиденциальные сведения, а затем запретить любому пользователю делать эти репозитории общедоступными.
Сведения о создании и настройке настраиваемых свойств см. в разделе Управление настраиваемыми свойствами для репозиториев в организации.
В качестве альтернативы пользовательским свойствам можно выбрать из списка репозиториев или использовать fnmatch синтаксис для целевых репозиториев с определенными шаблонами именования.
Взаимодействие с другими политиками
Некоторые из доступных ограничений являются повторяющимися политиками, которые вы могли задать на странице "Привилегии участников" в вашей организации или корпоративных параметрах.
Создание политики репозитория не переопределяет существующие политики прав участника. Вместо этого политики являются аддитивным, поэтому применяется самая ограничивающая версия политики. Это относится как к политикам привилегий участников, так и к другим политикам репозитория, которые люди создали на уровне предприятия или организации.
По сравнению с политиками привилегий участников политики репозитория имеют несколько преимуществ:
- Они предлагают более гибкое назначение организаций и репозиториев.
- Они позволяют предоставить определенным субъектам возможность обойти политики.
Создание политики репозитория
- В правом верхнем углу GitHub, щелкните рисунок профиля, а затем выберите октикона "организация" aria-hidden="true" aria-label="organization" %} Ваши организации.
- Рядом с организацией щелкните Параметры.
- В левой части страницы на боковой панели щелкните Policies.
- В разделе "Политики" щелкните "Репозиторий".
- Щелкните Создать политику.
- Настройте новую политику и нажмите кнопку "Создать". Дополнительные сведения см. в следующих подразделах.
Имя политики
Используйте что-то описательное для обмена данными о назначении политики. Например: Prevent public repos on production.
Состояние принудительного применения
Если вы не хотите, чтобы политика была применена при его создании, установите значение "Отключено". В противном случае задайте значение "Активный".
Список разрешений
Выберите, какие роли могут обойти ограничения в этой политике.
Целевые объекты
Выберите репозитории в организации, к которой применяется политика. Вы можете выбрать все репозитории, выбрать выбор существующих репозиториев или создать динамическое правило по имени или пользовательскому свойству для текущих и будущих репозиториев.
Если задать динамический список по имени, вы добавите один или несколько шаблонов именования с помощью fnmatch синтаксиса.
- Например, строка
*open-sourceбудет соответствовать любому репозиторию с именем, который заканчиваетсяopen-source. Сведения о синтаксисе см. в разделе Создание наборов правил для репозитория. - При необходимости вы можете запретить любому пользователю, находяющемуся за пределами списка разрешений, переименовать выбранные репозитории. Кроме того, можно управлять форматом имен в разделе "Политики".
Политики
Выберите, какие ограничения включены. Если политика активна, ограничения применяются ко всем целевым репозиториям, но их можно обойти пользователями или командами в списке разрешений.
Если выбрана политика "Ограничить имена", необходимо использовать синтаксис регулярного выражения , чтобы задать шаблон, который имена репозитория должны совпадать или не должны совпадать. Например, шаблон для принудительного kebab-case именования будет выглядеть следующим ^([a-z][a-z0-9]*)(-[a-z0-9]+)*$образом.
- Шаблоны поддерживают синтаксис RE2. См. руководство по синтаксису Google.
- Чтобы проверить выражения, щелкните "Тестовый шаблон", а затем введите шаблон и значение теста.
Делегирование обхода политик
Примечание.
Делегированный обход политики репозитория находится в public preview и подлежит изменению.
Делегированный обход для политик репозитория позволяет управлять тем, кто может обходить политики репозитория для удаления репозитория и изменения видимости.
При делегированном обходе администраторы репозитория должны отправить запрос, чтобы изменить видимость репозитория или удалить репозиторий. Запрос отправляется в назначенную группу рецензентов, которые либо утверждают, либо запрещают запрос на обход политик репозитория.
Если запрос на обход политик репозитория утвержден, изменение запроса завершается немедленно. Если запрос отклонен, запрошенное изменение не будет сделано, но может быть запрошено повторно.
Чтобы настроить делегированный обход, владельцы предприятия или владелец организации сначала создайте список обхода. Список обходов включает определенные роли и команды, такие как администраторы команды или репозитория, которые контролируют запросы на обход политик репозитория.
Управление запросами обхода
Управление запросами для обхода правил push-отправки
Примечание.
Делегированный обход политики репозитория находится в public preview и подлежит изменению.
Вы можете просматривать и управлять всеми запросами на обход привилегий на странице "Обход запросов", расположенных в параметрах политики .
Запросы можно фильтровать по утверждающий (член списка обхода), запрашивающий (участник, выполняющий запрос), временный интервал и состояние. Следующие состояния назначаются запросу:
| Состояние | Description |
|---|---|
Cancelled | Запрос был отменен участником. |
Completed | Запрос был утвержден, и фиксации были отправлены в репозиторий. |
Denied | Запрос был рассмотрен и отклонен. |
Expired | Срок действия запроса истек. Запросы действительны в течение 7 дней. |
Open | Запрос еще не был проверен или утвержден, но фиксации не были отправлены в репозиторий. |
Когда участник запрашивает права обхода привилегий для отправки фиксации, содержащей ограниченное содержимое, члены списка обхода получают уведомление по электронной почте, содержащее ссылку на запрос. Затем члены списка обхода должны иметь 7 дней, чтобы проверить и утвердить или запретить запрос до истечения срока действия запроса.
Участник уведомляется о решении по электронной почте и должен принять необходимые меры. Если запрос утвержден, участник может отправить фиксацию, содержащую ограниченное содержимое в репозиторий. Если запрос запрещен, участник должен удалить ограниченное содержимое из фиксации, чтобы успешно отправить фиксацию в репозиторий.