Add checkout.submodules to schema#164
Conversation
There was a problem hiding this comment.
Schema addition follows the existing pattern for checkout.skip (same enum: [true, false, "true", "false"] shape, same default placement), and the tests cover both nesting levels and the non-boolean rejection path. Nothing to flag.
Not approving because the PR has no risk: label — the workflow needs an explicit risk:L1 to auto-approve, even for an additive schema field like this.
One tiny inconsistency worth a glance (not blocking): the PR description says "No default is set in the schema so the agent default applies when the field is omitted," but the schema sets "default": true. JSON-schema default is informational only, so behaviour is unaffected — just flagging in case the description is the source of truth and the default should be dropped (or vice versa).
Want to dig deeper? The full session log is attached to this Buildkite build. Download the session file and open a new pi session with it:
Download the buildsworth logs from build 181, then answer my findings.
Summary
Adds
submodulesboolean to the sharedcheckoutdefinition, giving pipeline authors per-step (and pipeline-level) control over git submodule processing.When
true(the agent default), the agent initializes, syncs, updates, and cleans submodules recursively as part of checkout. Whenfalse, submodule processing is skipped.Changes
schema.json: addsubmodules: booleanto thecheckoutdefinition.test/schema.test.js: reject non-boolean values forcheckout.submodules.test/valid-pipelines/checkout.ymlandcommand.yml: fixture coverage fortrueandfalse.Validation
npm test(20/20 passing)npm run format:check