Skip to content

[pull] master from getsentry:master#1844

Merged
pull[bot] merged 15 commits into
KingDEV95:masterfrom
getsentry:master
Apr 2, 2026
Merged

[pull] master from getsentry:master#1844
pull[bot] merged 15 commits into
KingDEV95:masterfrom
getsentry:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 2, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

Zylphrex and others added 15 commits April 1, 2026 22:02
This adds seerDrawer=true to the url so the drawer stays open when
sharing.
This takes advantage of the new `ParameterizationRegex.replacement_callback` option[1], to fix a number of problems with our IPv6 parameterization.

Our IP regexes are already quite complicated, and were still missing many of the potential IPv6 formats. From the research I did, it seems the consensus view is that the IPv6 rules are sufficiently complicated that it's hard to create a regex incorporating all of them. Given that, this PR opts to loosen the IP regexes to that they identify IP-like strings. It then uses the new replacement callback option to pass those potential matches to a new helper, `is_valid_ip`, which uses Python's built-in `ipaddress` functions to check if the string actually is a valid IP address. If it is, the callback returns the normal `<ip>` replacement string. If it's not, it returns the original value untouched.

Because the new parameterization method may trigger the false positive fallback handling added in #111948, this also includes a test of that behavior.

Note: Since IPv6 strings include colons, the new looser regex now can match strings which should be considered times instead. The new IP regex has therefore been moved after the datetime regex, to prevent that from happening.


