Merge Requests (MR) — запросы на слияние
Ключевой инструмент обеспечения качества кода перед его объединением в основную ветку.
Основные возможности:
- Создание MR после коммита в функциональную ветку.
- Автоматическое сравнение изменений с целевой веткой.
- Встроенные обсуждения и ревью кода.
- Поддержка авто-слияния после успешных проверок (CI/CD, ревью).
- Визуальное отображение конфликтов и средства для их разрешения.
Просмотр изменений (Diff View)
Позволяет визуально сравнивать версии кода.
Поддерживаемые режимы:
- Стандартный diff — отображение изменений по коммитам.
- Side-by-side diff — сравнение строк кода построчно.
- Inline diff — подсветка изменений внутри строк..
Комментарии и обсуждения
Инструменты совместной работы над изменениями в коде.
Возможности:
- Комментирование отдельных строк кода.
- Ведение обсуждений с упоминанием участников.
- Пометка обсуждений как разрешённых (Mark as resolved).
- Автоматическое формирование задач по комментариям.
Уведомления о событиях
Система оповещений о событиях в проекте.
Поддержка:
- Email-уведомлений о новых коммитах, MR и комментариях.
- Интеграция с внешними мессенджерами: Slack, Mattermost, Telegram (настраиваемые уведомления).
Подтверждение Merge Request’ов (Approvals)
Механизм контроля качества через обязательное одобрение MR перед слиянием.
Возможности:
- Настройка минимального числа одобрений.
- Назначение обязательных ревьюеров.
- Поддержка auto-approval по заданным условиям.
- Блокировка слияния при отсутствии требуемых подтверждений.
- Интеграция с механизмом Codeowners для обязательного ревью владельцами кода.
- Автоматический сброс подтверждений при изменении содержимого MR.
- Логирование всех действий, связанных с процессом одобрения.
Codeowners
Механизм назначения ответственных за участки кодовой базы.
Функциональность:
- Определение владельцев для файлов и директорий проекта.
- Использование файла CODEOWNERS для описания ответственности.
- Автоматическое назначение владельцев в ревьюеры для MR.
- Интеграция с системой Approvals: владельцы становятся обязательными ревьюерами.
- Поддержка шаблонов путей (
*
,**
) и групп владельцев. - Возможность ограничить изменения в защищённых ветках только для владельцев.