Repository navigation
Add doc samples for verified sources batches 6 to 14 (205 providers) - #75
Merged
Merged
Conversation
Copied byte-identical from webhook-registry samples-doc/providers/ at d6ca5080 (hookdeck/webhook-registry#109, #110, #113, #115, #116, #117, #118). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D7eqaQdKAUzQXRbGtym1PF
Seven exported index.json files named an identifier that can't resolve the provider's samples: prose in place of a key (survicate, sinch, cashfree), a composed topic given as one part (hitpay) or as a list (thinkific), a missing documented fallback (pine-labs) and a capitalised header name (requesty). learnupon's and forgejo's samples lacked the topic header their identifier reads, so it is synthesized, as the registry exporter does for other header-carried topics. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D7eqaQdKAUzQXRbGtym1PF
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Gareth · project thread
Before: hookdeck/webhook-registry#109, #110, #113, #115, #116, #117 and #118 (verified sources batches 6 to 14, all merged) added 387 provider rows (386 new, plus the Ampersand upgrade) and exported doc examples for 205 of them to the registry's
samples-doc/tree. None of the 205 had a directory here.After: 205 new provider directories with 1,473 doc-sourced samples.
providers.jsongoes from 293 to 498 providers. The other 182 rows get no directory because they have no published example body; they're listed per batch below. No existing file is changed.Rows with no published example body, so no directory:
Ampersand (batch 8) already has a captured
v1directory here, and the registry exports no doc samples for it, so it's untouched.How: I copied
samples-doc/providers/<p>/from webhook-registrymain(d6ca5080) intoproviders/, the same way #72, #73 and #74 did. The first commit is that copy, byte-identical to the export,index.jsonincluded. The second commit changes 22 of the 1,678 files so that every non-nulltopic_identifierresolves its provider's samples (see the first point below). I checked each non-nulltopic_identifieragainst the registry row's discriminator path, then ran every sample through the repo's ownresolveTopic(topic.tsundernode --experimental-strip-types, header first, then body, list order asrequestReceiver.tsdoes it). Every non-null identifier resolves all of its provider's samples to their own topic. Each sample carriessource.type: vendor-documentationand its page URL, and each version is markedsourced_via: docs.yarn compilepasses (293 → 498 providers, and the compiled topic count equals the file count for all 205).yarn testpasses 16/16.Worth a look:
22 files differ from the registry export. As exported, 7 providers' identifiers resolved none of their samples, and 2 providers' samples lacked the header their identifier reads:
topic_identifier("key-presence: …"). The registry records both as key presence: the event is which key is present, not a value. They're nownull."type (Payment Gateway, Payouts V2) | event_type (Secure ID, PPI)". It's now the listtype,event_type, which is what the carrier note describes. All 5 samples resolve.hitpay-event-object, which is half of a composed topic (Hitpay-Event-Object+.+Hitpay-Event-Type), and no sample carries either header. It's nownull, like copper in Add doc samples for verified sources batch 5 (21 providers) #74.resource,action. A list takes the first key that resolves, so all 23 samples resolved to the bare resource (course, notcourse.created). The topic is composed, so it's nownull.event_type, but its carrier note says the payout events useeventType. It's now the listevent_type,eventType, and the two payout samples resolve.X-Requesty-Event. The registry row's path isx-requesty-event, and the sample headers (and any capture through express) are lowercase. Now lowercase.x-webhook-type,x-forgejo-event-type), synthesized as the registry's exporter does for other header-carried topics. forgejo's sample keeps the doc's ownX-Forgejo-*headers. The doc only showsX-Forgejo-Event, which is the coarser group, so the added header sits beside it.These should go back into the registry's
samples-doc/too, or a later copy will disagree.nullrows (23): 15 have no event field (the registry recordsabsent): act-on, certn, factorial, felloh, flux-cd, fountain, khipu, meetgeek, opnform, paytabs, rebrandly, semaphore, soniox, spacelift and uppromote. fiber-ai isunknown. Five are composed: pipeline-crm (event_model+event_action), maximizer ([].Entity+[].Data.Op), redo (thereturnkey +type), and hitpay and thinkific above. survicate and sinch are key presence. Each sample's topic comes from the doc heading, as in Add 228 doc-sourced samples for verified-sources batch 3 (30 providers) #72, Add doc samples for verified sources batch 4 (32 providers) #73 and Add doc samples for verified sources batch 5 (21 providers) #74, and a live capture would land asuntitled-<hash>.List forms: pine-labs and cashfree, above.
clickpost's carrier is an integer.
clickpost_status_codeis6,41and so on, and the topics are"6","41".File names that differ from their topics. Topics with
/,:or\(cin7-core, qonto, loyaltylion, treet, factorial, nextcloud, bvnk, convox, infinite-giving, tiltify) get the same stem from the registry's safe-stem rule and fromrequestReceiver.ts. Three new cases contain spaces and don't: mailtrapsoft bounce→soft.bounce.json, and document360Article deletedandExtension token deleted. The receiver would writesoft bounce.json. That's the known castle, descope, flexport and PubNub mismatch, and this PR leaves the receiver alone.Versions taken from the payload or the docs:
2026-07-07(apiVersion; the registry also records a legacy2026-06-01shape with no samples), needlev1(version), langfusev1(apiVersion), rewardfulv1(event.api_version), bindbee2026.10.06(version), linq2026-02-03(webhook_version).2.0(X-LearnUpon-Version, which the samples don't carry).v1, qontov1(thev1/prefix in every type name), northpassv2, proofv2(Webhooks V2), whoopv2(the dashboard's model version).Not re-versioned, though the body carries one version value. The README says a payload version is the directory. The registry's harvesters filed these under
latest, and I've left them as exported for you to decide: rocketlane1.0, planev2, semaphore1.0.0, globalstackv1, relay-messenger2026-08-30(the samewebhook_versionfield linq is filed under), tensorlake1(integer schema version), scalekit1(spec_version), 100ms2.0, leonardo-aiv1, payroc1.0.0(per event type), sublime-security0, spherepayv2(event schema version), superwall2026-09-22(V2 webhooks'api_version) and usesend2026-01-18. speed, recurrente and connecteam carry more than one value across their samples, so filing them by version would split them across directories.Sub-path rows resolve on their primary carrier: qonto (
type, withdata.eventas sub-path), threads (values.field, withtopic) and forgejo (withaction).Per-provider table (205)
topic_identifierlatesttypelatesttypelatesteventlatesttypelatesttypelatestnulllatesteventlatesteventlatestnulllatesttypelatestnulllatestactionlatestx-jazzhr-eventlatestdata.webHookEvent.topiclatestevents[].eventlatestrule.typelatestactionlatesteventlatesteventlatestnulllatestdata[].attributes.name2026-07-07typelatesteventTypelatestx-projects-eventlatestactionlatestvalues.fieldlatesteventlatesttypelatesteventTypelatestevent_typelatestalertStatusStringlatestevent_typelatestparams.events[].modulelatestEventTypelatesteventlatestEventlatestnulllatesteventTypelatestnulllatestevent.classlatesteventlatestnulllatesteventTypelatestevent_typelatesttypelatestnulllatestnamev1typelatesttypelatesteventlatesttypev1eventNamelatesteventlatestkindlatesttypelatestactionlatesteventTypelatesttypelatestnulllatestx-forgejo-event-typelatestnulllatestnulllatesttypev1action2.0x-webhook-typelatestnullv2data.typelateststatuslatesteventlatesteventv2eventlatestpulumi-webhook-kindv1typev1event.typelatesteventlatestnulllatesteventlatesteventTypelatestdata.attributes.eventlatestnulllatestevents[].typelatesteventlatesteventlatesttypelatestactionlatesttypelatestevent_typelatestmeta.event_idlatesteventlatestnulllatesttypelatestevent_typelatestevent.typelatesttypelatesteventlatesteventlatesteventlatesttopiclatestmeta.eventTypelatesttypelatestnulllatestevent.event_namelatestnulllatesteventlatesteventlatesttypelatestevent_typelatesteventTypelatestnulllatest[].event_typelatestnulllatesttypelatesttriggerlatestevents[].actionlatestnulllatestx-violet-topiclatesteventTypelatestevent_typelatesteventTypeIdlatestevent2026.10.06eventlatesttypelatesteventlatesteventlatestevent_typelatestevent_typelatestevent_type2026-02-03event_typelatesttypelatesteventlatesttypelatesttypelatesttypelatesttypelatesttypelatesteventlatestevent_type,eventTypelatesttypelatestevent_typelatestx-requesty-eventlatesteventlatestevent_typelatesttypelatestevent_typelatesttypelatesttypelatestwebhook_eventlatesttypelatestevent_typelatesttypelatesttypelatesttypelatesteventlatestevent_typelatestevent_typelatestevent_typelatesttypelatesttypelatesteventlatesttypelatesttypelatestevent_typelatesteventlatesttypelatesteventTypelatestclickpost_status_codelatesteventTypelatesteventlatesteventTypelatestevent_typelatesttypelatesttypelatesttypelatesteventlatesteventTypelatesttypelatesttypelatesteventTypelatestnulllatesttypelatestnulllatesttypelatesttypelatestresource-typelatesttriggerlatesteventlatesttype,event_typelatesttypelatestrequest_typelatestevent_namelatesteventlatestevent_type.idlatesttypelatestmeta.triggerlatesteventlatestevent_namelatestevent_typelatesteventlatestnulllatesttypelatestmeta.event_typelatesteventlatesttypelatestevent_namev2typeGenerated by Claude Code