feat: protect github route with secret too
Node.js CI / Lint and Test (push) Successful in 44s

This commit is contained in:
2025-08-27 19:04:06 -07:00
parent d5c0abe4d8
commit 994f50c174
3 changed files with 30 additions and 14 deletions
+13 -3
View File
@@ -25,13 +25,23 @@ const isPull = (body: GithubPayload): body is PullRequestCreated => {
* @param request - The Fastify request payload.
* @param response - The Fastify reply class.
*/
// eslint-disable-next-line max-statements -- STFU.
// eslint-disable-next-line max-statements, max-lines-per-function -- STFU.
export const processGithubEvent = async(
amari: Amari,
// eslint-disable-next-line @typescript-eslint/naming-convention -- Fastify standard.
request: FastifyRequest<{ Body: GithubPayload }>,
request: FastifyRequest<{
// eslint-disable-next-line @typescript-eslint/naming-convention -- Fastify standard.
Body: GithubPayload;
// eslint-disable-next-line @typescript-eslint/naming-convention -- Fastify standard.
Querystring: { secret: string };
}>,
response: FastifyReply,
): Promise<void> => {
const { secret } = request.query;
if (secret !== process.env.GH_WEBHOOK_SECRET) {
await response.status(403).send({
message: "Invalid secret provided!",
});
}
const event = request.headers["x-github-event"];
if (typeof event !== "string") {
await response.status(400).