Политики веток — это набор правил и ограничений, которые применяются к определенным веткам и тегам в репозитории. С помощью политик вы можете контролировать процесс внесения изменений, обеспечивать ревью кода, соблюдать правильность именования и условия создания веток и тегов, а также защищать ветки от случайных коммитов или прямого пуша.
Конфигурация политик задается для конкретного репозитория и хранится в файле .sourcecraft/branches.yaml. Для всего репозитория действует конфигурация, которая размещена в основной ветке, например master или main. Вы также можете задать конфигурацию на уровне организации SourceCraft.
Общий вид конфигурации политики в .sourcecraft/branches.yaml:
Сформируйте файл конфигурации политики веток .sourcecraft/branches.yaml, например:
branch_protection:policies:## Запрет переписывания истории коммитов, внесения правок без ## предложения изменений, а также удаления основной ветки-target:default_branchmessage:"Direct push into main branch is forbidden, create PR first"rules:-prevent_force_push-prevent_non_pr_changes-prevent_deletion## Запрет создания веток с названиями, соответствующими фильтрам-target:branchmatches: ["**", "!OO-**/**", "!hotfix/**", "!chore/**", "!release/**"]
message:"Please use proper branch naming"rules:-prevent_creation## Запрет создания тегов с названиями, соответствующими фильтрам-target:tagmatches:"gitcore-**"message:"Manual tag creation is forbidden, please use Releaser"rules:-prevent_creation
Чтобы проверить срабатывание политики веток, внесите изменения в файлы в основной ветке, сделайте коммит и попробуйте отправить изменения в удаленный репозиторий:
В результате вы получите ошибку с сообщением Direct push into main branch is forbidden, create PR first.
Включить обход политики веток для администратора репозитория
Важно
Обойти правила политики веток, например чтобы поправить конфигурацию в .sourcecraft/branches.yaml, могут только пользователи с рольюАдминистратор репозитория.