From 90e57ea6298950a78d7bb0fbc5869010ec93068e Mon Sep 17 00:00:00 2001 From: Rodolphe Marques Date: Tue, 29 Apr 2025 16:52:54 +0200 Subject: [PATCH] feat: allow host.docker.internal with http when creating a webhook --- src/server/utils/validator.ts | 4 +++- tests/unit/validator.test.ts | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server/utils/validator.ts b/src/server/utils/validator.ts index a72f4b5da..f32454bfa 100644 --- a/src/server/utils/validator.ts +++ b/src/server/utils/validator.ts @@ -98,7 +98,9 @@ export const isValidWebhookUrl = (input: string): boolean => { url.protocol === "https:" || // Allow http for localhost only. (url.protocol === "http:" && - ["localhost", "0.0.0.0", "127.0.0.1"].includes(url.hostname)) + ["localhost", "0.0.0.0", "127.0.0.1", "host.docker.internal"].includes( + url.hostname, + )) ); } catch { return false; diff --git a/tests/unit/validator.test.ts b/tests/unit/validator.test.ts index f15612258..2e0b11f05 100644 --- a/tests/unit/validator.test.ts +++ b/tests/unit/validator.test.ts @@ -30,5 +30,6 @@ describe("isValidWebhookUrl", () => { expect(isValidWebhookUrl("http://localhost:3000")).toBe(true); expect(isValidWebhookUrl("http://0.0.0.0:3000")).toBe(true); expect(isValidWebhookUrl("http://user:pass@127.0.0.1:3000")).toBe(true); + expect(isValidWebhookUrl("http://host.docker.internal:3000")).toBe(true); }); });