Skip to content

[CLI] feat: Marketplace integration lifecycle parity scope (CLI-237)#15849

Merged
brookemosby merged 22 commits into
mainfrom
brooke/cli-237-parity-vercel-marketplace-integration-install-configure-remove-cli
Apr 9, 2026
Merged

[CLI] feat: Marketplace integration lifecycle parity scope (CLI-237)#15849
brookemosby merged 22 commits into
mainfrom
brooke/cli-237-parity-vercel-marketplace-integration-install-configure-remove-cli

Conversation

@brookemosby

@brookemosby brookemosby commented Apr 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Scope note for CLI-237: install/configure/remove vs vercel integration / integration-resource, dedup vs CLI-224/225.

Path

packages/cli/docs/parity/cli-237-marketplace-integrations.md

Made with Cursor

Supported API-backed Commands To Test

  • vercel integration installations
  • vercel integration installations --integration <slug-or-id>
  • vercel integration installations --format json

@brookemosby brookemosby requested review from a team as code owners April 6, 2026 23:26
@changeset-bot

changeset-bot Bot commented Apr 6, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 75d29d4

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
vercel Minor

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

@vercel

vercel Bot commented Apr 6, 2026

Copy link
Copy Markdown
Contributor

Low Risk — New CLI subcommand + utility function + tests for listing marketplace installations.

  • .changeset/cli-integration-installations.md: changeset for new vercel integration installations command
  • packages/cli/src/commands/integration/installations-list.ts: new subcommand handler to list marketplace installations
  • packages/cli/test/unit/commands/integration/index.test.ts: unit test for new installations subcommand

Assessed at a69f19a.

@github-actions

github-actions Bot commented Apr 6, 2026

Copy link
Copy Markdown
Contributor

🧪 Unit Test Strategy

Comparing: 61c17f975d29d4 (view diff)

Strategy: Affected packages only

✅ Only testing packages that have been modified or depend on modified packages.

Affected packages - 1 (3%)
  1. vercel
Unaffected packages - 39 (98%)
  1. @vercel-internals/get-package-json
  2. @vercel/backends
  3. @vercel/build-utils
  4. @vercel/cervel
  5. @vercel/cli-auth
  6. @vercel/client
  7. @vercel/config
  8. @vercel/detect-agent
  9. @vercel/edge
  10. @vercel/elysia
  11. @vercel/error-utils
  12. @vercel/express
  13. @vercel/fastify
  14. @vercel/firewall
  15. @vercel/frameworks
  16. @vercel/fs-detectors
  17. @vercel/functions
  18. @vercel/gatsby-plugin-vercel-builder
  19. @vercel/go
  20. @vercel/h3
  21. @vercel/hono
  22. @vercel/hydrogen
  23. @vercel/koa
  24. @vercel/nestjs
  25. @vercel/next
  26. @vercel/node
  27. @vercel/oidc
  28. @vercel/oidc-aws-credentials-provider
  29. @vercel/python
  30. @vercel/python-analysis
  31. @vercel/redwood
  32. @vercel/related-projects
  33. @vercel/remix-builder
  34. @vercel/routing-utils
  35. @vercel/ruby
  36. @vercel/rust
  37. @vercel/static-build
  38. @vercel/static-config
  39. examples

Results

  • Unit tests: Only affected packages will run unit tests
  • E2E tests: Running in parallel via E2E Tests workflow
  • Type checks: Only affected packages will run type checks

This comment is automatically generated based on the affected testing strategy

@brookemosby brookemosby force-pushed the brooke/cli-237-parity-vercel-marketplace-integration-install-configure-remove-cli branch from 362377b to 1c796d1 Compare April 6, 2026 23:58
@brookemosby brookemosby requested review from a team as code owners April 6, 2026 23:58
@github-actions

github-actions Bot commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

📦 CLI Tarball Ready

The Vercel CLI tarball for this PR is now available!

