Skip to content

feat(pagerduty): Add API-driven pipeline backend for PagerDuty integration setup#113103

Open
evanpurkhiser wants to merge 1 commit intomasterfrom
evanpurkhiser/feat-pagerduty-add-api-driven-pipeline-backend-for-pagerduty-integration-setup
Open

feat(pagerduty): Add API-driven pipeline backend for PagerDuty integration setup#113103
evanpurkhiser wants to merge 1 commit intomasterfrom
evanpurkhiser/feat-pagerduty-add-api-driven-pipeline-backend-for-pagerduty-integration-setup

Conversation

@evanpurkhiser
Copy link
Copy Markdown
Member

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

@evanpurkhiser evanpurkhiser requested review from a team as code owners April 15, 2026 20:12
@linear-code
Copy link
Copy Markdown

linear-code bot commented Apr 15, 2026

@evanpurkhiser evanpurkhiser requested review from a team and removed request for a team April 15, 2026 20:12
@github-actions github-actions bot added the Scope: Backend Automatically applied to PRs that change backend components label Apr 15, 2026
…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)
@evanpurkhiser evanpurkhiser force-pushed the evanpurkhiser/feat-pagerduty-add-api-driven-pipeline-backend-for-pagerduty-integration-setup branch from 5d2cbad to 6f1e1b5 Compare April 15, 2026 21:47
@evanpurkhiser evanpurkhiser requested a review from a team as a code owner April 15, 2026 21:47
@github-actions github-actions bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Apr 15, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🚨 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 #discuss-dev-infra channel.

Copy link
Copy Markdown
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ 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;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 6f1e1b5. Configure here.

advance({config: data.config ?? ''});
},
[advance]
);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 6f1e1b5. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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.

1 participant