From 512d8eed59023a3b902cc13f3777a60bb7641d80 Mon Sep 17 00:00:00 2001 From: MatiasFernandez Date: Wed, 8 Apr 2026 15:19:54 -0300 Subject: [PATCH 1/3] Add support to extract/import status pages from IncidentIO using the new Preferences --- extract.rb | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/extract.rb b/extract.rb index 9be5701..0a94736 100644 --- a/extract.rb +++ b/extract.rb @@ -51,6 +51,44 @@ class #{safe_name}: InstatusService { return true end +def extract_incidentio(url, source, custom_name) + # IncidentIO pages include an "incident.io" attribution link in the footer + return false unless source.include?("incident.io") + + base_url = url.chomp("/") + api_source = source_for("#{base_url}/api/v2/summary.json") + return false unless api_source + + page = JSON.parse(api_source)["page"] + return false unless page + + name = custom_name || page["name"] + + services_path = "Resources/services.json" + services = JSON.parse(File.read(services_path)) + + services["incidentio"] ||= [] + + # Check if a service with the same URL already exists + exists = services["incidentio"].any? { |s| s["url"] == base_url } + if exists + puts "Service already exists in services.json" + return true + end + + services["incidentio"] << { + "name" => name, + "url" => base_url + } + + services["incidentio"].sort_by! { |s| s["name"].downcase } + + File.write(services_path, JSON.pretty_generate(services) + "\n") + puts "Updated #{services_path}" + + true +end + def extract_statuspage(url, custom_name) source = source_for("#{url}/api/v2/summary.json") return false unless source @@ -280,6 +318,7 @@ def run_synx finish if extract_instatus(source, custom_name) finish if extract_site24x7(url, source, custom_name) +finish if extract_incidentio(url, source, custom_name) finish if extract_statuspage(url, custom_name) finish if extract_cstate(url, custom_name) From 9411f10824c915bbf128026482af1e2288f2807b Mon Sep 17 00:00:00 2001 From: MatiasFernandez Date: Wed, 8 Apr 2026 15:24:53 -0300 Subject: [PATCH 2/3] Remove invalid trailing comma to avoid issues with the Ruby JSON parser --- Resources/services.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/services.json b/Resources/services.json index 219cd16..4e819cb 100644 --- a/Resources/services.json +++ b/Resources/services.json @@ -38,7 +38,7 @@ { "name": "Runway", "url": "https://status.runway.team" - }, + } ], "cstate": [ { From 26a7ea292d36d03347689276ce5560b00e11921b Mon Sep 17 00:00:00 2001 From: MatiasFernandez Date: Wed, 8 Apr 2026 15:31:41 -0300 Subject: [PATCH 3/3] Add support for Depot status page (using IncidentIO) --- Resources/services.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Resources/services.json b/Resources/services.json index 4e819cb..a68e76e 100644 --- a/Resources/services.json +++ b/Resources/services.json @@ -65,6 +65,10 @@ "CodeClimate" ] }, + { + "name": "Depot", + "url": "https://status.depot.dev" + }, { "name": "HashiCorp", "url": "https://status.hashicorp.com"