Merge sentry-cli + sentry-mcp into getsentry/toolkit monorepo (master)
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
- Domain
- build-system, ci-cd, cloud, release
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-mcpas 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 subtreeimports intopackages/cliandapps/cli-docs. - Release products independently with
cli@x.y.zandmcp@x.y.z. - CLI docs and previews are release-gated on Cloudflare;
https://cli.sentry.dev/installremains 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-corelater.
Ordered migration gates
1. Prerequisites
- #1238 / getsentry/cli#1254 — pre-shape CLI into
packages/cliandapps/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.0fromgetsentry/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/cliwritable; 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/cliwith a redirect.
7. Follow-up
- #1247 — extract
@sentry/toolkit-coreincrementally.
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from getsentry/cli
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
-
Difficulty 3/5 1-2 days Newbie friendliness 65/100
-
bug jared
-
jared
Difficulty 4/5 3-5 days Newbie friendliness 52/100
Similar issues
-
Browser Waiting for: Product Owner
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
getsentry/sentry-javascript#24577 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
agilepathway/label-checker#640 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
copse-dev/agent-pane#2953 ·
-
agentic-workflows
Difficulty 1/5 Under an hour Newbie friendliness 85/100
githubnext/rig#534 ·
-
automation missing-model model-sync provider:pioneer
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
anomalyco/models.dev#7701 ·