Quick Test

You can test this PR's CLI directly by running:

npx https://vercel-h06wazjkz.vercel.sh/tarballs/vercel.tgz --help

Use in vercel.json

To use this CLI version in your project builds, add to your vercel.json:

{
  "build": {
    "env": {
      "VERCEL_CLI_VERSION": "vercel@https://vercel-h06wazjkz.vercel.sh/tarballs/vercel.tgz"
    }
  }
}

Python Runtime Wheel

A vercel-runtime wheel was also built for this PR.
To use in your Python project builds, also set this environment variable:

VERCEL_RUNTIME_PYTHON="vercel-runtime @ https://vercel-h06wazjkz.vercel.sh/tarballs/vercel_runtime-0.13.0.dev1775770733+75d29d4-py3-none-any.whl"

Python Workers Wheel

A vercel-workers wheel was also built for this PR.
To use in your Python project builds, also set this environment variable:

VERCEL_WORKERS_PYTHON="vercel-workers @ https://vercel-h06wazjkz.vercel.sh/tarballs/vercel_workers-0.1.0.dev1775770733+75d29d4-py3-none-any.whl"

Comment thread packages/cli/src/commands/oauth-apps/index.ts Outdated
List marketplace installations for the team via v2 integrations
configurations with optional integration filter and JSON output.

Made-with: Cursor
@brookemosby brookemosby force-pushed the brooke/cli-237-parity-vercel-marketplace-integration-install-configure-remove-cli branch from 1c796d1 to 40bcb9a Compare April 7, 2026 00:29
@brookemosby brookemosby changed the title docs(cli): Marketplace integration lifecycle parity scope (CLI-237) [CLI] feat: Marketplace integration lifecycle parity scope (CLI-237) Apr 7, 2026
Add vercel integration update calling PATCH /v1/integrations/configuration/:id
to change installation billing plans or project visibility (all or explicit
project IDs). Supports --installation-id when multiple marketplace
installations exist for the same integration slug.

Includes unit tests and help snapshots.

Made-with: Cursor
Use plain-text error messages (no chalk in API error strings), surface
API server messages on failure, align usage copy with other commands,
return exit code 2 when too many positionals are passed, and add a unit
test for a missing integration slug.

Made-with: Cursor
Emit structured errors on stdout when --non-interactive (or agent mode),
including missing slug with suggested next command preserving global flags.
Success JSON is emitted without --format when non-interactive. Route all
update validation and API errors through the same agent payload pattern.

Made-with: Cursor
Code-split chunks were leaving bare `smol-toml` imports while the package
was listed as external, so Node could not resolve it from dist/chunks.
Bundle smol-toml via a resolve plugin (like jsonc-parser) and exclude it
from externals so the CLI runs without a separate node_modules entry.

Made-with: Cursor
- Add prependGlobalFlags to buildCommandWithGlobalFlags so examples use
  `vercel --cwd … --non-interactive integration update …` ordering.
- When --projects/--plan appear without a slug, explain that the slug must
  follow `update` and add a second next step for `integration installations`.
- Hoist flag reads before the missing-slug check; use prepend for teams switch.

Made-with: Cursor
…ration-install-configure-remove-cli

- Resolve integration add: keep slim add.ts from main plus non-interactive
  missing-slug JSON; drop obsolete merged-in provision helpers.
- Remove add.test.ts (main); port missing-slug / multi-arg cases to
  add-auto-provision.test.ts.
- Export fetchMarketplaceIntegrations for update-integration.
- Restore useIntegration mock for accept-terms tests (marketplace install POST).

Made-with: Cursor
Comment thread packages/cli/src/commands/integration/update-integration.ts Outdated
Comment thread packages/cli/src/commands/integration/installations-list.ts
Comment thread packages/cli/src/commands/integration/installations-list.ts
Comment thread packages/cli/src/util/emoji.ts Outdated
Comment thread packages/cli/test/unit/commands/help.test.ts
Comment thread packages/cli/src/commands/integration/installations-list.ts
Comment thread .changeset/cli-integration-installations.md Outdated
@tonypan2

