# Merge Requests (MRs) A Merge Request (MR) is [[GitLab]]'s term for proposing code changes and requesting review before merging into a target branch. It is functionally equivalent to [[GitHub]]'s [[Pull Requests (PRs)|Pull Request (PR)]]. The name simply emphasizes the merging action rather than the pulling. MRs integrate tightly with GitLab's built-in [[CI CD pipelines]] (cfr [[Contiunous Integration (CI)]], [[Continuous Delivery (CD)]] & [[Continuous Deployment (CD)]]), allowing automatic testing, security scanning, and deployment previews before code is merged. ## GitLab-Specific Features - **Merge trains**: Queue MRs to merge sequentially after passing CI - **Merge when pipeline succeeds**: Auto-merge after CI passes - **Squash commits**: Combine commits on merge - **Delete source branch**: Clean up after merge - **Approvals**: Require specific reviewers or groups - **Code owners**: Auto-assign reviewers by file path ## Workflow 1. Create a feature branch 2. Push commits to GitLab 3. Open Merge Request against target branch 4. CI/CD pipeline runs automatically 5. Reviewers approve changes 6. Merge (manually or automatically) ## MR vs PR Terminology | GitLab | GitHub | |--------|--------| | Merge Request (MR) | Pull Request (PR) | | Merge | Merge/Squash/Rebase | | Assignee | Assignee | | Reviewer | Reviewer | ## References - https://docs.gitlab.com/ee/user/project/merge_requests/ ## Related - [[Pull Requests (PRs)]] - [[Git]] - [[GitLab]] - [[GitHub]] - [[DevOps]]