mirror of
https://github.com/github/codeql-action.git
synced 2025-12-30 11:10:22 +08:00
34 lines
848 B
JavaScript
34 lines
848 B
JavaScript
import { verifyWithFallback } from "@octokit/webhooks-methods";
|
|
async function verifyAndReceive(state, event) {
|
|
const matchesSignature = await verifyWithFallback(
|
|
state.secret,
|
|
event.payload,
|
|
event.signature,
|
|
state.additionalSecrets
|
|
).catch(() => false);
|
|
if (!matchesSignature) {
|
|
const error = new Error(
|
|
"[@octokit/webhooks] signature does not match event payload and secret"
|
|
);
|
|
return state.eventHandler.receive(
|
|
Object.assign(error, { event, status: 400 })
|
|
);
|
|
}
|
|
let payload;
|
|
try {
|
|
payload = JSON.parse(event.payload);
|
|
} catch (error) {
|
|
error.message = "Invalid JSON";
|
|
error.status = 400;
|
|
throw new AggregateError([error], error.message);
|
|
}
|
|
return state.eventHandler.receive({
|
|
id: event.id,
|
|
name: event.name,
|
|
payload
|
|
});
|
|
}
|
|
export {
|
|
verifyAndReceive
|
|
};
|