Skip to content

feat(mcp): Resolve issues in a release or commit with update_issue - #2098

Merged
BYK merged 4 commits into
mainfrom
feat/update-issue-resolve-in-release
Nov 10, 2026
Merged

BYK merged 4 commits into
mainfrom
feat/update-issue-resolve-in-release

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

update_issue could only resolve an issue now (resolved) or in the next release (resolvedInNextRelease). Agents that found the release that shipped a fix (for example with find_releases) had no way to resolve the issue in that release. A plain resolved lets events from older releases reopen the issue as a regression, and next release is wrong once the fix has shipped. The Sentry issue update API and sentry issue resolve --in already support this; only the MCP tool was missing it.

This adds optional inRelease, inCommit, and inCommitRepository params. With status='resolved', they are sent as statusDetails.inRelease or statusDetails.inCommit ({commit, repository}), which StatusDetailsValidator / InCommitValidator in getsentry/sentry accept. The payload type is derived from the @sentry/api issue update body, and the CLI's ResolveStatusDetails now derives from it too instead of hand-writing the same shape.

Behavior notes:

  • The output now reports resolvedInRelease and resolvedInCommit as status values, next to the existing resolvedInNextRelease, and the effect names the release or commit. A commit that is already in a release comes back from Sentry as an in-release resolution, so the tool reports it that way.
  • Sentry's handle_resolve_in_release skips groups that are already resolved. So resolving an issue in the release or commit it is already resolved in is a no-op (updated: false, no PUT). Asking for a different release or commit on a resolved issue, including a resolvedInNextRelease one, returns an input error that says to set status='unresolved' first, the same way the tool handles switching ignore modes. Before this, that request returned a silent updated: false.
  • Once a release contains the resolving commit, the issue details show only inRelease. For an inCommit request on such an issue, the tool reads the newest resolve activity and treats a set_resolved_in_commit for the same SHA as already applied, so retries stay idempotent.
  • update_issue's description had about 110 characters left under the 2048 limit, so the tool description gets one short hint and the param descriptions carry the details.

Source: user feedback MCP-SERVER-GKR.

via @bruno-garcia, @BYK.

--

View Session in Sentry

sentry-junior Bot and others added 2 commits November 7, 2026 21:03
Add optional inRelease, inCommit, and inCommitRepository params to
update_issue and send them as statusDetails, matching what the Sentry
issue update API already accepts.

Co-Authored-By: Bruno Garcia <1633368+bruno-garcia@users.noreply.github.com>
Sentry does not change the resolution of an issue that is already
resolved, so report updated=false with the current status instead of
raising an input error.

Co-Authored-By: Bruno Garcia <1633368+bruno-garcia@users.noreply.github.com>
@vercel

vercel Bot commented Nov 7, 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 10, 2026 10:29am UTC

Request Review

@github-actions github-actions Bot added the risk: medium PR risk score: medium label Nov 7, 2026

@cursor cursor Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

@bruno-garcia
bruno-garcia requested a review from BYK November 10, 2026 02:27
Sentry skips groups that are already resolved, so asking update_issue to
resolve one in a different release or commit silently did nothing. That
includes moving a resolvedInNextRelease issue to the release that
shipped. Return an input error that says to unresolve first, as the
tool already does for ignore mode switches. A matching resolution is
still a no-op.

Derive IssueResolutionDetails and the CLI's ResolveStatusDetails from
the @sentry/api issue update body instead of hand-writing the shape.

Co-Authored-By: BYK <126780+BYK@users.noreply.github.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 7dd39df. Configure here.

Once a release contains the resolving commit, Sentry reports the issue
as resolved in that release and the issue details drop the commit. A
retry of the same inCommit then looked like a different resolution and
update_issue threw. For an inCommit request on an issue resolved in a
release, read the newest resolve activity and treat the request as
already applied when it is set_resolved_in_commit for the same SHA.
@BYK
BYK merged commit a681366 into main Nov 10, 2026
36 checks passed
@BYK
BYK deleted the feat/update-issue-resolve-in-release branch November 10, 2026 12:11

This branch was successfully deployed

1 active and 1 inactive deployments
Actions — 7acb4bb6 Deployed Nov 10, 2026 by sentry-junior[bot] via eval #1763
Preview — 7acb4bb6 Deployed Nov 10, 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.

2 participants