Защита ветки

Вы можете создать правило защиты для ветки, чтобы обезопасить ее от случайного изменения, прямой отправки изменений или слияния без пройденных проверок и ревью от определенных пользователей или команд.

Настройка параметров защиты ветки

При создании правила защиты ветки вам будет предложено заполнить форму с ограничениями. Ниже описаны основные параметры и то, как они влияют на работу с репозиторием.

Шаблоны веток и файлов

Для точной настройки защиты используются шаблоны, которые позволяют ограничить доступ не только к целым веткам, но и к конкретным файлам внутри них:

  • шаблон имени для защищенных веток — обязательное поле. Для одного правила может быть задан только один шаблон (например, master или dev/**). Если требуется защитить несколько разных веток, не подходящих под один шаблон, необходимо создать отдельные правила;
  • шаблоны защищенных файлов — указанные файлы нельзя изменить напрямую, даже если у пользователя есть права на редактирование ветки. Изменение таких файлов возможно только через запрос на слияние;
  • шаблоны незащищенных файлов — указанные файлы можно изменять напрямую, игнорируя общие ограничения отправки.

Info

Разрешение конфликтов между правилами файлов:

  • если отправка в ветку запрещена настройками полностью, но файл указан в незащищенных, то его изменение будет разрешено;
  • если расширение файла попадает одновременно и под защищенные, и под незащищенные шаблоны, то приоритет имеет защита. Отправка такого файла будет заблокирована.

Ограничение отправки

Этот блок позволяет управлять возможностью делать прямые коммиты в защищенную ветку, минуя механизм запросов на слияние:

  • отключить полностью — отправка в эту ветку запрещена для всех пользователей;
  • разрешить определенному списку — отправка изменений в ветку будет разрешена только пользователям или командам из «белого списка».

Утверждения запросов на слияние

В этом разделе настраиваются правила прохождения код-ревью. Здесь вы определяете количественные требования к одобрениям и круг лиц, чьи голоса будут иметь силу для слияния:

  • необходимые одобрения — указывает количество положительных отзывов, которое должен собрать запрос, чтобы слияние стало доступным;
  • запрашивать проверку от владельцев кода — при включении этой опции пользователи из файла CODEOWNERS автоматически назначаются ревьюерами. В этом случае только их голоса будут учитываться при подсчете необходимых одобрений;
  • разрешить определенному списку — в этом «белом списке» указываются пользователи или команды, чьи голоса засчитываются для одобрения. Голоса остальных будут видны, но не повлияют на слияние;
  • отклонить устаревшие согласования — старые одобрения будут автоматически аннулированы, если автор запроса отправит в ветку новые коммиты после получения отзывов.

Ограничение по слиянию

Данные параметры определяют финальные блокировки, которые могут запретить слияние, даже если необходимое количество одобрений уже получено:

  • разрешить определенному списку — ограничивает круг лиц, которые физически имеют право нажать кнопку слияния. Только пользователи или команды из этого списка смогут влить запрос;
  • блокировка слияния по отклоненным отзывам — слияние будет невозможно до тех пор, пока ревьюеры, запросившие изменения, не изменят свой вердикт на одобрение;
  • блокировать слияние при запросах на официальное рассмотрение — запрещает слияние, если на проверку были явно назначены проверяющие (например, через CODEOWNERS или вручную) и их ответ все еще ожидается. Кнопка слияния будет заблокирована до тех пор, пока каждый из назначенных специалистов не оставит свой отзыв;
  • блокировать слияние, если запрос на слияние устарел — слияние будет запрещено, если целевая ветка обновилась и содержит изменения, которых еще нет в ветке запроса.

Создание правила защиты ветки

Для применения настроек защиты к конкретной ветке необходимо создать новое правило в панели управления репозиторием.

  1. Перейдите на страницу вашего репозитория в GitVerse.

  2. Откройте вкладку Настройки, затем выберите раздел Ветки.

  3. В блоке Правила защиты веток нажмите кнопку Добавить правило.

  4. Заполните форму, указав шаблон имени ветки и выбрав необходимые ограничения.

  5. Нажмите кнопку Сохранить для активации правила.

Копирование правила защиты

Если вам необходимо создать похожее правило для другой ветки, вы можете воспользоваться функцией копирования. Это позволяет переиспользовать уже настроенные сложные конфигурации защиты.

При копировании все параметры защиты («белые списки», требования к одобрениям, настройки CI/CD) переносятся в новое правило полностью.

Warning

Важное ограничение при копировании:

  • шаблон имени для защищенных веток копируется идентично оригиналу;
  • поскольку система не допускает существования двух правил с одинаковым шаблоном имени, вам необходимо будет вручную изменить название ветки в форме перед сохранением копии.

Проверка статуса задач

Интеграция с автоматическими проверками позволяет блокировать слияние кода, который не прошел тесты или сборку.

Чтобы включить проверку статуса:

  1. Убедитесь, что CI/CD включен в настройках вашего репозитория.
  2. Настройте выполнение проверок на событие запроса на слияние.
  3. В правиле защиты ветки активируйте блок Проверка статуса и выберите конкретные задачи, выполнение которых является обязательным. Список задач подтянется автоматически после их первого успешного запуска.

Редактирование и удаление правил

Вы можете в любой момент изменить политику безопасности или полностью снять ограничения с ветки.

Для редактирования правила:

  1. Откройте Настройки > Ветки.
  2. В списке правил нажмите Редактировать на нужном пункте.
  3. Внесите правки и сохраните форму.

Для удаления правила:

  1. Откройте Настройки > Ветки.
  2. Нажмите Удалить рядом с соответствующим правилом.
  3. Подтвердите удаление в модальном окне.