Repository navigation
feat(events): Declare event identifiers as typed parts - #2390
Closed
sentry-junior[bot] wants to merge 3 commits into
Closed
sentry-junior[bot] wants to merge 3 commits into
sentry-junior[bot] wants to merge 3 commits into
Conversation
A trigger could save a filter that never matches. The filter could name a field that no selected event sets, or a field that a plugin removed. For example, a GitHub issue.closed trigger with a senderId filter saved and then never ran. Match fields now take an optional `events` list: the events that set the field. `eventTriggerProblems` in plugin-api is the one check for a trigger's events and filters. Core uses it when it saves an event automation (tools and dashboard API) or a Watch, and rejects the trigger with every problem in plain words. The dashboard editor uses the same check instead of its own copy. It hides filters that a selected event does not set, and it lists the problems of a saved trigger that no longer fits the catalog. GitHub declares the events for its filters: issue comment filters are set only on issue.comment.created, deployment filters only on deployment events, and pull request filters only on pull request events. The pull request comment webhook has no head branch. Linear, Sentry, and Vercel need no declarations. Refs #2362 Co-Authored-By: David Cramer <david@sentry.io>
Address design review feedback on the unmatchable-filter check. - Merge repository match fields with mergeEventMatchFields, which unions the events lists and rejects conflicting copies of one field. - Test GitHub filter declarations against the webhook normalizers and the lazy pull request lookups, instead of against themselves. - Report a saved trigger as unavailable when eventTriggerProblems finds a problem, and list the problems in Slack details, tool results, and the dashboard. The list SQL uses the same rule. - Move the unknown resource type check into the shared plugin-api check. - Say "filter" in agent, Slack, and dashboard text. Agent errors name the match.<key> input and the plugin display name. Refs #2362 Co-Authored-By: David Cramer <david@sentry.io> Co-Authored-By: David Cramer <david@sentry.io>
Replace the regex identifier pattern on plugin resource types with named,
typed parts and a template, such as {owner}/{repo}#{number}. Square
brackets mark optional text, so GitHub deployment and release sources and
Vercel deployments keep their optional segments.
One plugin-api module builds and parses identifiers. Core uses it to reject
identifiers that do not fit their resource type, with errors that name the
wrong part. The dashboard editor shows one field per part and keeps the
stored string exact. searchEventTypes returns the template and parts.
Stored identifiers and exact-match routing do not change. Each plugin
webhook test checks that every identifier it publishes reads back from its
declared parts.
Refs #2362
Co-Authored-By: David Cramer <david@sentry.io>
Co-Authored-By: David Cramer <david@sentry.io>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
sentry-junior
Bot
force-pushed
the
feat/reject-unmatchable-filters
branch
from
October 29, 2026 20:03
f3a9979 to
7d3ed7e
Compare
24 of 28 tasks
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closed without merge. #2362 item 7 replaces this.
Item 7 removes
identifierfrom saved event automation triggers. Org, project, repo and PR become filters on event data. After that, people and the dashboard do not type identifiers for automations. Watches keep exact identifiers, but the agent gets them as exact strings from tool results. So typed identifier parts no longer solve a user problem. They would also break the public@sentry/junior-plugin-apicontract for no gain.What carries forward into item 7:
environmentand releasetagare stored percent-encoded and lowercased. Slackcurrent_channelis a placeholder, not a channel id.The original description of this PR is in the edit history.
Refs #2362
via David Cramer.
--
View Junior Session [Sentry]