// Neubau einer Preview/Live-Seite anstossen (WOMS-Preview-Block, Website-Analyse ein/aus) import { getRepoInfo } from './giteaAdmin.js' import { runDeploy, fetchPreviewConfig } from './previewDeploy.js' const BUSY = 'Server ausgelastet, versuche es gleich noch mal' export async function previewBranchOf(doc) { return doc.previewBranch || (await getRepoInfo(doc.repoFullName).catch(() => null))?.defaultBranch || 'main' } // Neubau anstossen (wie beim Bearbeiten/Reaktivieren eines Projekts) export async function triggerRebuild(doc) { const repo = doc.repoFullName const branch = await previewBranchOf(doc) const found = await fetchPreviewConfig(repo, branch).catch(() => null) const cfg = { enabled: true, type: 'static', displayName: doc.projectName, ...(found || {}), branch, subdomain: doc.subdomain, } const result = await runDeploy(repo, branch, cfg, { project: doc }) // runDeploy meldet Runner-Fehler im Ergebnis; Schutzschalter (503) an WOMS durchreichen if (result?.error && /Server ausgelastet/.test(result.error)) { const err = new Error(BUSY) err.status = 503 err.expected = true throw err } return result }