Введение
Вы можете создавать наборы правил для управления взаимодействием пользователей с кодом в репозиториях в организации. Вы можете:
- Создайте набор правил ветви или тега, чтобы управлять тем, кто может отправлять фиксации в определенную ветвь, как должны быть отформатированы фиксации, или кто может удалить или переименовать тег.
- Создайте набор правил push-уведомлений для блокировки отправки в частный или внутренний репозиторий и всю сеть вилки репозитория. Наборы правил push-уведомлений позволяют блокировать отправки на основе расширений файлов, длины пути к файлам, пути к файлам и папкам и размерам файлов.
Дополнительные сведения см. в разделе Сведения о наборе правил.
Импорт наборов правил
Чтобы импортировать готовый набор правил, созданный GitHub, см. github/ruleset-recipes.
Существующий набор правил можно импортировать с помощью JSON-файла. Это может быть полезно, если вы хотите применить один и тот же набор правил к нескольким репозиториям или организациям. Для получения дополнительной информации см. [AUTOTITLE](/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#using-ruleset-history).
Как определить, где применяется набор правил?
Наборы правил позволяют гибко ориентироваться на организации, репозитории и ветви, в которых необходимо применить правила.
-
Чтобы выбрать все, выбрать из списка, определить динамический шаблон для названий организаций с помощью
fnmatchсинтаксиса или использовать настраиваемые свойства организации для динамического выбора организаций на основе метаданных. Сведения о синтаксисе см. в разделе Создание наборов правил для репозитория. Для получения информации о пользовательских свойствах см. AUTOTITLE. -
Внутри этих организаций можно таргетировать все репозитории или нацелить динамический список по пользовательскому свойству или контексту развертывания.
-
В репозиториях можно использовать определенные ветви или теги: все ветви, ветвь по умолчанию или динамический список с помощью
fnmatchсинтаксиса.
При создании набора правил, предназначенных для ветвей в репозитории, администраторы репозитория больше не могут переименовать ветви или изменить ветвь по умолчанию в целевом репозитории. Они по-прежнему могут создавать и удалять ветви, если у них есть соответствующие разрешения.
Как управлять форматом фиксаций?
В ветвях или наборах правил тегов можно добавить правило, которое ограничивает формат метаданных фиксации, таких как сообщение о фиксации или сообщение электронной почты автора.
Если выбрано значение "Должен соответствовать заданному ограничению шаблона регулярного выражения", можно использовать синтаксис регулярного выражения для определения шаблонов, которые метаданные должны или не должны совпадать. Сведения о синтаксисе и примерах см. в разделе Создание наборов правил для репозитория.
Использование состояний применения набора правил
При создании или изменении набора правил можно использовать состояния принудительного применения, чтобы настроить применение набора правил.
Для набора правил можно выбрать любое из следующих состояний принудительного применения.
- Активный: набор правил будет применяться при создании.
- Оцените: набор правил не будет применяться, но вы сможете отслеживать, какие действия будут или не нарушать правила на странице "Аналитика правил".
- Отключен: набор правил не будет применяться или вычисляется.
Использование режима "Оценка" — отличный вариант для тестирования набора правил, не применяя его. Вы можете использовать страницу "Аналитика правил", чтобы узнать, нарушил ли вклад правило.
Создание набора правил ветви или тега
-
Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
-
В левой части страницы на боковой панели учетной записи предприятия щелкните Policies.
-
В разделе "Политики" нажмите кнопку "Код".
-
Нажмите кнопку "Создать набор правил".
-
Чтобы создать набор правил, предназначенный для ветвей, щелкните новый набор правил ветви. Кроме того, чтобы создать набор правил, предназначенный для тегов, щелкните "Создать набор правил тегов".
-
В поле "Имя набора правил" введите имя набора правил.
-
При необходимости, чтобы изменить состояние принудительного применения по умолчанию, щелкните Отключен и выберите состояние принудительного применения.
Предоставление разрешений обхода для набора правил ветви или тега
Вы можете предоставить определенные роли, команды или приложения обходить разрешения, а также возможность утверждать запросы обхода для набора правил.
Следующие возможности доступны для обхода доступа:
- Корпоративные команды, корпоративные приложения и корпоративные роли (public preview)
- Администраторы репозитория, владелец организации и владельцы предприятий
- Роль обслуживания или записи или ключ развертывания.
- Copilot облачный агент. Дополнительные сведения см. в Copilot облачный агентразделе О облачном агенте GitHub Copilot.
-
Чтобы предоставить разрешения обхода для набора правил, в разделе "Обход списка" нажмите кнопку "Добавить обход".
-
В появившемся модальном диалоговом окне "Добавление обхода" найдите роль, команду или приложение, которое вы хотите предоставить разрешения на обход, а затем выберите роль, команду или приложение из раздела "Предложения" и нажмите кнопку "Добавить выбранный".
-
При необходимости, чтобы предоставить субъекту обход, не позволяя им отправлять непосредственно в репозиторий, справа от "Всегда разрешать", щелкните октикона "kebab-horizontal" aria-label="View logs" %}, а затем нажмите кнопку "Для запросов на вытягивание".
Выбранный субъект теперь необходим для открытия запроса на вытягивание, чтобы внести изменения в репозиторий, создав четкий след их изменений в запросе на вытягивание и журнал аудита. Затем субъект может обойти любые защиты ветви и объединить запрос на вытягивание.
Выбор целевых организаций в вашей организации
Выберите все организации, выберите выбор существующих организаций или задайте динамический список по имени. Если вы используете Enterprise Managed Users, вы также можете выбрать таргет на все репозитории, принадлежащие пользователям вашего предприятия.
Если задать динамический список, вы добавите один или несколько шаблонов именования с помощью fnmatch синтаксиса. Например, строка *open-source будет соответствовать любой организации с именем, который заканчивается open-source. Сведения о синтаксисе см. в разделе Создание наборов правил для репозитория.
Выбор репозиториев для целевого объекта в вашей организации
Внутри выбранных организаций вы можете таргетировать все репозитории или выбрать динамический список на основе фильтра:
- Вы можете фильтровать по пользовательскому свойству. См . раздел AUTOTITLE.
- Если ваша организация добавила записи в linked artifacts page, вы можете нацелиться на репозитории, которые могут быть развернуты (имеют активную запись хранилища) или развернуты (имеют активную запись развертывания). См . раздел AUTOTITLE.
Выбор ветвей или тегов для целевого объекта
Чтобы выбрать целевые ветви или теги, в разделе "Целевые ветви" или "Целевые теги" выберите "Добавить целевой объект", а затем выберите способ включения или исключения ветвей или тегов. Синтаксис можно использовать fnmatch для включения или исключения ветвей или тегов на основе шаблона. Дополнительные сведения см. в разделе "Использование fnmatch синтаксиса".
В один набор правил можно добавить несколько критериев целевого назначения. Например, можно включить ветвь по умолчанию, включить любые ветви, соответствующие шаблону*feature*, а затем исключить ветвь, соответствующую шаблонуnot-a-feature.
Выбор ветвей или защиты тегов
В разделе "Защита ветви" или "Защита тегов" выберите правила, которые необходимо включить в набор правил. При выборе правила вы можете ввести дополнительные параметры для правила. Дополнительные сведения о правилах см. в разделе Доступные правила для наборов правил.
Добавление ограничений метаданных
Ограничения метаданных должны быть направлены на повышение согласованности между фиксациями в репозитории. Они не предназначены для замены таких мер безопасности, как требование проверки кода с помощью запросов на вытягивание.
Примечание.
При слиянии ветви все фиксации в этой ветви должны соответствовать любым требованиям к метаданным для базовая ветвь.
При использовании анкеров конца строки в регулярных выражениях используйте \n?$ вместо $ одиночного использования. Опциональный \n? вариант совпадает с последующей новой строкой, которая может присутствовать в потоках Git push/CLI, при этом работая для коммитов, созданных через веб-интерфейс и API.
-
Чтобы добавить правило для управления метаданными фиксации или именами ветвей, в разделе "Ограничения" при создании или изменении набора правил нажмите кнопку "Ограничить метаданные фиксации" или "Ограничить имена ветвей".
-
Настройте параметры ограничения, а затем нажмите кнопку "Добавить". В один набор правил можно добавить несколько ограничений.
-
Чтобы соответствовать заданному шаблону регулярных выражений, в раскрывающемся списке "Требование" выберите "Должен соответствовать заданному шаблону regex".
Для большинства требований, таких как "Должен начинаться с соответствующего шаблона", вводимый шаблон интерпретируется буквально, и подстановочные знаки не поддерживаются. Например,
*символ представляет только литеральный*символ.Для более сложных шаблонов можно выбрать "Должен соответствовать заданному шаблону regex" или "Не должен соответствовать заданному шаблону regex", а затем использовать синтаксис регулярных выражений для определения соответствующего шаблона. Дополнительные сведения см. в разделе "Сведения о регулярных выражениях для метаданных фиксации
Любой пользователь, просматривающий наборы правил для репозитория, сможет просмотреть предоставленное описание.
-
При необходимости перед принятием набора правил с ограничениями метаданных выберите состояние принудительного применения для набора правил, чтобы проверить последствия любых ограничений метаданных без влияния участников. Дополнительные сведения об ограничениях метаданных см. в разделе Доступные правила для наборов правил.
Завершение набора правил ветви или тега и дальнейшие действия
Чтобы завершить создание набора правил, нажмите кнопку "Создать". Если для набора правил задано значение "Активный", набор правил немедленно вступает в силу.
Вы можете просмотреть аналитические сведения о наборе правил, чтобы узнать, как правила влияют на участников. Если для параметра "Оценка" задано состояние принудительного применения, можно увидеть, какие действия прошли или завершились ошибкой, если набор правил был активным. Дополнительные сведения о аналитике для наборов правил см. в разделе Управление наборами правил для репозитория.
Создание набора правил push-уведомлений
Примечание.
Этот набор правил будет en принудительная отправка ограничения для всей сети вилки репозитория.
Вы можете создать набор правил push-уведомлений для частных или внутренних репозиториев в вашей организации.
- Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
- В левой боковой панели в разделе "Политики" щелкните "Код".
- Нажмите кнопку "Создать набор правил".
- Нажмите кнопку " Создать набор правил push-уведомлений".
- В поле "Имя набора правил" введите имя набора правил.
- При необходимости, чтобы изменить состояние принудительного применения по умолчанию, нажмите кнопку "Отключено " и выберите состояние принудительного применения. Дополнительные сведения о состоянии принудительного применения см. в разделе Сведения о наборе правил
Предоставление разрешений обхода для набора правил push-уведомлений
Примечание.
Обход разрешений для наборов правил push-уведомлений, предназначенных для репозитория, наследуется всей сетью вилки для этого репозитория. Это означает, что единственными пользователями, которые могут обойти этот набор правил для любого репозитория в всей сети вилки этого репозитория, являются пользователи, которые могут обойти этот набор правил в корневом репозитории.
Вы можете предоставить определенные роли, команды или приложения обходить разрешения, а также возможность утверждать запросы обхода для набора правил. Следующие возможности доступны для обхода доступа:
- Корпоративные команды, корпоративные приложения и корпоративные роли (public preview)
- Администраторы репозитория, владелец организации и владельцы предприятий
- Функция поддержания или написания или развертывания ключей
- Copilot облачный агент. Дополнительные сведения см. в Copilot облачный агентразделе О облачном агенте GitHub Copilot.
- Чтобы предоставить разрешения обхода для набора правил, в разделе "Обход списка" нажмите кнопку "Добавить обход".
- В появившемся модальном диалоговом окне "Добавление обхода" найдите роль, команду или приложение, которое вы хотите предоставить разрешения на обход, а затем выберите роль, команду или приложение из раздела "Предложения" и нажмите кнопку "Добавить выбранный".
Выбор целевых организаций в вашей организации
Выберите все организации, выберите выбор существующих организаций или задайте динамический список по имени. Если вы используете Enterprise Managed Users, вы также можете выбрать таргет на все репозитории, принадлежащие пользователям вашего предприятия.
Если задать динамический список, вы добавите один или несколько шаблонов именования с помощью fnmatch синтаксиса. Например, строка *open-source будет соответствовать любой организации с именем, который заканчивается open-source. Сведения о синтаксисе см. в разделе Создание наборов правил для репозитория.
Выбор репозиториев для целевого объекта в вашей организации
В выбранных организациях можно использовать все репозитории или настроить динамический список с помощью настраиваемых свойств. См . раздел AUTOTITLE.
Выбор защиты push-уведомлений
Вы можете блокировать отправки в этот репозиторий и всю сеть вилки этого репозитория на основе расширений файлов, длины пути к файлам, пути к файлам и папкам, а также размеров файлов.
Все настроенные push-защиты блокируют отправки в этом репозитории и вся сеть вилки этого репозитория.
-
В разделе "Защита от отправки" щелкните ограничения, которые вы хотите применить. Затем укажите сведения о выбранном ограничении.
Для ограничений пути к файлу можно использовать частичные или полные пути. Для этого можно использовать
fnmatchсинтаксис. Например, ограничение, предназначенное дляtest/demo/**/*предотвращения отправки в файлы или папки вtest/demo/каталоге. Ограничение, предназначенное дляtest/docs/pushrules.mdпредотвращения отправкиpushrules.mdв файл в каталогеtest/docs/. Дополнительные сведения см. в разделе Создание наборов правил для репозитория.
Завершение набора правил push-уведомлений и дальнейшие действия
Чтобы завершить создание набора правил, нажмите кнопку "Создать". Если для набора правил задано значение "Активный", набор правил немедленно вступает в силу.
Вы можете просмотреть аналитические сведения о наборе правил, чтобы узнать, как правила влияют на участников. Если для параметра "Оценка" задано состояние принудительного применения, можно увидеть, какие действия прошли или завершились ошибкой, если набор правил был активным. Дополнительные сведения о аналитике для наборов правил см. в разделе Управление наборами правил для репозитория.