Запросы на слияние – Merge Requests (MRs)

Основной инструмент для контроля качества кода перед объединением изменений в основную ветку.

Функции:

  • Создание Merge Request после коммита в ветку.
  • Автоматическое сравнение изменений с целевой веткой.
  • Встроенный механизм обсуждений и ревью кода.
  • Поддержка автоматического слияния после успешных проверок (CI/CD, ревью).
  • Визуальное отображение конфликтов и помощь в их решении.

Просмотр изменений (Diff View)

Позволяет увидеть разницу между старым и новым кодом.

Виды отображения:

  • Стандартный diff — покоммитное сравнение.
  • Side-by-side diff — построчное сравнение.
  • Inline diff — выделение изменений внутри строк.

Комментарии и обсуждения

Инструменты для совместной работы над кодом.

Функции:

  • Комментирование конкретных строк кода.
  • Групповые обсуждения и упоминания пользователей.
  • Функция “Mark as resolved” для закрытия обсуждений.
  • Автоматические TODO-списки на основе комментариев.

Уведомления о событиях

Система оповещений о ключевых событиях в проекте.

Поддерживаемые уведомления:

  • Email-уведомления о новых коммитах, MR и комментариях.
  • Настраиваемые оповещения в Slack, Mattermost, Telegram.

Merge Request Approvals

Механизм одобрения запросов на слияние для повышения качества кода.

Функции:

  • Задание минимального количества обязательных одобрений.
  • Настройка списка обязательных ревьюеров.
  • Поддержка автоматических правил (auto-approval).
  • Блокировка слияния без требуемых одобрений.
  • Интеграция с Codeowners для обязательного ревью владельцами кода.
  • Автоматический сброс подтверждений при изменениях в MR.
  • Логирование всех действий, связанных с одобрением MR.

Codeowners

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

Функции:

  • Назначение владельцев для определённых файлов в проекте.
  • Использование файла CODEOWNERS для определения владельцев кода.
  • Автоматическое назначение владельцев в рецензенты запросов на слияние.
  • Интеграция с Merge Request Approvals для обеспечения обязательного одобрения владельцами.
  • Поддержка групп владельцев и шаблонов (*, **).
  • Возможность ограничения изменений в защищённых ветках только для владельцев кода.