diff --git a/src/components/StatusDashboard/cloud_services.jsx b/src/components/StatusDashboard/cloud_services.jsx index ce197c97ca..b593489d88 100644 --- a/src/components/StatusDashboard/cloud_services.jsx +++ b/src/components/StatusDashboard/cloud_services.jsx @@ -39,12 +39,24 @@ function Status({ api, link, title }) { void (async () => { try { const json = (await (await fetch(api)).json()); - const status = - typeof json.status === "object" // support StatusPage API - ? json.status.description - : typeof json.monitor === "object" // support UptimeRobot API - ? json.monitor.statusClass - : json.status || "unknown"; + let status; + if (title === "Blacksmith.sh") { + status = json + .components + .filter((comp) => comp.name === "Blacksmith Managed Runners")[0] + .status; + } else if (title === "Namespace.so" || title === "Depot.dev") { + status = json.summary.affected_components.length > 0 + ? "Ongoing incident" + : "operational"; + } else { + status = + typeof json.status === "object" // support StatusPage API + ? json.status.description + : typeof json.monitor === "object" // support UptimeRobot API + ? json.monitor.statusClass + : json.status || "unknown"; + } setState({ status }); } catch (error) { console.warn(`error fetching data for ${title} – ${api}`, error); diff --git a/src/constants.js b/src/constants.js index d7efc5e349..93e98b7972 100644 --- a/src/constants.js +++ b/src/constants.js @@ -38,6 +38,16 @@ export const urls = { link: "https://status.dev.azure.com/", title: "Azure DevOps", }, + blacksmith: { + api: "https://status.blacksmith.sh/v2/components.json", + link: "https://status.blacksmith.sh", + title: "Blacksmith.sh", + }, + depot: { + api: "https://status.depot.dev/proxy/status.depot.dev", + link: "https://status.depot.dev", + title: "Depot.dev", + }, // circle: { // api: "https://status.circleci.com/api/v2/status.json", // link: "https://status.circleci.com", @@ -53,6 +63,11 @@ export const urls = { link: "https://www.githubstatus.com/", title: "GitHub", }, + namespace: { + api: "https://namespace-status.com/proxy/namespace-status.com", + link: "https://namespace-status.com/", + title: "Namespace.so", + }, prefix_dev: { api: "https://status.prefix.dev/api/getMonitorDetails/status.conda-forge.org?m=798888560", link: "https://status.prefix.dev",