docs(webhooks): developer-experience polish#30
Conversation
- Add curl/JS/Python tabs to register/list/delete endpoints - Reframe delivery contract to lead with retry strength, not edge cases - Surface dashboard as a first-class peer of the API - Drop misleading TypeTooltip blocks showing methods that aren't in the payload - Small fixes: stale descriptions, redundant cards, dense single-row tables
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughFive webhook documentation files are updated to improve developer clarity and multi-language accessibility. The overview is restructured, event payload types are clarified using plain JSON literals instead of component references, management API examples are expanded to include JavaScript and Python alongside curl, and the delivery contract explanation is reformatted as a bullet-point list. ChangesWebhook Documentation Improvements
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Pull request overview
Documentation polish for the Spectrum webhooks guide: improves the developer experience by adding multi-language code samples for management endpoints, restructuring the delivery contract around its strengths, promoting the dashboard as a first-class management surface, and removing TypeTooltip references whose extracted SDK signatures (containing methods like .send()) didn't match the actual JSON-serialized webhook payloads.
Changes:
- Add
<CodeGroup>curl/JavaScript/Python tabs to register/list/delete webhook examples inmanaging-webhooks.mdx. - Replace the dense single-paragraph delivery contract with a 5-bullet "at a glance" summary and reorder for retry-strength framing.
- Replace
TypeTooltipreferences inevents.mdx.velwith literal{ id, platform }shapes that reflect the on-the-wire payload, and reframe the overview's three management surfaces (Tip → section, table → prose, Where-to-next cards trimmed).
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
webhooks/verifying-signatures.mdx |
Add Go to the languages enumerated in frontmatter description (matches existing Go snippet on line 154). |
webhooks/overview.mdx |
Promote three-management-surfaces Tip into a section, collapse single-row events table into prose, and trim the "Where to next" Columns down to two cards. |
webhooks/managing-webhooks.mdx |
Wrap each of the three webhook management endpoints in a <CodeGroup> with curl/JS/Python tabs. |
webhooks/delivery.mdx |
Replace the one-paragraph contract with a 5-bullet summary leading with retry strength. |
docs-src/webhooks/events.mdx.vel |
Drop TypeTooltip usages whose extracted SDK signatures included methods that don't survive JSON serialization; substitute literal { id, platform } types. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - **Strong retry behaviour.** Up to 4 attempts per event, with backoff on `5xx`, `408`, `429`, network errors, and worker-side timeouts. The vast majority of deliveries land on attempt 1; the retries are there for the occasional bad minute on your side. | ||
| - **Fast acknowledgement.** Any `2xx` ends it — the worker stops as soon as your server says ok. | ||
| - **Fast permanent failure.** Other `4xx` codes (`400`/`401`/`404`/etc.) are treated as fatal — we don't waste your retry budget when the request will never succeed. | ||
| - **Bounded budget.** 10-second per-attempt timeout, ~6.2 second total across all retries. If your server is still down after that, the event is logged and the worker moves on. |
| <Card title="Skim: How it works" icon="diagram-project" href="#how-it-works"> | ||
| The mechanics first, in case you'd rather build a mental model before touching code. |
Need help on this PR? Tag
@codesmithwith what you need.Summary by CodeRabbit