feat(triggers): add Atlassian triggers for Jira, JSM, and Confluence#4211
feat(triggers): add Atlassian triggers for Jira, JSM, and Confluence#4211waleedlatif1 merged 5 commits intostagingfrom
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryMedium Risk Overview Updates the webhook processing pipeline to support these events: registers a new Docs and integration metadata are updated to reflect the new trigger counts/options, and trigger output schemas are extended (e.g., user fields, ADF comment bodies, additional entities like sprint/project/version). Reviewed by Cursor Bugbot for commit 0684382. Configure here. |
Greptile SummaryThis PR adds 21 new Atlassian webhook triggers across Jira (9), JSM (5), and Confluence (7), introduces a dedicated JSM webhook provider handler that reuses Jira's HMAC validation, and extends idempotency deduplication with the All findings are P2 (non-blocking style/accuracy suggestions). The implementation is consistent with existing trigger patterns and registry wiring. Confidence Score: 5/5Safe to merge — no P0/P1 issues; all findings are P2 style/accuracy suggestions 21 new triggers are correctly wired across utils, registry, block definitions, and barrel exports. Event matching, idempotency extraction, and HMAC reuse are all implemented consistently with existing patterns. The two P2 findings (trigger description mismatch for user_reactivated, TriggerOutput.description ambiguity) are non-blocking and do not affect runtime behavior. apps/sim/triggers/confluence/utils.ts (user_created event map), apps/sim/triggers/types.ts (description type dual use) Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Atlassian Webhook POST] --> B{Provider?}
B -->|jira| C[jiraHandler]
B -->|jsm| D[jsmHandler]
B -->|confluence| E[confluenceHandler]
C --> C1{triggerId?}
C1 -->|comment_*| C2[extractCommentData]
C1 -->|worklog_*| C3[extractWorklogData]
C1 -->|sprint_*| C4[extractSprintData]
C1 -->|project_created| C5[extractProjectData]
C1 -->|version_released| C6[extractVersionData]
C1 -->|jira_webhook / none| C7[full payload passthrough]
C1 -->|issue_*| C8[extractIssueData]
D --> D1{triggerId?}
D1 -->|jsm_request_commented| D2[extractCommentData]
D1 -->|jsm_webhook / none| D3[full payload passthrough]
D1 -->|jsm_request_resolved| D5{changelog status resolved/done/closed?}
D1 -->|other| D4[extractRequestData]
D5 -->|yes| D6[fire trigger]
D5 -->|no| D7[skip]
E --> E1{triggerId?}
E1 -->|confluence_label_*| E2[extractLabelData]
E1 -->|page_permissions_updated| E3[extractPagePermissionsData]
E1 -->|user_created| E4[extractUserData]
E1 -->|confluence_webhook| E5[full payload passthrough]
E1 -->|other| E6[extractPageData]
C2 & C3 & C4 & C5 & C6 & C7 & C8 --> F[Workflow Execution]
D2 & D3 & D4 & D6 --> F
E2 & E3 & E4 & E5 & E6 --> F
Reviews (4): Last reviewed commit: "fix(triggers): correct comment.body type..." | Re-trigger Greptile |
0da0481 to
27c6424
Compare
- Jira: add 9 new triggers (sprint created/started/closed, project created, version released, comment updated/deleted, worklog updated/deleted) - JSM: add 5 triggers from scratch (request created/updated/commented/resolved, generic webhook) - Confluence: add 7 new triggers (comment updated, attachment updated, page/blog restored, space removed, page permissions updated, user created) - Add JSM webhook provider handler with HMAC validation and changelog-based event matching - Add Atlassian webhook identifier to idempotency service for native dedup - Add extractIdempotencyId to Confluence handler - Fix Jira generic webhook to pass through full payload for non-issue events - Fix output schemas: add description (ADF), updateAuthor, resolution, components, fixVersions, worklog timestamps, note emailAddress as Jira Server only
27c6424 to
48e69b3
Compare
… extract functions
|
@greptile |
|
@cursor review |
… cast JSM extractIdempotencyId now prioritizes comment.id over issue.id for comment_created events, matching Jira's documented webhook payload structure. Also fixes type cast for confluence extract function calls.
|
@greptile |
|
@cursor review |
…escription type - JSM webhook comment.body changed from string to json (ADF format) - Widened TriggerOutput.description to accept TriggerOutput objects, removing unsafe `as unknown as string` casts for Jira description fields
|
@greptile |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 0684382. Configure here.
Summary
x-atlassian-webhook-identifierto idempotency service for native Atlassian dedupextractIdempotencyIdto Confluence handlerType of Change
Testing
Tested manually. Type check passes. All trigger IDs verified consistent across utils, registry, block wiring, and barrel exports.
Checklist