Source code rules - Define organization
Goal
Determine the direction of how these "rules" should be organized from a conceptual, architectural, and UI perspective.
Decision and outcome
Based on discussions and research it has been determined organizing by branches is the preferred direction. We will use this to dive design decisions moving forward.
Options
- Maintain current structure
- Simplest solution
- Preserves current mental model
- Preservers current engineering effort
- May not meet the goal of improving experience
- Feature additions will continue to require updates for each
- Reorganize but keep "buckets"
- Medium complexity
- Could just reorganize settings layout
- Could look for improved groupings
- Preservers current engineering effort
- May not meet the goal of improving experience
- Feature additions will continue to require updates for each
- Combine into a single set
- Most complex
- Could be UI only
- A more complex system would be to change the backend system to unify how these are implemented
- Would need to change users mental model, but this could be mitigated with filtering/sorting/grouping
- Most flexibility
- An extension of RBAC
- See #342091
- RBAC might need two views one user-focused and one feature focus, this is the feature focus view
- This is a revenue driver so it may be worth giving them a polished experience
Current structure
Feature | Location | Description |
---|---|---|
Approval rules | Settings > General > Merge request approvals | Multiple rules in table format |
Protected branches | Settings > Repository > Protected branches | Multiple rules in table format |
Code owners | Settings > Repository > Protected branches | File-based rules requirement set in protected branches |
Scan Result Security Policies | Security & Compliance > Policies | Rules based shows on merger request approvals |
Push rules | Settings > Repository > Push rules | Options as a settings section |
Roles | Project information > members | Table format can include groups |
Where should these be located in the product
Depending on how these are organized, we also need to consider where in the product they live
- Replace a current settings section
- A new setting sections
- A new settings page
- A view outside of settings
Edited by Mike Nichols