Skip to content

feat(github): Publish issue.updated for issue edits, labels, assignees, and milestones - #2621

Open
sentry-junior[bot] wants to merge 1 commit into
mainfrom
feat/github-issue-updated-events
Open

sentry-junior[bot] wants to merge 1 commit into
mainfrom
feat/github-issue-updated-events

Conversation

@sentry-junior

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

Copy link
Copy Markdown
Contributor

Issue Watches already get issue.comment.created, issue.closed, and issue.reopened. They did not get any other change to the issue. This adds one issue.updated event for the rest of the issues webhook actions that matter:

  • edited (title or body), labeled / unlabeled, assigned / unassigned, milestoned / demilestoned

Behavior:

  • The trusted summary names the change and who made it, such as GitHub issue getsentry/junior#946 was assigned to bob by jane. Label and milestone names are repository-controlled text, so they go in untrustedText with the title and body.
  • Updates that the App makes publish nothing. Without this, Junior's own updateIssue label/assignee changes would wake the conversation that watches the issue.
  • Issue Watches suggest issue.updated. Repository Watches support it but do not suggest it, because updates are frequent across a repository.
  • Event data stays repo + issue, so existing filters and reach (repo required) apply unchanged.

The issues webhook already delivers these actions to the App, so no App permission or webhook subscription change is needed.

To keep webhooks/events.ts under the 1,000-line limit, the new normalizer lives in webhooks/issue-update.ts, and four small shared helpers (gitHubDoneBy, nonBlank, titleAndBodyText, providerTime) moved to webhooks/event-targets.ts unchanged.

Open question: no change-kind match field (such as "only labeled") yet. One event plus the summary is enough for watches; add a filter when an automation needs it.

via @dcramer.

--

View Session [Sentry]

…s, and milestones

Issue Watches could get comments and open/close/reopen, but not other
changes. Normalize the edited, labeled, unlabeled, assigned, unassigned,
milestoned, and demilestoned actions of the issues webhook into one
issue.updated event. Issue Watches suggest it; repository Watches support
it but do not suggest it. Updates that the App makes publish nothing, so
Junior does not wake itself with its own issue edits.

Co-Authored-By: David Cramer <23610+dcramer@users.noreply.github.com>
@vercel

vercel Bot commented Nov 3, 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 Nov 3, 2026 4:26pm UTC

Request Review

This branch was successfully deployed

1 active deployment
Preview – junior-docs — 8875346a 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: high PR risk score: high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant