Files
Jamie Tanna dc6a4ceed8 test(json-schema): cover how we generate object options
As part of follow-up changes we'll fix how our JSON schema treats the
options which are an object. Before we do this, we should document how
we currently generate them.

Currently, if an object option:

- is not `freeChoice`
- nests a Renovate config i.e. `force`
- is a map of simple types i.e. `secrets`, `env`

then the JSON schema indicates that this is can take any root-level
options, which isn't correct.

Also, the children an option declares through its `parents` are
generated into `items`, which is only validated for the parents which
are an array.

This means that we error for valid config i.e.

```yaml
env:
  automerge: "true" # incorrectly reports this must be boolean
```

but do not error for an invalid config i.e.

```yaml
postUpgradeTasks:
  commands: echo hi # incorrectly does not report that this must be an array
```

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-10-07 17:47:43 +02:00
..