Skip to content

ref(mcp): Call shared dashboard and release endpoints - #1838

Merged
BYK merged 1 commit into
mainfrom
ref/shared-dashboard-release-endpoints
Nov 3, 2026
Merged

BYK merged 1 commit into
mainfrom
ref/shared-dashboard-release-endpoints

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Task 8.4 of the shared API client plan (#1669). This is stacked on #1834.

This moves the dashboard and release endpoints from SentryApiService into toolkit-core's api-client/endpoints/. SentryApiService calls them with its Zod schemas. The code moves as is.

  • endpoints/dashboards: listDashboards (one page, with the next cursor) and getDashboard.
  • endpoints/releases: listReleases, getRelease, listReleaseDeploys, listReleaseCommits, and getEventCommitters. With a project, release reads still go to the project's endpoints, otherwise to the organization's.
  • api-path gains withQuery, for the path-plus-optional-query pattern the wrappers repeat. getOrganization and getProject use it too; the URLs they send don't change.

@sentry/api has no operation for the project-scoped release details route or for event committers, so those wrappers stay hand-written.

One change in behaviour: as with #1741, a response that fails its schema now throws the shared ApiResponseValidationError instead of a ZodError.

Checked with pnpm run tsc, pnpm run lint, pnpm run docs:check, and the toolkit-core, mcp-core, mcp-server bundle, and mcp-cloudflare tests.

via @BYK.

--

View Session [Sentry]

@vercel

vercel Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
sentry-local Skipped Skipped Nov 3, 2026 10:47am UTC

Request Review

@github-actions github-actions Bot added the risk: medium PR risk score: medium label Nov 3, 2026
@sentry-junior
sentry-junior Bot force-pushed the ref/shared-project-settings-endpoints branch from 9dab7ae to c5db98c Compare November 3, 2026 10:34
@sentry-junior
sentry-junior Bot force-pushed the ref/shared-dashboard-release-endpoints branch from 293d3a9 to 9dbe9d7 Compare November 3, 2026 10:34
Base automatically changed from ref/shared-project-settings-endpoints to main November 3, 2026 10:47
Moves the dashboard, release, deploy, release commit, and event
committer endpoints from SentryApiService into toolkit-core's shared API
client, as is. Adds withQuery for the path-plus-optional-query pattern
the wrappers repeat.
@sentry-junior
sentry-junior Bot force-pushed the ref/shared-dashboard-release-endpoints branch from 9dbe9d7 to 2564ab5 Compare November 3, 2026 10:47
@BYK
BYK enabled auto-merge (squash) November 3, 2026 10:49
@BYK
BYK merged commit afe84ad into main Nov 3, 2026
48 of 50 checks passed
@BYK
BYK deleted the ref/shared-dashboard-release-endpoints branch November 3, 2026 11:12
BYK added a commit that referenced this pull request Nov 3, 2026
…1839)

Task 8.4 of the shared API client plan
([#1669](#1669)). This is
stacked on #1838.

This moves the cron monitor endpoints and the time range helpers from
`SentryApiService` into `toolkit-core`'s shared API client.
`SentryApiService` calls them with its Zod schemas. The code moves as
is.

- `api-client/time-params`: `normalizeStatsPeriod`, `parseStatsPeriod`,
`applyTimeParams` (`statsPeriod` or a `start`/`end` pair), and
`applyStatsMixinTimeParams` (the `since`/`until` seconds `StatsMixin`
endpoints read). It rejects a range that sets both a period and dates,
or only one end. `defaultStatsPeriod` holds the check-in list's "24
hours unless a range is given" default, which the uptime-check list
reuses in the next PR. Most other `SentryApiService` methods still call
these helpers; they now import them from `toolkit-core`.
- `endpoints/monitors`: `listMonitors`, `getMonitor` (organization or
project route), `deleteMonitorEnvironment` (a 404 still counts as
already deleted), `listMonitorCheckIns`, and `getMonitorStats`.

`@sentry/api` has no operation for monitor stats or for deleting a
monitor environment, so those wrappers stay hand-written.

**One change in behaviour:** as with #1741, a response that fails its
schema now throws the shared `ApiResponseValidationError` instead of a
`ZodError`.

Checked with `pnpm run tsc`, `pnpm run lint`, `pnpm run docs:check`, and
the toolkit-core, mcp-core, mcp-server bundle, and mcp-cloudflare tests.

<!-- junior-request-attribution:start -->
via @BYK.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!-- junior-conversation-id:agent%3Ab061171f2ec2e6cf6f09a6828cadc9fa -->

--

[View
Session](https://junior-prod.sentry.dev/conversations/agent%3Ab061171f2ec2e6cf6f09a6828cadc9fa)
[[Sentry]](https://sentry.sentry.io/explore/conversations/agent%3Ab061171f2ec2e6cf6f09a6828cadc9fa/?project=4510944073809921)

<!-- junior-session-footer:end -->

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Co-authored-by: Burak Yigit Kaya <126780+BYK@users.noreply.github.com>

This branch was previously deployed

1 inactive deployment
Preview — 2564ab5d Deployed Nov 3, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk: medium PR risk score: medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant