my own status page
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: use more natural status words

+6 -6
+2 -2
src/index.ts
··· 115 115 if (!recent) { 116 116 const id = await createIncident(env.DB, { 117 117 service_id: svc.name, 118 - title: `${svc.name} is ${result.status}`, 118 + title: `${svc.name} is ${result.status === "timeout" ? "timed out" : result.status}`, 119 119 severity: "major", 120 120 }); 121 121 ··· 125 125 if (parsed) { 126 126 try { 127 127 const issueNumber = await createIssue(env.GITHUB_TOKEN, parsed.owner, parsed.repo, { 128 - title: `${svc.name} is ${result.status}`, 128 + title: `${svc.name} is ${result.status === "timeout" ? "timed out" : result.status}`, 129 129 body: `Automated incident detected by [infra.dunkirk.sh](https://infra.dunkirk.sh)\n\n**Service:** ${svc.name}\n**Health URL:** ${svc.health_url}\n**Status:** ${result.status}${result.status_code ? ` (HTTP ${result.status_code})` : ""}${result.error ? ` — ${result.error}` : ""}\n**Latency:** ${result.latency_ms}ms\n**Detected at:** ${new Date().toISOString()}\n\n---\n*Comments on this issue will appear on the status page. Close the issue to resolve the incident.*`, 130 130 labels: ["incident"], 131 131 });
+4 -4
src/routes/index.ts
··· 41 41 } 42 42 } 43 43 44 - if (group.services.length > 1) { 45 - const statusWord = group.title.includes("timeout") ? "timeout" : group.title.includes("down") ? "down" : "degraded"; 46 - group.title = `${group.services.length} services are ${statusWord}`; 47 - } 44 + const statusWord = group.title.includes("timeout") ? "timed out" : group.title.includes("down") ? "down" : "degraded"; 45 + group.title = group.services.length > 1 46 + ? `${group.services.length} services ${statusWord}` 47 + : `${group.services[0]} is ${statusWord}`; 48 48 49 49 groups.push(group); 50 50 }