Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We currently issue one
SetAllConfig
RPC for each user-specified config. This is slow but it has important correctness guarantees:foo: foo
followed byfoo: bar
, the net result must always befoo: bar
.--path
on an all-or-nothing basis. This is bad for us because we potentially have a blend of path and non-path keys.Ideally we would be able to supply all of our configs to the automation API in a single call, and in the case where all of our config keys are path-like (or all are not path-like) we actually can do that because we no longer have limitation (2).
This PR makes that possible in the general case by transforming our config keys in a way that allows us to treat them as if they are all path-like.
In particular:
SetAllConfig
handler is modified to take a list of configs instead of a map in order to preserve config order. The top-levelpath
param is also removed and handled on a per-key basis.foo.bar
gets escaped as["foo.bar"]
.Path: true
.SetAllConfig
.Fixes #650