MVC: Branch Rules Overview
Released in %15.10: https://about.gitlab.com/releases/2023/03/22/gitlab-15-10-released/#see-all-branch-related-settings-together ### Problem to solve GitLab offers a number of controls that can be implemented as safeguards: - [Protected branches](https://docs.gitlab.com/ee/user/project/protected_branches.html) - [Merge Request approval rules](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) - [CODEOWNERS approvals](https://docs.gitlab.com/ee/user/project/code_owners.html) - [Push rules](https://docs.gitlab.com/ee/user/project/repository/push_rules.html) - [Status Checks](https://docs.gitlab.com/ee/user/project/merge_requests/status_checks.html#external-status-checks) These controls can be put in place to enforce adherence to policies that ensure quality. A recent SUS study and other feedback suggest that users struggle to find the different controls and struggle to understand which settings interact how. [Framework for Source Code Rules](https://gitlab.com/groups/gitlab-org/-/epics/6351) aims at making it easier and more intuitive to administer your Source Code management tool. This MVC is the first iteration of Source Code Rules that makes the different rules _viewable_ in one single place and will organize them on a per-branch basis. Editing is not part of this epic. It is part of the second iteration which is in https://gitlab.com/groups/gitlab-org/-/epics/8075+. ![image](https://gitlab.com/gitlab-org/gitlab/uploads/733b58c9e80c217b53b8c624d978327b/image.png) # Release post _Suggestion: as it is unlikely that we can resolve all child issues within one single release, we should send this post out with the release of https://gitlab.com/gitlab-org/gitlab/-/issues/362217+ which will most like likely be in %15.4. Then when we release https://gitlab.com/gitlab-org/gitlab/-/issues/372362+ we would not release a new post. The next post would only be when we have editing to announce which comes with https://gitlab.com/groups/gitlab-org/-/epics/8075+_ You now find settings for protected branches, merge request approvals, status checks, and vulnerability scan results conveniently in one single place under **Settings > Repository > Branch rules**. Moreover, as the name suggests, they are now viewed through the lens of a branch as they naturally relate to such. While no functionality is changed this significantly improves the discoverability and intelligibility of your settings. Previously, these settings were in far apart places making them hard to understand as we learned from user feedback including a recent SUS study. This is the first iteration of [this work](https://gitlab.com/groups/gitlab-org/-/epics/6351) and allows viewing only. To change the settings you may use the existing settings as you know them. Next, we intend to allow the editing of rules in this single place that organizes the rules by branches. | https://gitlab.com/gitlab-org/gitlab/-/issues/362217+ | https://gitlab.com/gitlab-org/gitlab/-/issues/372362+ (This image is for illustrative purposes only the SSOT can be found in the issue itself.) | | ------ | ------ | | ![image](https://gitlab.com/gitlab-org/gitlab/uploads/733b58c9e80c217b53b8c624d978327b/image.png) | ![image](https://gitlab.com/gitlab-org/gitlab/uploads/33b3d7d437e66eded21b794802d6dd33/image.png) | ### Proposal This Epic describes a reduced MVC for https://gitlab.com/groups/gitlab-org/-/epics/8075+. The MVC is a read-only Overview page for Branch Rules, with a single view of: * Protected branch name, including wildcards * Protected branch settings * Merge request approvals * Status checks Design is being captured in https://gitlab.com/gitlab-org/ux-research/-/issues/2052+ ### Agree to go live on Gitlab.com as part of %"15.10" but keep the feature flag "off" by default for SM customers until %"15.11": - [x] @sean_carroll - [x] @andr3 - [x] @mle - [ ] @igor.drozdov - [ ] @jwoodwardgl - [ ] @nradina - [x] @jerasmus - [x] @a_mcdonald - [x] @aqualls - [x] @tlinz <!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION --> *This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.* <!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION -->
epic