Skip to content

feat(app-platform): Issue Link UI #12345

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 18, 2019
Merged

feat(app-platform): Issue Link UI #12345

merged 1 commit into from
Mar 18, 2019

Conversation

mnoble
Copy link
Contributor

@mnoble mnoble commented Mar 8, 2019

TL;DR: Adds the necessary UI components (and some backend pieces) to render a Sentry App's "Issue Link" integration alongside the explicit ones for JIRA/GitHub/Azure/etc.

Summary

This essentially adds copies of the existing "External Issue" components. It adds copies, instead of modifying the existing ones, because the existing ones are so tightly coupled with Integrations that it'd be a nightmare to tease apart, but also very messy (I tried).

Preparing Sentry App Components

When we request the list of Sentry App Components for an Org, we preemptively "prepare" them. Many of these components require making a request to the Sentry App service to get things like SelectField options. We do this ahead of time, instead of JIT, so that if something goes wrong in the process, we can gracefully handle the error by simply not rendering the React component at all.

Not Using getEndpoints()

To retrieve the above, prepared, data we explicitly make a request using this.api inside of ExternalIssuesList, instead of using getEndpoints. We do this so that we can control what happens when an error arises (since this process potentially includes two distributed systems). When this does happen, we simply don't render anything.

Handling every error condition when there's two systems, one of which we have no control over, is not realistically achievable, so we bank on this conservative approach.

Minor Changes

  • Moved ExternalIssueForm into it's own file.
  • Renamed IssueSyncElement to IssueSyncListElement to match its filename and how other components were consuming it.
  • Added the ability to filter Sentry App Components via the API.

@mnoble mnoble force-pushed the app-platform/issue-link-ui branch 5 times, most recently from b719adb to d5b41dc Compare March 15, 2019 17:46
@mnoble mnoble force-pushed the app-platform/issue-link-ui branch from d5b41dc to 9a710d9 Compare March 15, 2019 17:53
@mnoble mnoble force-pushed the app-platform/issue-link-ui branch 2 times, most recently from 5c7d690 to 14b4f94 Compare March 15, 2019 22:49
This change takes care of dynamically rendering the Link and Create
forms for Sentry Apps that support Issue Link components.
@mnoble mnoble force-pushed the app-platform/issue-link-ui branch from 14b4f94 to f840d10 Compare March 18, 2019 19:43
@mnoble mnoble merged commit 27adc79 into master Mar 18, 2019
@mnoble mnoble deleted the app-platform/issue-link-ui branch March 18, 2019 21:33
mitsuhiko pushed a commit that referenced this pull request Mar 18, 2019
This change takes care of dynamically rendering the Link and Create
forms for Sentry Apps that support Issue Link components.
jan-auer added a commit that referenced this pull request Mar 19, 2019
* master: (36 commits)
  Revert "feat(app-platform): Open in stacktrace button (#12401)"
  fix(app-platform): Unsubscribe from Store changes (#12445)
  feat(app-platform): Open in stacktrace button (#12401)
  ref(project transfer): Add explanatory sentence to modal (#12427)
  feat(features): Add org saved searches [SEN-355] (#12441)
  add project to payload (#12407)
  feat(app-platform): Issue Link UI (#12345)
  fix(api): Fix bug where parser didn't allow dates ending in `Z`, and didn't correctly report the parse fail to the user (ISSUE-376)
  Add enhanced privacy to feedback (#12418)
  fix: Add sentry tag to renormalized events (#12434)
  dev: Ensure docker binds to an interface
  EventCommon mixin for common event functionality (#12422)
  build(webpack): Only show errors in webpack output (#12425)
  ref(ui): Remove unused utils (#12424)
  ref: Sample to_python calls 2 (#12375)
  feat(eventtypes): Keep value retained for synthetic errors (#12355)
  fix: Fix UI side to deal with invalid values (#12433)
  ref(grouping): Added initial pass of new grouping algorithm (#12414)
  build(webpack): Fix incremental webpack builds (upgrade to node@8.15.1) (#12408)
  Revert "feat: Common functionality for Snuba Events (#11071)" (#12421)
  ...
mitsuhiko added a commit that referenced this pull request Mar 20, 2019
…12432)

* feat(grouping): Add project option to force grouping and persit it

* feat(grouping): Expose the grouping config forcing through the api

* ref: Improved grouping config selectiong

* feat(grouping): Add grouping config to the UI (feature flagged)

* meta: Bump semaphore to 0.4.20

* ref: Move grouping config freeze into normalize and change apis

* ref: Cleaned up config code

* ref: Add config ID to the grouping info output

* fix(api): Fix bug where parser didn't allow dates ending in `Z`, and didn't correctly report the parse fail to the user (ISSUE-376)

Our parser didn't allow for dates with `Z` at the end, so updated the regex to allow. Also fixed a
bug where if a date started with a valid date but ended with invalid input then we'd create a search
filter from the valid input, then shove the invalid input into `message` rather than raising a parse
error.

Fixes (ISSUE-376)

* Add enhanced privacy to feedback (#12418)

* feat(app-platform): Issue Link UI (#12345)

This change takes care of dynamically rendering the Link and Create
forms for Sentry Apps that support Issue Link components.

* add project to payload (#12407)

* feat: Added grouping selector on grouping info page

* feat: Added tooltip

* test: Improve test coverage for grouping

* ref: Slightly improved native grouping

* ref: More cleanup in new grouping algorithm

* ref: rename a misnamed function
@github-actions github-actions bot locked and limited conversation to collaborators Dec 20, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants