Skip to content

Override array settings #1919

@mazhelez

Description

@mazhelez

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

Fix ReadyFix ReadyShippedFeature is included in the latest versionacceptedThe issue has been accepted

Projects

Status

✅ Shipped

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions