Skip to content

incident-io: add 34 doc-sourced samples - #77

Merged
garethx merged 1 commit into
mainfrom
samples-incident-io
Oct 28, 2026
Merged

garethx merged 1 commit into
mainfrom
samples-incident-io

Conversation

@garethx

@garethx garethx commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

New provider: incident.io, incident management and on-call (Hookdeck source type INCIDENT_IO). This is the last stage of the add-a-source pipeline. Before it came the skill (hookdeck/webhook-skills#243), the registry row (hookdeck/webhook-registry#124) and the check record (hookdeck/webhook-registry-checks#32).

  • Bodies: 34 complete example deliveries, one per event type, verbatim from the webhooks map of docs.incident.io/openapi/webhooks.json. Each one is that entry's responses.200.content.application/json.example. None is elided: no comments, no ..., no "string" placeholders.
  • The envelope is unusual, and it's verbatim: {"event_type": "<t>", "<t>": {…}}. The resource sits under a key named after the event type, dots included, rather than under data. In every file, body.event_type equals the filename, the topic, and the name of the second top-level key. The harvester fails if any of those disagree.
  • 15 private_* bodies are id-only by design, not truncated. 13 are {"id": …}. The two membership_* types carry {actor_user_id, incident_id, user_id}. incident.io: "For private incidents, alerts, and escalations, we only send the ID of the resource that's been changed."
  • topic_identifier: event_type, a top-level body field. It resolves flat in requestReceiver.ts, so a future capture will be named correctly. It matches the registry's discriminator_path_lookup.
  • Headers: only content-type: application/json is synthesized. webhook-id, webhook-timestamp and webhook-signature are per-delivery Standard Webhooks values (HMAC-SHA256 keyed with the endpoint's signing secret), so docs can't supply them.
  • Version: latest. Every event name carries its own _v1/_v2 suffix, so the version is part of the topic, and there is no API-version header or body field. (SAMPLE-PUBLISHING rule 2, case 3.)
  • Provenance: latest is sourced_via: docs, sourced_on: 2026-10-28. Each file carries source.type: vendor-documentation and its entry's URL.
  • Not included: nothing. All 34 documented types are exported.
  • Flagged, not resolved: action_created/updated_v1 and follow_up_created/updated_v1 (public and private, 8 files) have identical descriptions and identical bodies. Both spellings are independently subscribable and no deprecation is published, so both are exported under their own names. The registry records this as an unresolved duplicate-vocabulary gap.

Checklist:

  • There's no existing providers/incident-io and no scripts/incident-io harness, so no captures are displaced. Existing files changed: 0.
  • Regenerating the registry harvest (harvest_incident_io.py at webhook-registry 86fc7bf, the head of #124) into a scratch tree is byte-identical to the committed samples-doc/ and to these files.
  • yarn compile passes: 498 → 499 providers, 34 incident-io topics, no collisions.
  • yarn test: 26/26 passed.
  • Registry verify.py: FAIL (0), 823 providers.

Merge order: hookdeck/webhook-registry#124 first, then hookdeck/webhook-registry-checks#32, then this one. Unlike Onfleet, the registry PR is not merged yet. Evidence and non-assertions are in #124.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Mp6z12w4C6yUpnEpTwgfkG

Verbatim example bodies from the `webhooks` map of
https://docs.incident.io/openapi/webhooks.json, exported by
harvest_incident_io.py (hookdeck/webhook-registry#124).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mp6z12w4C6yUpnEpTwgfkG
@vercel

vercel Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
webhook-samples Ready Ready Preview Oct 28, 2026 6:12pm UTC

Request Review

@garethx
garethx merged commit 10a1aba into main Oct 28, 2026
3 checks passed
@garethx
garethx deleted the samples-incident-io branch October 28, 2026 18:33

This branch was successfully deployed

1 active deployment
Preview — b9e6d8be Deployed Oct 28, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant