feat(pagerduty): Add API-driven pipeline backend for PagerDuty integration setup#113103
Conversation
…ation setup Implement get_pipeline_api_steps() on PagerDutyIntegrationProvider with a single installation redirect step. The step returns the PagerDuty app install URL and accepts the JSON config param from the callback. Adds JSON validation on the serializer to catch malformed config before it reaches build_integration(). Refs [VDY-84](https://linear.app/getsentry/issue/VDY-84/pagerduty-api-driven-integration-setup)
5d2cbad to
6f1e1b5
Compare
|
🚨 Warning: This pull request contains Frontend and Backend changes! It's discouraged to make changes to Sentry's Frontend and Backend in a single pull request. The Frontend and Backend are not atomically deployed. If the changes are interdependent of each other, they must be separated into two pull requests and be made forward or backwards compatible, such that the Backend or Frontend can be safely deployed independently. Have questions? Please ask in the |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 6f1e1b5. Configure here.
| component: PagerDutyInstallStep, | ||
| }, | ||
| ], | ||
| } as const satisfies PipelineDefinition; |
There was a problem hiding this comment.
PagerDuty pipeline not registered in frontend registry
High Severity
pagerDutyIntegrationPipeline is exported from pipelineIntegrationPagerDuty.tsx but never imported or added to PIPELINE_REGISTRY in registry.tsx. Every other integration (AWS Lambda, Bitbucket, GitHub, GitLab, Slack) is registered there. Without this entry, getPipelineDefinition('integration', 'pagerduty') will throw at runtime, making the API-driven pipeline completely non-functional on the frontend.
Reviewed by Cursor Bugbot for commit 6f1e1b5. Configure here.
| advance({config: data.config ?? ''}); | ||
| }, | ||
| [advance] | ||
| ); |
There was a problem hiding this comment.
Callback advances with empty string on missing config
Low Severity
The handleCallback unconditionally calls advance({config: data.config ?? ''}), sending an empty string to the backend if data.config is undefined. Other integrations like Bitbucket guard against missing data by checking before advancing. While the backend JSON validation catches this, the user gets a confusing validation error instead of the step simply waiting for valid callback data.
Reviewed by Cursor Bugbot for commit 6f1e1b5. Configure here.


Implement get_pipeline_api_steps() on PagerDutyIntegrationProvider with
a single installation redirect step. The step returns the PagerDuty app
install URL and accepts the JSON config param from the callback. Adds
JSON validation on the serializer to catch malformed config before it
reaches build_integration().
Refs VDY-84