fix(cli): add non-TTY guards and fix exit codes in marketplace commands#15158
fix(cli): add non-TTY guards and fix exit codes in marketplace commands#15158
Conversation
🦋 Changeset detectedLatest commit: 4ab4792 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
This stack of pull requests is managed by Graphite. Learn more about stacking. |
📦 CLI Tarball ReadyThe Vercel CLI tarball for this PR is now available! Quick TestYou can test this PR's CLI directly by running: npx https://vercel-5ydae1u77.vercel.sh/tarballs/vercel.tgz --helpUse in vercel.jsonTo use this CLI version in your project builds, add to your {
"build": {
"env": {
"VERCEL_CLI_VERSION": "vercel@https://vercel-5ydae1u77.vercel.sh/tarballs/vercel.tgz"
}
}
}Python Runtime WheelA Python runtime wheel was also built for this PR. |
🧪 Unit Test StrategyComparing: Strategy: Affected packages only ✅ Only testing packages that have been modified or depend on modified packages. Affected packages - 1 (3%)
Unaffected packages - 39 (98%)
Results
This comment is automatically generated based on the affected testing strategy |
b16d962 to
7e8cc7a
Compare
…ommands Commands with --yes flag now error with guidance instead of hanging when stdin is not a TTY and --yes is not passed.
7e8cc7a to
4ab4792
Compare
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @vercel/build-utils@13.5.0 ### Minor Changes - Add django experimental framework. ([#15196](#15196)) ### Patch Changes - Updated dependencies \[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]: - @vercel/python-analysis@0.7.0 ## @vercel/frameworks@3.19.0 ### Minor Changes - Add django experimental framework. ([#15196](#15196)) ## @vercel/python@6.16.0 ### Minor Changes - [python] add support for running generic ASGI/WSGI applications to vc dev ([#15174](#15174)) ### Patch Changes - Updated dependencies \[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]: - @vercel/python-analysis@0.7.0 ## @vercel/python-analysis@0.7.0 ### Minor Changes - Add django experimental framework. ([#15196](#15196)) ## @vercel/backends@0.0.37 ### Patch Changes - Updated dependencies \[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]: - @vercel/build-utils@13.5.0 ## @vercel/cervel@0.0.24 ### Patch Changes - Updated dependencies \[]: - @vercel/backends@0.0.37 ## vercel@50.22.2 ### Patch Changes - fix(cli): add `integration-resource` command to `vc --help` output ([#15191](#15191)) - fix(cli): filter empty strings from trailing commas in array metadata ([#15163](#15163)) - fix(cli): add non-TTY guards and fix exit codes in marketplace commands ([#15158](#15158)) - Adding in a non-interactive flag for env command ([#14912](#14912)) - fix(cli): unify teamId scoping for all marketplace integration commands ([#15183](#15183)) - Updated dependencies \[[`3c4aff4acbfa603705556d145236b8a9ef106331`](3c4aff4), [`984d44875f959058f5d13fea27373785b1d66b6f`](984d448), [`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]: - @vercel/next@4.15.32 - @vercel/python@6.16.0 - @vercel/build-utils@13.5.0 - @vercel/backends@0.0.37 - @vercel/elysia@0.1.40 - @vercel/express@0.1.49 - @vercel/fastify@0.1.43 - @vercel/go@3.4.1 - @vercel/h3@0.1.49 - @vercel/hono@0.2.43 - @vercel/hydrogen@1.3.5 - @vercel/koa@0.1.23 - @vercel/nestjs@0.2.44 - @vercel/node@5.6.7 - @vercel/redwood@2.4.9 - @vercel/remix-builder@5.5.10 - @vercel/ruby@2.3.1 - @vercel/rust@1.0.5 - @vercel/static-build@2.8.41 ## @vercel/client@17.2.46 ### Patch Changes - Updated dependencies \[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]: - @vercel/build-utils@13.5.0 ## @vercel/elysia@0.1.40 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.7 ## @vercel/express@0.1.49 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.7 - @vercel/cervel@0.0.24 ## @vercel/fastify@0.1.43 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.7 ## @vercel/fs-detectors@5.8.10 ### Patch Changes - Updated dependencies \[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]: - @vercel/frameworks@3.19.0 ## @vercel/gatsby-plugin-vercel-builder@2.0.139 ### Patch Changes - Updated dependencies \[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]: - @vercel/build-utils@13.5.0 ## @vercel/h3@0.1.49 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.7 ## @vercel/hono@0.2.43 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.7 ## @vercel/koa@0.1.23 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.7 ## @vercel/nestjs@0.2.44 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.7 ## @vercel/next@4.15.32 ### Patch Changes - Revert per function builder support ([#15209](#15209)) ## @vercel/node@5.6.7 ### Patch Changes - Updated dependencies \[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]: - @vercel/build-utils@13.5.0 ## @vercel/static-build@2.8.41 ### Patch Changes - Updated dependencies \[]: - @vercel/gatsby-plugin-vercel-builder@2.0.139 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

Summary
--yesflag but noisTTYguard, causing them to hang in non-TTY/CI without--yes--yesto skip the confirmation prompt."integration remove,integration-resource remove,integration-resource disconnect,integration-resource create-thresholdintegration-resource --helpTest plan
Unit Tests
Manual Testing
Non-TTY guard (without
--yes):vc integration remove neonError: Confirmation required. Use --yes to skip the confirmation prompt.vc ir remove happy-test-installError: Confirmation required. Use --yes to skip the confirmation prompt.vc ir disconnect braintrust-blue-school cli-testError: Confirmation required. Use --yes to skip the confirmation prompt.vc ir disconnect braintrust-blue-school --allError: Confirmation required. Use --yes to skip the confirmation prompt.--yesbypass (non-TTY):vc integration remove neon --yesvc ir disconnect braintrust-blue-school cli-test --yesSuccess! Disconnected cli-test from braintrust-blue-schoolvc ir remove braintrust-blue-school --yesSuccess! braintrust-blue-school successfully deleted.Not-found exit code fix:
vc integration remove nonexistentError: No integration nonexistent found.vc ir remove nonexistentError: No resource nonexistent found.vc ir disconnect nonexistentError: No resource nonexistent found.Code Paths Covered
--yes→ error--yes→ bypass guardcreate-thresholdnon-TTY guard🤖 Generated with Claude Code
Note
Low Risk Change
This PR adds defensive non-TTY guards that require explicit --yes flag for confirmation prompts and fixes exit codes to return 1 on errors instead of 0, all of which are bug fixes that tighten CLI behavior.
Risk assessment for commit 4ab4792.