-
-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Conversation
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
markstory
reviewed
Mar 8, 2019
src/sentry/static/sentry/app/components/group/externalIssueActions.jsx
Outdated
Show resolved
Hide resolved
src/sentry/static/sentry/app/components/group/externalIssueActions.jsx
Outdated
Show resolved
Hide resolved
b719adb
to
d5b41dc
Compare
MeredithAnya
requested changes
Mar 15, 2019
src/sentry/static/sentry/app/components/group/externalIssueForm.jsx
Outdated
Show resolved
Hide resolved
d5b41dc
to
9a710d9
Compare
src/sentry/api/endpoints/sentry_app_installation_external_issues.py
Outdated
Show resolved
Hide resolved
src/sentry/static/sentry/app/stores/sentryAppInstallationsStore.jsx
Outdated
Show resolved
Hide resolved
5c7d690
to
14b4f94
Compare
MeredithAnya
approved these changes
Mar 18, 2019
This change takes care of dynamically rendering the Link and Create forms for Sentry Apps that support Issue Link components.
14b4f94
to
f840d10
Compare
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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
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 ofExternalIssuesList
, instead of usinggetEndpoints
. 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
ExternalIssueForm
into it's own file.IssueSyncElement
toIssueSyncListElement
to match its filename and how other components were consuming it.filter
Sentry App Components via the API.