UNPKG

867 BJavaScriptView Raw
1import { verify } from "@octokit/webhooks-methods";
2import { toNormalizedJsonString } from "./to-normalized-json-string";
3export async function verifyAndReceive(state, event) {
4 // verify will validate that the secret is not undefined
5 const matchesSignature = await verify(state.secret, typeof event.payload === "object"
6 ? toNormalizedJsonString(event.payload)
7 : event.payload, event.signature);
8 if (!matchesSignature) {
9 const error = new Error("[@octokit/webhooks] signature does not match event payload and secret");
10 return state.eventHandler.receive(Object.assign(error, { event, status: 400 }));
11 }
12 return state.eventHandler.receive({
13 id: event.id,
14 name: event.name,
15 payload: typeof event.payload === "string"
16 ? JSON.parse(event.payload)
17 : event.payload,
18 });
19}