Защита веток
Вы можете создать правило защиты для веток, чтобы обезопасить их от случайного изменения, прямой отправки коммитов или слияния без пройденных проверок и ревью от определенных пользователей или команд.
Настройка параметров защиты веток
При создании правила защиты веток вам будет предложено заполнить форму с ограничениями. Ниже описаны основные параметры и то, как они влияют на работу с репозиторием.
Основные параметры правила
Для точной настройки, категоризации и последующей идентификации правила защиты используются следующие параметры:
- имя правила — понятное название для создаваемого правила безопасности, помогающее быстро сориентироваться в общем списке конфигураций репозитория;
- шаблон имени для защищаемых веток — обязательное поле. Для одного правила может быть задан только один шаблон (например,
masterилиrelease/*). Если требуется защитить несколько разных веток, не подходящих под один общий шаблон, необходимо создать отдельные правила защиты.
Ограничение отправки (Push)
Этот блок позволяет управлять возможностью делать прямые коммиты в защищенную ветку, минуя механизм запросов на слияние, а также гибко настраивать блокировку изменения конкретных файлов.
В блоке доступны следующие настройки:
- запретить полностью — прямая отправка в эту ветку запрещена для всех пользователей. Код можно добавить только через запрос на слияние;
- разрешить только «белому списку» — отправка разрешена только выбранным пользователям и командам;
- запретить изменение файлов — файлы по указанным маскам (через точку с запятой) нельзя изменить прямой отправкой в ветку даже при наличии прав. Изменение таких файлов возможно только через запрос на слияние;
- разрешить изменение файлов (исключения) — файлы по указанным маскам можно изменять напрямую, игнорируя общие ограничения отправки.
Info
Разрешение конфликтов между правилами файлов:
- если отправка в ветку запрещена настройками полностью, но файл указан в исключениях (разрешенных), то его изменение будет разрешено;
- если расширение файла попадает одновременно и под запрет, и под исключение, то приоритет имеет блокировка. Отправка такого файла будет заблокирована.
Ограничение принудительной отправки (Force push)
Этот раздел управляет возможностью перезаписывать историю коммитов в защищенной ветке с помощью принудительной отправки изменений.
В блоке доступны следующие настройки:
- запретить полностью — принудительная отправка в эту ветку запрещена для всех участников;
- разрешить только «белому списку» — принудительная отправка разрешена только выбранным пользователям и командам.
Warning
Опции принудительной отправки (Force push) автоматически блокируются и становятся недоступными для настройки, если в предыдущем блоке включен полный запрет на обычную отправку (Push).
Ограничения запросов на слияние (Pull Requests)
В этом разделе настраиваются правила прохождения обязательного код-ревью. Вы определяете количественные требования к одобрениям и круг лиц, чьи голоса будут иметь решающую силу.
В блоке доступны следующие настройки:
- необходимое количество одобрений — указывает минимальное количество положительных отзывов (одобрений), необходимое для выполнения слияния;
- требовать одобрение от владельцев кода (CODEOWNERS) — при включении опции авторы из файла
CODEOWNERSавтоматически назначаются ревьюерами, и их согласие становится обязательным; - принимать одобрения только от «белого списка» — система будет учитывать решения об одобрении только от выбранных в списке пользователей и команд;
- сбрасывать одобрения при добавлении новых коммитов — система будет автоматически отзывать ранее полученные одобрения, если в запрос отправлены новые изменения.
Ограничения при слиянии (Merge)
Данные параметры определяют финальные блокировки, которые могут запретить слияние ветки, даже если необходимое количество одобрений уже успешно получено.
В блоке доступны следующие настройки:
- разрешить слияние только «белому списку» — выполнять слияние в эту ветку смогут только пользователи или команды, указанные в списке;
- запретить слияние, если запрошены изменения — слияние будет заблокировано, если хотя бы один из участников явно запросил изменения (даже при наличии достаточного числа одобрений от других);
- запретить слияние без одобрения всех назначенных ревьюеров — для слияния необходимо получить одобрение от всех соавторов с правами на запись, которые добавлены в качестве ревьюеров;
- запретить слияние отстающих веток — слияние блокируется, если исходная ветка отстает от целевой. Перед слиянием потребуется выполнить rebase или merge для получения последних актуальных изменений.
Ограничения по проверкам (CI/CD)
Интеграция с автоматическими проверками позволяет блокировать слияние кода, который не прошел обязательные тесты, сборку или линтеры.
Подробная документация по настройке и использованию проверок статуса доступна в разделе Обязательные проверки CI/CD.
Info
Краткая инструкция по включению:
- Убедитесь, что модуль CI/CD включен в настройках вашего репозитория.
- Создайте workflow, который запускается по событию создания запроса на слияние (триггер
pull_request).- В правиле защиты веток активируйте блок Ограничения по проверкам (CI/CD) и укажите точные названия задач, успешное завершение которых является обязательным условием для слияния ветки. Список задач подтянется автоматически после их первого успешного запуска.
Создание правила защиты веток
Для применения настроек защиты к конкретным веткам необходимо создать новое правило в панели управления репозиторием.
Для добавления правила выполните следующие шаги:
- Перейдите на страницу вашего репозитория в GitVerse.
- Откройте вкладку Настройки, затем выберите раздел Ветки.
- В блоке Правила защиты веток нажмите кнопку Добавить правило.
- Заполните форму, указав имя правила, шаблон имени ветки и активировав необходимые ограничения из доступных блоков.
- Нажмите кнопку Сохранить для применения и активации правила.
Копирование правил защиты
Если вам необходимо создать похожее правило для другой ветки, вы можете воспользоваться функцией копирования. Это позволяет переиспользовать уже настроенные сложные конфигурации безопасности.
При копировании все установленные параметры защиты («белые списки», требования к одобрениям, маски файлов) переносятся в новое правило полностью.
Warning
Важное ограничение при копировании: Шаблон имени для защищаемых веток копируется идентично оригиналу. Поскольку система не допускает существования двух правил с одинаковым шаблоном, вам необходимо будет вручную изменить название ветки в форме перед сохранением новой копии.
Редактирование и удаление правил
Вы можете в любой момент изменить политику безопасности или полностью снять ограничения с выбранных веток.
Для редактирования правила:
- Откройте вкладку Настройки → Ветки.
- В списке правил нажмите кнопку Редактировать на нужном пункте.
- Внесите необходимые правки в форму и сохраните изменения.
Для удаления правила:
- Откройте вкладку Настройки → Ветки.
- Нажмите кнопку Удалить рядом с соответствующим правилом защиты.
- Подтвердите удаление в открывшемся модальном окне.