UNPKG

795 BJavaScriptView Raw
1import { verify } from "@octokit/webhooks-methods";
2async function verifyAndReceive(state, event) {
3 const matchesSignature = await verify(
4 state.secret,
5 event.payload,
6 event.signature
7 ).catch(() => false);
8 if (!matchesSignature) {
9 const error = new Error(
10 "[@octokit/webhooks] signature does not match event payload and secret"
11 );
12 return state.eventHandler.receive(
13 Object.assign(error, { event, status: 400 })
14 );
15 }
16 let payload;
17 try {
18 payload = JSON.parse(event.payload);
19 } catch (error) {
20 error.message = "Invalid JSON";
21 error.status = 400;
22 throw new AggregateError([error], error.message);
23 }
24 return state.eventHandler.receive({
25 id: event.id,
26 name: event.name,
27 payload
28 });
29}
30export {
31 verifyAndReceive
32};