Dashboard › craft › Distillation
f98d6e24-76e5-44cf-9711-66255f18cf31["a248668eedbfc9e306537a640b0e1cf8","4264b52282958c60893c78b5204f7bb0"]
Date: Aug 7, 2026
reviewers as a real JSON array instead of a JSON-encoded string) resolved the earlier HTTP 422. BYK is now in requested_reviewers on the craft PR (issue-864-vercel-target), but PR still shows mergeStateStatus: BLOCKED. BYK's CHANGES_REQUESTED was on an outdated commit; assistant was checking whether the fresh review request clears the merge gate.jared-outpost[bot], state open, Closes #864, created 2026-08-06T13:35:55Z, updated 2026-08-07T15:55:4xZ. Repo: getsentry/craft — "The universal Sentry release CLI 🚀".vercel target — the vercel equivalent of the existing cloudflare target (#843), superseding the cloudflare approach for the CLI docs site (#842).src/targets/vercel.ts, modeled directly on cloudflare.ts: extracts a vercel.zip (or *-vercel.zip) artifact and shells out to vercel deploy --prod --yes --prebuilt --meta craftRelease=<version>.prebuilt defaults to true (docs site is built in CI; release just promotes the prebuilt .vercel/output); set prebuilt: false to build from source.VERCEL_TOKEN is the only secret — passed via the environment, never on argv. Optional VERCEL_ORG_ID / VERCEL_PROJECT_ID identifiers are forwarded through the env when set so the deploy links to the right project non-interactively.${ENV} expansions (defense against spawnProcess expanding a config string into a secret), and hard-guards against dry-run so a remote deploy NEVER runs in dry-run/worktree mode.vercel registered in TARGET_MAP (src/targets/index.ts); vercel CLI bundled in the Dockerfile pinned at vercel@58.7.1, next to the pinned wrangler install.docs/src/content/docs/targets/vercel.md + linked from the targets overview.publish() only runs during craft publish, so deployed docs stay in sync with the released version (same guarantee as gh-pages); composes with prefixed release tags (#844) — target reads no tag/branch state itself, per-product .craft.yml invocation (cli@x.y.z) drives it unchanged.src/targets/__tests__/vercel.test.ts with 17 tests (mirrors the cloudflare test) covering config defaults/overrides, required-secret enforcement, env-expansion rejection, argv construction, org/project env forwarding, workingDir, artifact count errors, and dry-run safety. pnpm test, pnpm run typecheck, eslint, and prettier --check all pass locally. PR has <!-- jared:ci-checks=3 -->.