Merge requests (MR)
A key tool for ensuring code quality before merging changes into the main branch.
Main features:
- Creating an MR after committing to a feature branch.
- Automatic comparison of changes with the target branch.
- Built-in discussions and code review.
- Support for auto-merge after successful checks (CI/CD, review).
- Visual conflict display and tools for resolution.
Diff view
Allows visual comparison between code versions.
Supported modes:
- Standard diff — commit-by-commit comparison.
- Side-by-side diff — line-by-line comparison.
- Inline diff — highlights changes within lines.
Comments and discussions
Tools for collaborative work on code changes.
Features:
- Commenting on specific lines of code.
- Group discussions with user mentions.
- “Mark as resolved” functionality for closing threads.
- Automatic creation based on comments.
Event notifications
Notification system for project events.
Supported notifications:
- Email alerts about new commits, MRs, and comments.
- Integration with external messengers: Slack, Mattermost, Telegram (configurable alerts).
Merge request approvals
A quality control mechanism that enforces required approvals before merging.
Features:
- Configurable minimum number of approvals.
- Assigning required reviewers.
- Support for auto-approval based on conditions.
- Merge blocking if required approvals are missing.
- Integration with the Codeowners mechanism for mandatory review by code owners.
- Automatic reset of approvals on MR changes.
- Logging of all approval-related actions.
Codeowners
A mechanism for assigning responsibility over parts of the codebase.
Functionality:
- Defining owners for specific files and directories.
- Using a
CODEOWNERS
file to declare ownership. - Automatically assigning owners as MR reviewers.
- Integration with the approvals system: owners become mandatory reviewers.
- Support for wildcard path patterns (
*
,**
) and owner groups. - Ability to restrict changes in protected branches to owners only.