diff --git a/src/server.mjs b/src/server.mjs index 50e7f9c..54b087b 100644 --- a/src/server.mjs +++ b/src/server.mjs @@ -24,7 +24,7 @@ const giteaRepos=(process.env.TRACE_GITEA_REPOS||'').split(',').map(x=>x.trim()) const esc=s=>String(s??'').replaceAll('&','&').replaceAll('<','<').replaceAll('>','>').replaceAll('"','"'); const form=async req=>{let b='';for await(const c of req)b+=c;return Object.fromEntries(new URLSearchParams(b));}; function auth(req,res){if(!password)return true;const expected='Basic '+Buffer.from('trace:'+password).toString('base64');if(req.headers.authorization===expected)return true;res.writeHead(401,{'WWW-Authenticate':'Basic realm="trace"'}).end('Authentication required');return false;} -function layout(title,body){return `${esc(title)} · trace
trace
${body}
`;} +function layout(title,body){return `${esc(title)} · trace
trace
${body}
`;} const fields=['impact','root_cause','fix','verification','prevention','remaining_risk','lesson','public_summary']; const slugify=s=>String(s||'failure').toLowerCase().replace(/[^a-z0-9]+/g,'-').replace(/^-|-$/g,'')||'failure'; const publicSeverity={annoyance:'paper-cut',degraded:'minor',unavailable:'significant','data-risk':'significant','security-risk':'significant'};