Skip to content

Standardize settings inheritance

This work is part of https://gitlab.com/groups/gitlab-org/gitlab-services/-/epics/11

Problem

Settings set at the admin or group level are sometimes shown at the project level. Sometimes the two settings have no bearing on each other. Sometimes settings set at the group level cascade to projects in the group. Sometimes cascading settings are able to be overridden, sometimes they are shown in a locked state.

  • We are visually inconsistent in the way we signal cascading settings
  • When setting something at a parent level, it's not always clear how it will or will not impact children

Goal

Standardize logic and visual treatment of setting inheritance, and document in Pajamas.

Use cases

Case Example
Setting exists at Group and Project level, but have no relationship Deploy tokens
Setting set at Group level and shown at Project level, but not able to be overridden Default branch
Setting set at Group level with option at group level with option to allow overrides Shared runners
Setting set at Group level but can be overridden at project level Integrations
A group of settings set at the Group level, but can be overridden at the Project level Jira integration
Setting set at the project level and shown at the merge request level, but not able to be overridden Squashing commits
Setting selected at a parent level, can not be overridden by a child object Merge request approval settings
Setting set a group level can be overridden at a subgroup level if permitted Delayed project deletion

Audit: how is inheritance communicated?

Parent Child
Screen_Shot_2022-03-18_at_15.21.08 Screen_Shot_2022-03-18_at_15.21.16
Screen_Shot_2022-03-18_at_15.23.03 Screen_Shot_2022-03-18_at_15.23.26
Screen_Shot_2022-03-18_at_15.24.08 Screen_Shot_2022-03-18_at_15.24.11
Screen_Shot_2022-03-18_at_15.24.57 Screen_Shot_2022-03-18_at_15.25.00
Screen_Shot_2022-03-18_at_15.27.04
Screen_Shot_2022-03-22_at_12.31.48 Screen_Shot_2022-03-22_at_12.31.54
Screen_Shot_2022-03-22_at_12.35.31(checkbox is disabled with no explanation)
Screen_Shot_2022-03-22_at_12.59.41 Screen_Shot_2022-03-22_at_13.00.18
Project settings (General > Merge requests):
image
MR form:
image
MR merge widget:
image
Screen_Shot_2022-03-31_at_17.10.30 Screen_Shot_2022-03-31_at_17.10.35
Screen_Shot_2022-03-31_at_17.15.52 Screen_Shot_2022-03-31_at_17.15.55
Screen_Shot_2022-03-31_at_17.13.34 Screen_Shot_2022-03-31_at_17.13.37
Screen_Shot_2022-03-31_at_17.19.06 Screen_Shot_2022-03-31_at_17.19.18
Screen_Shot_2022-03-31_at_17.20.02 nothing
Screen_Shot_2022-03-31_at_17.21.05 Screen_Shot_2022-03-31_at_17.21.09
Screen_Shot_2022-03-31_at_17.23.09
Screen_Shot_2022-03-31_at_17.11.48 nothing
Screen_Shot_2022-03-31_at_17.24.33 Screen_Shot_2022-03-31_at_17.25.03
Screen_Shot_2022-03-31_at_17.25.54 Screen_Shot_2022-03-31_at_17.26.05
Screen_Shot_2022-03-31_at_17.33.20 Screen_Shot_2022-03-31_at_17.33.24
Screen_Shot_2022-03-31_at_17.48.52 Screen_Shot_2022-03-31_at_17.48.52

Design proposals based on audit

  • I am not familiar with these features so I've probably gotten things wrong
  • These designs are rough to get the conversation started
  • Everything is up for debate
Edited by Katie Macoy (on PTO)