ework-web 0.10.8 → 0.10.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/webhooks.ts +1 -21
package/package.json
CHANGED
package/src/webhooks.ts
CHANGED
|
@@ -541,25 +541,6 @@ async function recordDelivery(
|
|
|
541
541
|
}
|
|
542
542
|
}
|
|
543
543
|
|
|
544
|
-
async function resolveDeliveryUrl(storedUrl: string): Promise<string> {
|
|
545
|
-
try {
|
|
546
|
-
const { getActiveDaemons } = await import("./coordination");
|
|
547
|
-
const daemons = await getActiveDaemons();
|
|
548
|
-
if (daemons.length === 0) return storedUrl;
|
|
549
|
-
const storedHost = storedUrl.replace(/^https?:\/\//, "").split("/")[0] ?? "";
|
|
550
|
-
const storedMatchesDaemon = daemons.some((d) => {
|
|
551
|
-
const daemonHost = d.endpoint.replace(/^https?:\/\//, "");
|
|
552
|
-
return daemonHost === storedHost;
|
|
553
|
-
});
|
|
554
|
-
if (storedMatchesDaemon) return storedUrl;
|
|
555
|
-
const best = daemons.sort((a, b) => a.id - b.id)[0]!;
|
|
556
|
-
const ep = /^https?:\/\//.test(best.endpoint) ? best.endpoint : `http://${best.endpoint}`;
|
|
557
|
-
return ep.replace(/\/$/, "") + "/webhook/gitea";
|
|
558
|
-
} catch {
|
|
559
|
-
return storedUrl;
|
|
560
|
-
}
|
|
561
|
-
}
|
|
562
|
-
|
|
563
544
|
async function deliver(
|
|
564
545
|
webhook: WebhookRow,
|
|
565
546
|
event: WebhookEventName,
|
|
@@ -567,12 +548,11 @@ async function deliver(
|
|
|
567
548
|
): Promise<void> {
|
|
568
549
|
await acquireDeliverySlot();
|
|
569
550
|
try {
|
|
570
|
-
const targetUrl = await resolveDeliveryUrl(webhook.url);
|
|
571
551
|
for (const attempt of RETRY_DELAYS_MS) {
|
|
572
552
|
if (attempt > 0) await Bun.sleep(attempt);
|
|
573
553
|
const deliveryUuid = randomUUID();
|
|
574
554
|
const headers = buildHeaders(event, deliveryUuid, rawBody, webhook.secret);
|
|
575
|
-
const result = await postWithTimeout(
|
|
555
|
+
const result = await postWithTimeout(webhook.url, rawBody, headers);
|
|
576
556
|
const success = result.status !== null && result.status >= 200 && result.status < 300;
|
|
577
557
|
await recordDelivery(webhook.id, event, deliveryUuid, rawBody, result);
|
|
578
558
|
if (success) return;
|