Настройка и просмотр конфигураций репозитория доступны в интерфейсе SourceCraft в разделе Настройки репозитория в секции Конфигурации. Подробнее в инструкции Настроить конфигурации репозитория в виде кода.
Политики веток — это набор правил и ограничений, которые применяются к определенным веткам и тегам в репозитории. С помощью политик вы можете контролировать процесс внесения изменений, обеспечивать ревью кода, соблюдать правильность именования и условия создания веток и тегов, а также защищать ветки от случайных коммитов или прямого пуша.
Конфигурация политик задается для конкретного репозитория и хранится в файле .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
Также смотрите пример политики веток в репозитории SourceCraft test-serverless-cube.
Совет
Для групповой фильтрации рекомендуется использовать паттерн **, поскольку простой паттерн * не предусматривает совпадения в выражениях с /.
Чтобы проверить срабатывание политики веток, внесите изменения в файлы в основной ветке, сделайте коммит и попробуйте отправить изменения в удаленный репозиторий:
В результате вы получите ошибку с сообщением Direct push into main branch is forbidden, create PR first.
Настроить автоматическое удаление веток после слияния
Вы можете настроить автоматическое удаление ветки-источника предложения изменений после слияния с целевой веткой. Подробнее в разделе Автоматическое удаление веток после слияния.
В файл .sourcecraft/branches.yaml добавьте секцию pull_request.branch_cleanup и в параметре matches укажите фильтры по путям, которые определяют, для каких веток будет включено автоматическое удаление, например:
Заданное в файле .sourcecraft/branches.yaml поведение можно переопределить для отдельного предложения изменений с помощью опции Удалять ветку-источник после слияния в блоке Настройки слияния. Подробнее на странице Работа с предложениями изменений в SourceCraft.
Включить обход политики веток для администратора репозитория
Важно
Обойти правила политики веток, например чтобы поправить конфигурацию в .sourcecraft/branches.yaml, могут только пользователи с рольюАдминистратор репозитория.