Merge sentry-cli + sentry-mcp into getsentry/toolkit monorepo (master)

Open
#1,248 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
30/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Active
Tech stack
github, typescript

Research direction

Start with the linked migration plan and the pending work in #1239–#1243, which cover importing the CLI, unifying tooling, replacing Turbo, CI gating, and release workspaces. Done means the sequential integration, pre-rename validation, deployment canaries, and compatibility requirements in this issue have passed before any repository rename.

Written by the indexing model from the issue text.

Description

Tracking issue for merging getsentry/cli into the existing getsentry/sentry-mcp repository, validating the combined monorepo there, and only then renaming it to getsentry/toolkit. The final repository is a pnpm workspace (no Turbo) with independent prefixed releases and phased shared code.

Full plan: https://gist.github.com/BYK/8c0ce6cec64608f41fe5654b7827228e

Settled architecture

  • Use getsentry/sentry-mcp as the destination; do not create a fresh repository. This preserves MCP production secrets, environments, GitHub App, webhooks, Vercel, and Cloudflare wiring.
  • Import CLI while the repository is still named getsentry/sentry-mcp. Rename only after the integrated monorepo and live deployment paths pass every gate.
  • Preserve CLI and docs history through two filtered git subtree imports into packages/cli and apps/cli-docs.
  • Release products independently with cli@x.y.z and mcp@x.y.z.
  • CLI docs and previews are release-gated on Cloudflare; https://cli.sentry.dev/install remains unchanged. The MCP Worker remains on Cloudflare.
  • Drop Turbo for pnpm-native orchestration.
  • Manage patches at the workspace root and use a shared dependency catalog.
  • Colocate first; extract @sentry/toolkit-core later.

Ordered migration gates

1. Prerequisites
  • #1238 / getsentry/cli#1254 — pre-shape CLI into packages/cli and apps/cli-docs.
  • getsentry/publish#9339 — accept workspace publish requests.
  • getsentry/publish#9456 — bootstrap root publish locations.
  • getsentry/craft#847 — prefix-aware tag and changelog read paths.
  • getsentry/craft#848 — top-level release workspace schema and selector.
  • getsentry/craft#872 — propagate release workspaces.
  • Replace the transitional Vercel CLI-docs target with release-gated Cloudflare hosting and previews.
2. Bridge CLI release — hard blocker
  • #1244 / #1569 — implement ordered Toolkit-first / CLI-fallback upgrade sources.
  • Cut and verify stable bridge CLI release 0.45.0 from getsentry/cli; import is now unblocked.
3. Import and integrate under the current name
  • #1239 — import CLI and docs history into an integration branch of getsentry/sentry-mcp.
  • #1240 — unify toolchain, dependency catalog, and root patches.
  • #1241 — replace Turbo with pnpm-native orchestration.
  • #1242 — per-product CI and changed-file gating.
  • #1243 — configure prefixed independent release workspaces.
4. Pre-rename validation
  • #1246 — full CLI/MCP CI, workspace release dry-runs, Cloudflare CLI-docs preview, and MCP Cloudflare deploy canary pass under getsentry/sentry-mcp.
  • Independent correctness and security reviews pass on the exact integration head.
5. Rename and revalidate
  • getsentry/sentry-mcp#1156 — rename to getsentry/toolkit, verify all repository and deployment integrations, rerun CI and canaries.
  • Run staging releases for both products and the complete CLI compatibility matrix.
6. Cutover and compatibility window
  • Dual-publish CLI releases and nightlies to Toolkit and getsentry/cli.
  • Announce Toolkit as canonical.
  • Keep getsentry/cli writable; do not archive it while dual publishing is active.
  • After at least two stable releases and roughly 90 days, verify legacy usage has ended, then archive getsentry/cli with a redirect.
7. Follow-up
  • #1247 — extract @sentry/toolkit-core incrementally.

Highest risks

  • #1244: compatibility for old binaries that only know getsentry/cli.
  • #1241 / getsentry/sentry-mcp#1156: changes to the live MCP deploy path and repository identity.

Every gate is sequential. Never rename before pre-rename validation, and never archive getsentry/cli before the compatibility window ends.

Dominant language
TypeScript
Stars
121
Forks
14
Avg merge
22h 3m
Merged PRs (30d)
94

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from getsentry/cli

All issues in getsentry/cli

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.