DashboardsentrySession 1M0IZXcT4bWM

Session 1M0IZXcT4bWM

Full ID: 1M0IZXcT4bWM5FuIx
Messages: 19
Distillations: 0
Time range: 2026-05-19 17:00:06 — 2026-05-19 17:02:24

Conversation (19 messages)

You are reviewing PR #115603 on getsentry/sentry (branch BYK/chore/add-jira-forge-manifest). Be thorough and critical — the author is asking you to find any remaining issues before merging.

Review the following aspects:

  1. The manifest file at /home/byk/Code/getsentry/sentry/src/sentry/integrations/jira/forge/manifest.yml — check for correctness, consistency with the existing Connect descriptor, missing fields, security concerns
  2. The PR description — run gh pr view 115603 to see it. Check if it's accurate, complete, and follows Sentry conventions
  3. Consistency with the existing Connect descriptor — read /home/byk/Code/getsentry/sentry/src/sentry/integrations/jira/endpoints/descriptor.py and compare every field/URL/key with the Forge manifest. Flag any discrepancies.
  4. The icon URL change — the manifest now uses https://sentry.io/_static/dist/sentry/entrypoints/logo-sentry.svg. Verify this is a valid stable URL by checking how get_frontend_app_asset_url in src/sentry/utils/assets.py constructs the non-hashed path. Consider: does sentry.io serve /_static/dist/sentry/entrypoints/logo-sentry.svg or does it only serve the hashed version?
  5. The issue-details URL — confirm /extensions/jira/issue-details/{issue.key}/ is correctly registered in src/sentry/integrations/jira/urls.py
  6. Missing items — check if the Forge manifest is missing any modules/webhooks/scopes that the Connect descriptor provides (e.g., search endpoints, issue create/link/delete endpoints, dynamic content properties)
  7. The name field — the manifest has value: 'Sentry ' with a trailing space. Check if the Connect descriptor has the same.

Return a detailed review with:

  • Each finding categorized as CRITICAL / MEDIUM / LOW / NIT
  • Whether the PR should be merged as-is, or needs changes first
  • Specific suggestions for any changes needed
gateway · 2026-05-19 17:00:06

I'll start by gathering all the information needed for a thorough review.

claude-opus-4-6 · 2026-05-19 17:00:06 · ~25 tokens

[tool results provided]

gateway · 2026-05-19 17:00:20

Now let me check a few more things to complete the review:

claude-opus-4-6 · 2026-05-19 17:00:20 · ~20 tokens

[tool results provided]

gateway · 2026-05-19 17:00:32

Let me check the JIRA_KEY value and a few more details:

claude-opus-4-6 · 2026-05-19 17:00:32 · ~19 tokens

[tool results provided]

gateway · 2026-05-19 17:00:41

[tool results provided]

gateway · 2026-05-19 17:00:51

Now let me check the web URL mounting to confirm the full path prefix, and verify the Connect descriptor's name field vs the manifest:

claude-opus-4-6 · 2026-05-19 17:00:51 · ~46 tokens

[tool results provided]

gateway · 2026-05-19 17:01:00

Let me check the set_badge function to understand how entity properties work, and verify the Connect descriptor's name field more carefully:

claude-opus-4-6 · 2026-05-19 17:01:00 · ~49 tokens

[tool results provided]

gateway · 2026-05-19 17:01:07

Now I have all the information needed. Let me also check the old lore entry about the URL discrepancy to understand the current state:

claude-opus-4-6 · 2026-05-19 17:01:07 · ~46 tokens

[tool results provided]

gateway · 2026-05-19 17:01:22

Now I have everything needed. Let me also check whether the lore entry about the URL discrepancy is now stale (since this PR appears to fix it):

claude-opus-4-6 · 2026-05-19 17:01:22 · ~49 tokens

[tool results provided]

gateway · 2026-05-19 17:01:28

Now let me verify one last critical thing — whether the _static/dist/sentry/entrypoints/logo-sentry.svg URL is actually stable on sentry.io or if it gets hashed:

claude-opus-4-6 · 2026-05-19 17:01:28 · ~55 tokens

[tool results provided]

gateway · 2026-05-19 17:02:24

Now I have all the information needed to write a thorough review. Let me compile my findings.


PR #115603 Review: chore(jira): Add Forge app manifest for Connect-to-Forge migration

Summary

This PR adds an Atlassian Forge manifest.yml for migrating the existing Jira Connect app to Forge. The manifest wraps the Connect app as a Forge remote app, proxying all requests back to sentry.io. The PR is a single new file addition with no code changes.


Finding 1: name field has trailing space — 'Sentry '

Severity: LOW

Line 40 of the manifest:

      name:
        value: 'Sentry '

The Connect descriptor at descriptor.py:76 also has:

"name": {"value": "Sentry "},

So these are consistent — both have the trailing space. However, this trailing space in the app name displayed as the issue context panel title is almost certainly an accidental artifact. It's pre-existing and not introduced by this PR, but worth noting as a follow-up cleanup (in both files simultaneously).

Verdict: Not a blocker — consistent with Connect descriptor. Consider a follow-up to trim both.


Finding 2: Icon URL hardcoded to https://sentry.io/_static/dist/sentry/entrypoints/logo-sentry.svg

Severity: LOW

I verified this URL live:

HTTP/2 200
content-type: image/svg+xml
cache-control: max-age=0, must-revalidate

The URL works and returns the SVG correctly. Here's why:

  • get_frontend_app_asset_url("sentry", "entrypoints/logo-sentry.svg") constructs the path using STATIC_FRONTEND_APP_URL (/_static/dist/), producing /_static/dist/sentry/entrypoints/logo-sentry.svg when no frontend-versions.json is present, or the hashed variant (/_static/dist/sentry/entrypoints-hashed/<hash>.svg) when it is.
  • On sentry.io, where frontend-versions.json IS present, the Connect descriptor dynamically resolves to the hashed path at request time. But sentry.io also serves the unhashed path with `cache-control: ...
claude-opus-4-6 · 2026-05-19 17:02:24 · ~3.0K tokens