[1] #111352
…tend) (#111851)

Currently GitHub Copilot coding agent handoff is a permission set at the
user-level as users must choose to connect their github account.
However, after some discussion we think copilot integration should have
to be allowed at the organization admin in line with how cursor and
claude operate. Since copilot does not need an api key or any
credentials, this PR creates a DirectEnableIntegration which skips the
pop up stage and enables the integration. Only if this is enabled are
users within the org provided access to "Setup/Send to GitHub Copilot"
option for the handoff dropdown.

This is an intermediate fix for now. There are several changes planned
for coding integration settings that would likely make this unnecessary.
Additionally, we only launched EA of copilot in the last couple of
weeks, this should not be merged or put out until we decide how we would
like to inform our current users that this will break their setup
(minimally).

This frontend PR follows #111850


https://github.com/user-attachments/assets/24f3c665-0ae8-4a4b-8347-5c92752f3d56
…t response (#111976)

Adds the ability for users to approve snapshot comparison results via a
new API endpoint, and surfaces approval status in the snapshot details
response.

**Approve endpoint** (`POST /preprodartifacts/{id}/approve/`):
- Accepts a `feature_type` (`snapshots` or `size`) and creates an
`APPROVED` record for the requesting user
- Cleans up any existing `NEEDS_APPROVAL` records for that
artifact/feature
- Re-triggers the relevant status check task so the VCS commit status
updates immediately

**Snapshot response changes**:
- Adds `approval_info` to the snapshot details response containing the
current approval status (`approved` or `requires_approval`) and a list
of approvers
- Supports both Sentry users and GitHub users (via `extras` on the
approval record) with avatar URLs

Stacked on #111803
The API version of the installation step doesn't need the list of
organizations to include the 'new' organization step.
Add the frontend approval workflow UI to the snapshot detail header.
This replaces the temporary `SnapshotDevTools` component with a
production-ready `SnapshotHeaderActions` component.

The new header actions show:
- **Approval status**: "Approved" tag with approver avatars, or
"Requires approval" tag with an approve button
- **Overflow menu**: Delete with confirmation dialog, and admin-only
re-run comparison action (gated to Sentry employees)
- Proper error handling with staff permission redirects (403 → re-auth
flow)

New `SnapshotApprovalInfo` and `SnapshotApprover` types added to match
the API response from #111976.

Stacked on #111976.


Screenshot for a snapshot that needs approval:
<img width="3524" height="2944" alt="CleanShot 2026-04-01 at 13 07
45@2x"
src="https://github.com/user-attachments/assets/96870a1c-997c-403d-b3ac-879b34ab1699"
/>


Screenshot for an approved snapshot:
<img width="3604" height="2948" alt="CleanShot 2026-04-01 at 12 55
48@2x"
src="https://github.com/user-attachments/assets/0c92ff8d-4a9e-464d-b029-dbea69d0015b"
/>

within the "...":
<img width="518" height="376" alt="CleanShot 2026-04-01 at 13 03 28@2x"
src="https://github.com/user-attachments/assets/0060c4d6-8a55-4180-b8e3-5799ad772b3d"
/>
similar to #112010 tsc was
starting to bump up against the old limit
…kwards compatible endpoint flags (#112063)

We are using several flags to control rollout of the issue alert rule
backwards compatible endpoints so it'd be simpler to combine them to use
one flag now that they are all GA'd.

Step 1: This PR - add the new flag
Step 2: options automator PR - enable the new flag for GA
Step 3: replace usage of
`organizations:workflow-engine-projectrulesendpoint-get`,
`organizations:workflow-engine-projectruledetailsendpoint-get`, and
`organizations:workflow-engine-projectrulegroupstats-get` with this new
flag
# Description
Add basic type for `DetectorInput` which matches the expected input on
the validator. Created a space to define the `DataSourceInput`, right
now I just want to make sure it's passed into the detector input as
expected.
Correctly inline pad line numbers, use subgrid instead of a grid for
each row. Fixes line number position when single digit, looks a little
better

before

<img width="408" height="220" alt="image"
src="https://github.com/user-attachments/assets/2cf5cde1-9e3b-4a80-b3b7-8259a13ef888"
/>

after
<img width="394" height="239" alt="image"
src="https://github.com/user-attachments/assets/eb693ab7-a7ec-4c58-9b48-45b51eb5c71c"
/>

long line numbers are bout the same before/after

<img width="408" height="225" alt="image"
src="https://github.com/user-attachments/assets/14922421-d0a6-4832-b5ae-2ce758d6a442"
/>
… creation (#112068)

When creating a workflow with a GH ticket creation action you must pass
`data` to it but the docs don't have an example of what that might look
like. This PR adds an example.

Note that we still have a
[bug](https://linear.app/getsentry/issue/ISWF-2265/create-gh-issue-action-api-accepts-empty-data-object-when-front-end)
where we accept an empty `data` dict on the backend, but the front end
prevents this from being submitted as it's not actually valid.
…112076)

React Query defaults to 3 retries with exponential backoff (~1s, ~2s,
~4s) on failed queries. When accessing a non-existent or inaccessible
snapshot, the backend returns 404 almost instantly, but the frontend
waited ~8 seconds retrying before showing the error page.

This skips retries on 4xx responses (which won't resolve on retry) while
preserving retries for 5xx/network errors. Also replaces the plain text
error message with the `BuildError` component used elsewhere in preprod
for a more polished, consistent error experience.

Closes EME-918

also improved the UI
<img width="3312" height="2634" alt="CleanShot 2026-04-01 at 17 10
50@2x"
src="https://github.com/user-attachments/assets/da818d4a-76e1-4069-843c-cbe7fff965a2"
/>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…kill (#112074)

Adds the `/generate-snapshot-tests` skill and uses it to generate a
snapshot test for InputGroup
@pull pull Bot locked and limited conversation to collaborators Apr 2, 2026
@pull pull Bot added the ⤵️ pull label Apr 2, 2026
@pull pull Bot merged commit 80ea582 into KingDEV95:master Apr 2, 2026
@github-actions github-actions Bot added Scope: Frontend Automatically applied to PRs that change frontend components Scope: Backend Automatically applied to PRs that change backend components labels Apr 2, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

⤵️ pull Scope: Backend Automatically applied to PRs that change backend components Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.