tonypan2 commented Apr 9, 2026

Copy link
Copy Markdown
Contributor

14 AI-generated findings triaged, 7 posted after human review.
AI review: 8m 35s | Human triage: 50m 59s | Total: 59m 34s

🤖 Written by Claude Code on behalf of @tonypan2

…rgs, help snapshots)

- Parse integration update from subArgs only; slug is args[0] (parity with other subcommands).
- Reject extra positionals on integration installations with a clear usage message.
- Add help snapshots for accept-terms and installations subcommands.
- Broaden changeset to cover update argv alignment and related CLI scope.

Made-with: Cursor
… newline only)

Revert emoji-at-start / leading-space branches; match main behavior so NO_COLOR
print() strips stray leading whitespace again. Multiline help and tables that
prefix with \n keep indentation; integration installations table already uses
that pattern. Add test for trimmed leading spaces without a leading newline.

Made-with: Cursor
@brookemosby brookemosby merged commit 48ea2ae into main Apr 9, 2026
186 of 225 checks passed
@brookemosby brookemosby deleted the brooke/cli-237-parity-vercel-marketplace-integration-install-configure-remove-cli branch April 9, 2026 22:53
healeycodes pushed a commit that referenced this pull request Apr 10, 2026
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@50.43.0

### Minor Changes

