[ax] Add --output-format=json to validate-config - #8452
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Stacked on #8450 (base branch
tv-validate-config); will retarget tomainonce #8450 merges.Why
validate-config(#8450) prints human warnings and sets an exit code. Agents and CI want a machine-readable result they can parse, not scrape from console text.What
validate-config --output-format=jsonemits a compact machine gate to stdout and suppresses the human warnings:{ "valid": true, "issue_count": 0 }0whenvalidis true,1otherwise - same gate as console mode.console.process --output-format=jsonbehaves.Scope note
This v1 payload is the pass/fail gate (
valid+issue_count). Per-finding detail (which rule/args are deprecated) would require the hygiene reporters to return structured findings instead of just counts - a larger change also touchingProcessCommand- so it is left as a follow-up.Tests
testJsonOutputOnCleanConfig/testJsonOutputOnDeprecatedRegisteredRuleassert both the payload and the exit code (output captured viaob_*).composer check-cs,composer phpstanclean; verified on the CLI.