Skip to content

feat(pagerduty): Add read-only PagerDuty plugin - #2236

Merged
dcramer merged 2 commits into
mainfrom
feat/pagerduty-plugin
Oct 26, 2026
Merged

dcramer merged 2 commits into
mainfrom
feat/pagerduty-plugin

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Adds @sentry/junior-pagerduty, a manifest-only plugin so Junior can answer on-call questions (who is on call, who rotates in/out, next handoff) plus schedule, escalation policy, service, team, and incident lookups.

Refs #2233

How it works

  • plugin.yaml declares api.pagerduty.com and an Authorization: Token token=${PAGERDUTY_API_KEY} API header. This is the same egress-proxy pattern as the Datadog plugin: the host adds the key, and the sandbox never sees it.
  • The pagerduty skill calls the REST API with curl and uses only GET. The deployment key is the real read-only boundary, so use an account-level General Access key with Read-only API Key enabled. It is tied to the PagerDuty account, not to a user.
  • No core changes.

Why REST and not PagerDuty's hosted MCP (mcp.pagerduty.com/mcp)

  • The hosted MCP accepts the same Token token= header, but Junior's manifest parser rejects Authorization in mcp.headers. Using it would need a core change.
  • The hosted server can't filter tools, so every manage_* write tool would be exposed unless we set allowed-tools.
  • We can switch later if we want the MCP tool surface.

Scope limits

  • US region only. EU accounts (api.eu.pagerduty.com) need a manifest change.

Checks

  • pnpm release:check: OK (19 packages aligned)
  • pnpm skills:check: passed
  • publint packages/junior-pagerduty: all good
  • Prettier on the changed files: clean
  • I parsed the manifest with parsePluginManifest and resolveApiHeaderTransforms (one-off script, not committed). The result was api.pagerduty.com with Authorization: Token token=<key>.

Not verified

  • I have not made a live PagerDuty API call yet, because there is no key. Rollout: set PAGERDUTY_API_KEY in junior-prod, add @sentry/junior-pagerduty to its plugin set, then ask "who is on call for and who's next?"

via David Cramer.

--

View Junior Session [Sentry]

Add @sentry/junior-pagerduty, a manifest-only plugin that injects a
deployment-level PagerDuty REST API key on sandbox requests to
api.pagerduty.com. The bundled skill covers on-call, handoff, schedule,
escalation policy, service, team, and incident lookups with GET requests.

Refs #2233

Co-Authored-By: David Cramer <david@sentry.io>
@vercel

vercel Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
junior-docs Ready Ready Preview Oct 26, 2026 7:35pm UTC

Request Review

@sentry-evals

sentry-evals Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Sentry Evals

junior-behavioral

Run Status Passed Failed Errored Cost Tokens Duration
Head Failed 74 1 0 $0.86 0 342.58s

Base commit 2384643 has no eval run to compare against.

junior-integration

Run Status Passed Failed Errored Cost Tokens Duration
Head Passed 101 0 0 $0.85 0 302.94s

Base commit 2384643 has no eval run to compare against.

Co-Authored-By: David Cramer <david@sentry.io>
@dcramer
dcramer marked this pull request as ready for review October 26, 2026 19:36
@github-actions github-actions Bot added the risk: high PR risk score: high label Oct 26, 2026
@dcramer
dcramer enabled auto-merge (squash) October 26, 2026 19:53
@dcramer
dcramer merged commit 78b025b into main Oct 26, 2026
51 checks passed
@dcramer
dcramer deleted the feat/pagerduty-plugin branch October 26, 2026 19:54

This branch was successfully deployed

1 active deployment
Preview – junior-docs — f49d080f Deployed Oct 26, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk: high PR risk score: high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant