На уровне всей инсталляции Deckhouse Code настройка уже произведена, однако для включения этого функционала в конкретном проекте требуются дополнительные действия. MRA является дополнительным функционалом, позволяющим:
- Устанавливать правила, по которым запросы на слияние должны проходить одобрение, чтобы быть включенными в ту или иную ветку проекта.
- Функционал CODEOWNERS, позволяющий автоматически определять кто должен одобрить запрос на слияние при изменении конкретных файлов или групп файлов (по типу, по маске и тд).
В инструкцие ниже приведены шаги для реализации простейших правил одобрения запросов на слияние для ветки main
:
- Зайдите в интересующий вас проект.
- Выберите «Настройки» → «Запросы на слияние» в левой навигационной панели. Эти действия доступны либо администратору системы, либо пользователям, имеющим соответствующую роль для изменения настроек конкретного проекта.
-
Отметьте пункт «Все дискуссии должны быть закрыты» в соотвтетсвии с приведенном ниже скриншотом.
- Убедитесь, что аккаунт
deckhouse_sa
имеет доступ к проекту/ руппе с правамиВладелец
. Если нет, следуйте инструкциям из второй секции документа - Создайте файл
approval_rules.yaml
в корне проекта, в основной его ветке (по умолчанию веткаmain
). - Заполните созданный файл.
Пример конфигурации:
policies:
- name: test_policy_group
approvers:
groups:
- test_group
count: 1
includeAuthor: true
- name: test_policy_user
approvers:
users:
- user1
count: 1
includeAuthor: true
rules:
- name: any
policies:
or:
- policy: test_policy_user
- policy: test_policy_group
branches:
- names:
- 'main'
rule: any
В предложенном варианте конфигурации Запрос на слияние в ветку main
будет разрешен только после получения одобрения либо от пользователя user1
, либо от любого члена группа test_group
.