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: владельцы становятся обязательными ревьюерами.
  • Поддержка шаблонов путей (*, **) и групп владельцев.
  • Возможность ограничить изменения в защищённых ветках только для владельцев.