coreapi commands: human tables by default, --json to opt out
Commit

The list/get commands dumped the raw wire model as JSON — noisy
(installationId, jurisdiction, ULIDs) and, for mirrors, missing the one
field a person actually wants: the clone URL. Default them to a compact,
aligned table of the actionable columns; add a persistent --json flag
(inherited by nested subcommands like entire repo mirror list) for the
full model when scripting.
corecmd.go gains the shared machinery: addJSONFlag / jsonRequested, a tabwriter-based printTable + printFields, and runCoreList / runCoreObject that branch on --json. Each resource defines one columns + row mapper reused by both its list (table) and get (vertical field view).
Mirror output now synthesises the clone URL
(entire://<cluster>/gh/<owner>/<repo>) the list API doesn't return, and
drops installationId/jurisdiction/createdAt from the human view — so
repo mirror list leads with repo, cluster, and the URL you'd clone.
Scope is the read commands (org/project/repo/grant list, repo+mirror get); create/add still echo the new object as JSON so the new id is easy to capture, and mirror create keeps its interactive clone-wait output.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com Entire-Checkpoint: ad6864b8ff39