feat(cli): add project checks command (public API parity)#15816
Conversation
- project checks [name] -> GET /v2/projects/{id}/checks
- Optional --blocks filter (public enum from checks v2)
- Table or --format json; telemetry + unit tests
Made-with: Cursor
🦋 Changeset detectedLatest commit: fe09516 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 |
|
Low Risk — New CLI subcommand with input validation, telemetry, and comprehensive unit tests.
Assessed at ae1a1c3. |
📦 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-ij5s9hha9.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-ij5s9hha9.vercel.sh/tarballs/vercel.tgz"
}
}
}Python Runtime WheelA Python Workers WheelA |
🧪 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 |
Resolve conflicts: keep project checks subcommand alongside main's access-summary, members, access-groups, web-analytics, speed-insights. Made-with: Cursor
Made-with: Cursor
- Add `project checks add` (POST /v2/projects/.../checks) with --file and flags
- Add `project checks remove` / `rm` (DELETE .../checks/{checkId})
- Non-interactive: outputAgentError for validation, ok payloads with next/hint,
exitWithNonInteractiveError for API/link failures (variant checks)
- List: default JSON + structured success when non-interactive; forReadOnlyCommand
- Telemetry: checks add / checks remove; unit tests including NI cases
Made-with: Cursor
- Use JSONObject/JSONValue for checks-add request body (matches Client.fetch) - Drop redundant json: true on POST; JSONObject bodies are stringified by client - Type create response as JSONObject so id is a valid JSONValue key - Extend ProjectChecksResponse with optional PaginationOptions - Add unit test asserting pagination is forwarded in --non-interactive JSON Made-with: Cursor
Made-with: Cursor
removeEmoji() used trimStart() on the full string, which removed the intentional leading newline from multiline help output when NO_COLOR disabled chalk and output.print ran removeEmoji. Add unit tests for removeEmoji behavior. Made-with: Cursor
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.13.0 ### Minor Changes - Extend `finalizeLambda` with pluggable ZIP strategy (`createZip`), pre-digest validation hook (`validateZip`), and optional trace tags. Widen `getLambdaEnvironment` buffer param to `{ byteLength: number }`. ([#15856](#15856)) ## vercel@50.41.0 ### Minor Changes - Add `vercel edge-config` with `list`, `add`, `get`, `update`, `remove`, `items`, and `tokens` subcommands for Edge Config dashboard API parity. ([#15822](#15822)) - Add `vercel project checks` to list a project's deployment checks configuration (parity with dashboard), including `--format json` and non-interactive error payloads. ([#15816](#15816)) ### Patch Changes - Improve `vercel teams request` in non-interactive mode: validation, missing team scope, and API errors emit structured JSON on stdout with stable `reason` values and `next[]` commands that preserve global flags (for example `--cwd` and `--non-interactive`). ([#15815](#15815)) - Hide `--search` flag from `vc logs --help` output while continuing to accept it, and update the `--query` flag description to indicate advanced querying with filter syntax support. ([#15854](#15854)) - Updated dependencies \[[`a80217a9ed60d7b7f3e98537b0468cc5488078c1`](a80217a)]: - @vercel/build-utils@13.13.0 - @vercel/backends@0.0.56 - @vercel/elysia@0.1.59 - @vercel/express@0.1.69 - @vercel/fastify@0.1.62 - @vercel/go@3.4.7 - @vercel/h3@0.1.68 - @vercel/hono@0.2.62 - @vercel/hydrogen@1.3.6 - @vercel/koa@0.1.42 - @vercel/nestjs@0.2.63 - @vercel/next@4.16.5 - @vercel/node@5.7.1 - @vercel/python@6.29.0 - @vercel/redwood@2.4.12 - @vercel/remix-builder@5.7.2 - @vercel/ruby@2.3.2 - @vercel/rust@1.0.6 - @vercel/static-build@2.9.9 ## @vercel/backends@0.0.56 ### Patch Changes - Updated dependencies \[[`a80217a9ed60d7b7f3e98537b0468cc5488078c1`](a80217a)]: - @vercel/build-utils@13.13.0 ## @vercel/cervel@0.0.43 ### Patch Changes - Updated dependencies \[]: - @vercel/backends@0.0.56 ## @vercel/client@17.2.68 ### Patch Changes - Updated dependencies \[[`a80217a9ed60d7b7f3e98537b0468cc5488078c1`](a80217a)]: - @vercel/build-utils@13.13.0 ## @vercel/elysia@0.1.59 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 ## @vercel/express@0.1.69 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 - @vercel/cervel@0.0.43 ## @vercel/fastify@0.1.62 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 ## @vercel/fs-detectors@5.14.3 ### Patch Changes - Updated dependencies \[[`a80217a9ed60d7b7f3e98537b0468cc5488078c1`](a80217a)]: - @vercel/build-utils@13.13.0 ## @vercel/gatsby-plugin-vercel-builder@2.1.9 ### Patch Changes - Updated dependencies \[[`a80217a9ed60d7b7f3e98537b0468cc5488078c1`](a80217a)]: - @vercel/build-utils@13.13.0 ## @vercel/h3@0.1.68 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 ## @vercel/hono@0.2.62 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 ## @vercel/koa@0.1.42 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 ## @vercel/nestjs@0.2.63 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 ## @vercel/node@5.7.1 ### Patch Changes - Updated dependencies \[[`a80217a9ed60d7b7f3e98537b0468cc5488078c1`](a80217a)]: - @vercel/build-utils@13.13.0 ## @vercel/static-build@2.9.9 ### Patch Changes - Updated dependencies \[]: - @vercel/gatsby-plugin-vercel-builder@2.1.9 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
## Summary
- `vercel project checks [name]` lists checks via public `GET
/v2/projects/{projectIdOrName}/checks`.
- Optional `--blocks` filter with the same enum as the API:
`build-start`, `deployment-start`, `deployment-alias`,
`deployment-promotion`, `none`.
- Default table output; `--format json` prints the API payload.
Telemetry + unit tests.
## Test plan
- [x] `pnpm --dir packages/cli run vitest-run
test/unit/commands/project/checks.test.ts
test/unit/commands/project/index.test.ts`
Made with [Cursor](https://cursor.com)
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.13.0 ### Minor Changes - Extend `finalizeLambda` with pluggable ZIP strategy (`createZip`), pre-digest validation hook (`validateZip`), and optional trace tags. Widen `getLambdaEnvironment` buffer param to `{ byteLength: number }`. ([#15856](#15856)) ## vercel@50.41.0 ### Minor Changes - Add `vercel edge-config` with `list`, `add`, `get`, `update`, `remove`, `items`, and `tokens` subcommands for Edge Config dashboard API parity. ([#15822](#15822)) - Add `vercel project checks` to list a project's deployment checks configuration (parity with dashboard), including `--format json` and non-interactive error payloads. ([#15816](#15816)) ### Patch Changes - Improve `vercel teams request` in non-interactive mode: validation, missing team scope, and API errors emit structured JSON on stdout with stable `reason` values and `next[]` commands that preserve global flags (for example `--cwd` and `--non-interactive`). ([#15815](#15815)) - Hide `--search` flag from `vc logs --help` output while continuing to accept it, and update the `--query` flag description to indicate advanced querying with filter syntax support. ([#15854](#15854)) - Updated dependencies \[[`a80217a9ed60d7b7f3e98537b0468cc5488078c1`](a80217a)]: - @vercel/build-utils@13.13.0 - @vercel/backends@0.0.56 - @vercel/elysia@0.1.59 - @vercel/express@0.1.69 - @vercel/fastify@0.1.62 - @vercel/go@3.4.7 - @vercel/h3@0.1.68 - @vercel/hono@0.2.62 - @vercel/hydrogen@1.3.6 - @vercel/koa@0.1.42 - @vercel/nestjs@0.2.63 - @vercel/next@4.16.5 - @vercel/node@5.7.1 - @vercel/python@6.29.0 - @vercel/redwood@2.4.12 - @vercel/remix-builder@5.7.2 - @vercel/ruby@2.3.2 - @vercel/rust@1.0.6 - @vercel/static-build@2.9.9 ## @vercel/backends@0.0.56 ### Patch Changes - Updated dependencies \[[`a80217a9ed60d7b7f3e98537b0468cc5488078c1`](a80217a)]: - @vercel/build-utils@13.13.0 ## @vercel/cervel@0.0.43 ### Patch Changes - Updated dependencies \[]: - @vercel/backends@0.0.56 ## @vercel/client@17.2.68 ### Patch Changes - Updated dependencies \[[`a80217a9ed60d7b7f3e98537b0468cc5488078c1`](a80217a)]: - @vercel/build-utils@13.13.0 ## @vercel/elysia@0.1.59 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 ## @vercel/express@0.1.69 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 - @vercel/cervel@0.0.43 ## @vercel/fastify@0.1.62 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 ## @vercel/fs-detectors@5.14.3 ### Patch Changes - Updated dependencies \[[`a80217a9ed60d7b7f3e98537b0468cc5488078c1`](a80217a)]: - @vercel/build-utils@13.13.0 ## @vercel/gatsby-plugin-vercel-builder@2.1.9 ### Patch Changes - Updated dependencies \[[`a80217a9ed60d7b7f3e98537b0468cc5488078c1`](a80217a)]: - @vercel/build-utils@13.13.0 ## @vercel/h3@0.1.68 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 ## @vercel/hono@0.2.62 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 ## @vercel/koa@0.1.42 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 ## @vercel/nestjs@0.2.63 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.1 ## @vercel/node@5.7.1 ### Patch Changes - Updated dependencies \[[`a80217a9ed60d7b7f3e98537b0468cc5488078c1`](a80217a)]: - @vercel/build-utils@13.13.0 ## @vercel/static-build@2.9.9 ### Patch Changes - Updated dependencies \[]: - @vercel/gatsby-plugin-vercel-builder@2.1.9 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Summary
vercel project checks [name]lists checks via publicGET /v2/projects/{projectIdOrName}/checks.--blocksfilter with the same enum as the API:build-start,deployment-start,deployment-alias,deployment-promotion,none.--format jsonprints the API payload. Telemetry + unit tests.Test plan
pnpm --dir packages/cli run vitest-run test/unit/commands/project/checks.test.ts test/unit/commands/project/index.test.tsMade with Cursor