- Add Deployment Checks support to `deploy --prod`. Shows "Running
Checks..." spinner when checks are pending, detects check failures
before alias promotion, and displays failed check run details with links
to logs. ([#15884](#15884))

- Extend marketplace integration CLI parity: add `vercel integration
installations` to list team installations (with optional `--integration`
filter and JSON output), align `vercel integration update` argument
parsing with other subcommands (parse only tokens after `update`, so the
integration slug is the first positional), and ship related
help/telemetry updates.
([#15849](#15849))

- Add `vercel project protection` actions for automation protection
bypass via PATCH `/v1/projects/.../protection-bypass`
(`--protection-bypass`).
([#15862](#15862))

- Add `vercel project protection` actions for customer support code
visibility (`--customer-support-code-visibility`).
([#15860](#15860))

- Add `vercel project protection` actions for Git fork protection
(`--git-fork-protection`).
([#15861](#15861))

- [services] migrate python workers to Queues V3 API
([#15885](#15885))

- [cli] Add `vercel flags override` subcommand to encrypt and decrypt
flag override tokens for the `vercel-flag-overrides` cookie
([#15875](#15875))

### Patch Changes

- Persist CLI telemetry across invocations with bounded-time sessions,
stable installation device IDs, and per-invocation identifiers.
([#15872](#15872))

- Update the `vercel metrics` CLI to use the V2 observability metrics
API with `--metric`-based schema inspection and querying.
([#15876](#15876))

- Improve `vercel integration add` command to support fallback to the
discover API and first-party integrations.
([#15788](#15788))

- refactor(cli): remove FF_AUTO_PROVISION_INSTALL feature flag and dead
code from `integration add`
([#15871](#15871))

- Updated dependencies
\[[`5e02289f927050a6c1025cc0edb7eda607fd5e73`](5e02289),
[`2e15ee828f14de4a849a462429ca03feab161174`](2e15ee8),
[`a31c84d1bda56a60da6d7bc6d611b0b18ba3bf57`](a31c84d)]:
    -   @vercel/detect-agent@1.2.2
    -   @vercel/build-utils@13.14.1
    -   @vercel/backends@0.0.58
    -   @vercel/elysia@0.1.61
    -   @vercel/express@0.1.71
    -   @vercel/fastify@0.1.64
    -   @vercel/go@3.4.7
    -   @vercel/h3@0.1.70
    -   @vercel/hono@0.2.64
    -   @vercel/hydrogen@1.3.6
    -   @vercel/koa@0.1.44
    -   @vercel/nestjs@0.2.65
    -   @vercel/next@4.16.5
    -   @vercel/node@5.7.3
    -   @vercel/python@6.29.0
    -   @vercel/redwood@2.4.12
    -   @vercel/remix-builder@5.7.2
    -   @vercel/ruby@2.3.2
    -   @vercel/rust@1.1.0
    -   @vercel/static-build@2.9.11

## @vercel/client@17.3.0

### Minor Changes

- Add Deployment Checks support to `deploy --prod`. Shows "Running
Checks..." spinner when checks are pending, detects check failures
before alias promotion, and displays failed check run details with links
to logs. ([#15884](#15884))

### Patch Changes

- Updated dependencies
\[[`2e15ee828f14de4a849a462429ca03feab161174`](2e15ee8),
[`a31c84d1bda56a60da6d7bc6d611b0b18ba3bf57`](a31c84d)]:
    -   @vercel/build-utils@13.14.1

## @vercel/backends@0.0.58

### Patch Changes

- Updated dependencies
\[[`2e15ee828f14de4a849a462429ca03feab161174`](2e15ee8),
[`a31c84d1bda56a60da6d7bc6d611b0b18ba3bf57`](a31c84d)]:
    -   @vercel/build-utils@13.14.1

## @vercel/build-utils@13.14.1

### Patch Changes

- Restore `finalizeLambda()` to return `zipPath: null` for the default
in-memory path, preserving the existing caller-facing result contract
while keeping custom ZIP strategies supported.
([#15887](#15887))

- feat(node): filter non-entrypoint Node.js files in `/api` directory
([#15873](#15873))

## @vercel/cervel@0.0.45

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/backends@0.0.58

## @vercel/detect-agent@1.2.2

### Patch Changes

- Detect Cursor agent execution when
`CURSOR_EXTENSION_HOST_ROLE=agent-exec` is set so tools launched from
Cursor still report the `cursor-cli` agent when `CURSOR_AGENT` is not
present. ([#15879](#15879))

## @vercel/elysia@0.1.61

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3

## @vercel/express@0.1.71

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3
    -   @vercel/cervel@0.0.45

## @vercel/fastify@0.1.64

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3

## @vercel/fs-detectors@5.15.1

### Patch Changes

- feat(node): filter non-entrypoint Node.js files in `/api` directory
([#15873](#15873))

- Updated dependencies
\[[`2e15ee828f14de4a849a462429ca03feab161174`](2e15ee8),
[`a31c84d1bda56a60da6d7bc6d611b0b18ba3bf57`](a31c84d)]:
    -   @vercel/build-utils@13.14.1

## @vercel/gatsby-plugin-vercel-builder@2.1.11

### Patch Changes

- Updated dependencies
\[[`2e15ee828f14de4a849a462429ca03feab161174`](2e15ee8),
[`a31c84d1bda56a60da6d7bc6d611b0b18ba3bf57`](a31c84d)]:
    -   @vercel/build-utils@13.14.1

## @vercel/h3@0.1.70

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3

## @vercel/hono@0.2.64

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3

## @vercel/koa@0.1.44

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3

## @vercel/nestjs@0.2.65

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3

## @vercel/node@5.7.3

### Patch Changes

- Updated dependencies
\[[`2e15ee828f14de4a849a462429ca03feab161174`](2e15ee8),
[`a31c84d1bda56a60da6d7bc6d611b0b18ba3bf57`](a31c84d)]:
    -   @vercel/build-utils@13.14.1

## @vercel/static-build@2.9.11

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/gatsby-plugin-vercel-builder@2.1.11

## @vercel/python-workers@0.0.14

### Patch Changes

- [services] migrate python workers to Queues V3 API
([#15885](#15885))

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants