Note
Политики репозитория в настоящее время находятся в public preview и подвергаются изменению.
Чтобы управлять ключевыми событиями в жизненном цикле репозиториев, например, которые могут создавать или удалять репозитории, можно создать политику репозитория. Политика репозитория — это коллекция ограничений, которая обеспечивает гибкий контроль над тем, какие пользователи затронуты и какие репозитории предназначены.
В политике репозитория можно ограничить:
- Какие видимости разрешены для новых репозиториев и изменений видимости.
- Кто может создавать репозитории.
- Кто может удалить репозитории.
- Кто может передавать репозитории из организации.
- Как люди могут называть репозитории.
Tip
Если вы являетесь владелец организации, вы можете создать политику репозитория для определенной организации. См . раздел AUTOTITLE.
Примеры
Политику репозитория можно использовать для выполнения таких действий:
- Убедитесь, что все новые репозитории используют определенное соглашение об именовании, например
kebab-case
. - Запретить удаление репозитория, за исключением администраторов организации.
- Разрешить создавать общедоступные репозитории только в организации "открытый код" в вашей организации.
- Запретить изменение общедоступных репозиториев на частный, чтобы избежать потенциальной потери метаданных.
Как использовать репозитории?
Во-первых, вы будете нацелены на организации в вашей организации. Вы можете выбрать все организации, выбрать из списка или создать динамическое правило с помощью fnmatch
синтаксиса. Если вы используете Enterprise Managed Users, вы также можете выбрать целевой объект для всех репозиториев, принадлежащих пользователям в вашей организации.
Затем вы будете целевые репозитории в выбранных организациях. Мы рекомендуем использовать политики репозитория вместе с настраиваемыми свойствами репозитория. Добавив настраиваемые свойства в репозитории, вы сможете гибко использовать эти репозитории в политике.
Например, можно добавить свойство для пометки репозиториев, содержащих рабочие данные или другие конфиденциальные сведения, а затем запретить любому пользователю делать эти репозитории общедоступными.
Сведения о создании и настройке настраиваемых свойств см. в разделе "Управление настраиваемыми свойствами для репозиториев в организации".
Взаимодействие с другими политиками
Некоторые из доступных ограничений являются повторяющимися политиками, которые вы могли задать на странице "Привилегии участников" в вашей организации или корпоративных параметрах.
Создание политики репозитория не переопределяет существующие политики прав участника. Вместо этого политики являются аддитивным, поэтому применяется самая ограничивающая версия политики. Это относится как к политикам привилегий участников, так и к другим политикам репозитория, которые люди создали на уровне предприятия или организации.
По сравнению с политиками привилегий участников политики репозитория имеют несколько преимуществ:
- Они предлагают более гибкое назначение организаций и репозиториев.
- Они позволяют предоставить определенным субъектам возможность обойти политики.
- Они видны владелец организации, поэтому существует больше прозрачности вокруг того, что разрешено.
- Они позволяют целевым репозиториям, принадлежащим Enterprise Managed Users.
Создание политики репозитория
- В правом верхнем углу GitHubщелкните фото профиля.
- В зависимости от среды щелкните "Ваше предприятие **" или выберите **"Предприятия **", а затем выберите **предприятие, которое вы хотите просмотреть.
- В левой части страницы на боковой панели учетной записи предприятия щелкните Политики.
- В разделе "Политики" щелкните "Репозиторий".
- Щелкните Создать политику.
- Настройте новую политику и нажмите кнопку "Создать". Дополнительные сведения см. в следующих подразделах.
Имя политики
Используйте что-то описательное для обмена данными о назначении политики. Владельцы организации могут просматривать политику, поэтому хорошие имена помогают добавить ясность. Например: Prevent public repos on production
.
Состояние принудительного применения
Если вы не хотите, чтобы политика была применена при его создании, установите значение "Отключено". В противном случае задайте значение "Активный".
Список разрешений
Выберите, какие роли и команды могут обойти ограничения в этой политике.
Целевые объекты
Выберите, к каким организациям и репозиториям применяется политика.
Целевые организации
Выберите все организации, выберите выбор существующих организаций или задайте динамический список по имени. Если вы используете Enterprise Managed Users, вы также можете выбрать целевой объект для всех репозиториев, принадлежащих пользователям в вашей организации.
Если задать динамический список, вы добавите один или несколько шаблонов именования с помощью fnmatch
синтаксиса. Например, строка *open-source
будет соответствовать любой организации с именем, который заканчивается open-source
. Сведения о синтаксисе см. в разделе Создание наборов правил для репозитория.
Целевые репозитории
Выберите репозитории (текущие или будущие) для целевых объектов в выбранных организациях. Можно выбрать все репозитории или задать динамический список по пользовательскому свойству.
Политики
Выберите, какие ограничения включены. Если политика активна, ограничения применяются ко всем целевым репозиториям, но их можно обойти пользователями или командами в списке разрешений.
Если выбрана политика "Ограничить имена", необходимо использовать синтаксис регулярного выражения , чтобы задать шаблон, который имена репозитория должны совпадать или не должны совпадать. Например, шаблон для принудительного kebab-case
именования будет выглядеть следующим ^([a-z][a-z0-9]*)(-[a-z0-9]+)*$
образом.
- Шаблоны поддерживают синтаксис RE2. См. руководство по синтаксису Google.
- Чтобы проверить выражения, щелкните "Тестовый шаблон", а затем введите шаблон и значение теста.
Дополнительные материалы
Дополнительные политики для управления репозиториями см. в разделе Применение политик управления репозиториями в организации.