diff --git a/frontend/src/views/SettingsView.vue b/frontend/src/views/SettingsView.vue index 2aaa58b..f749eee 100644 --- a/frontend/src/views/SettingsView.vue +++ b/frontend/src/views/SettingsView.vue @@ -422,7 +422,7 @@ const baseUrlSaved = ref(false); // Git forge integration (admin only, #2689). The token round-trips masked; // the server treats the mask as "unchanged". -const forge = ref({ kind: "", base_url: "", token: "" }); +const forge = ref({ kind: "", base_url: "", token: "", webhook_secret: "" }); const forgeKinds = ref(["gitea"]); const forgeConfigured = ref(false); const savingForge = ref(false); @@ -586,10 +586,13 @@ onMounted(async () => { async function loadForgeSettings() { const cfg = await apiGet<{ - kind: string; base_url: string; token: string; + kind: string; base_url: string; token: string; webhook_secret: string; configured: boolean; kinds: string[]; }>("/api/admin/forge"); - forge.value = { kind: cfg.kind, base_url: cfg.base_url, token: cfg.token }; + forge.value = { + kind: cfg.kind, base_url: cfg.base_url, token: cfg.token, + webhook_secret: cfg.webhook_secret, + }; forgeConfigured.value = cfg.configured; if (cfg.kinds?.length) forgeKinds.value = cfg.kinds; } @@ -2177,6 +2180,15 @@ function formatUserDate(iso: string): string { +
+ + +

+ Optional: create a push webhook on the forge pointing at + /api/webhooks/forge with this secret, and snippets + whose recorded files change get flagged for re-verification. +

+