-
Notifications
You must be signed in to change notification settings - Fork 180
Description
Discussed in #1913
Originally posted by jwikman September 10, 2025
AL-Go supports a very flexible settings hierarchy, where most specific setting is applied. This is very neat when you want to make sure that settings are streamlined within your organization.
But this only works for simple types! If the setting is an array or an object, the settings for each level are instead merged.
The logic for this is found in Actions\.Modules\ReadSettings.psm1 in the MergeCustomObjectIntoOrderedDictionary() function, and it is quite obvious that this is by design:
# If the property exists in the source object:
# If the property is an Object, call this function recursively to merge values
# If the property is an Object[], merge the arrays
# If the property is a simple type, replace the value in the destination object with the value from the source object
We try to put as much settings as possible in OrgSettings, and only use repo or project settings when really needed.
But when we want to set a different setting on repo level for one single repo, and the setting is an array (or object for that matter, but have not had that issue yet), we cannot override the OrgSettings. This forces us to move that setting to RepoSettings for all repos, which kind of sucks. ƒÿò
Hence, I suggest implementing a mechanism where we also can override array and object settings.
If you agree on this, we can start discussing how this could be implemented with backward compatibility.
Internal work item: AB#603320
Metadata
Metadata
Assignees
Labels
Type
Projects
Status