From 1826f0fe4d9bc071b040cdc4a4c0d09ccf056fa471da4e49828aae0b954a259f Mon Sep 17 00:00:00 2001 From: Nitesh Date: Mon, 12 Jan 2026 14:44:06 +0530 Subject: [PATCH 1/2] obs-status-service: made SVG status colors theme-aware by using CSS variables --- obs-status-service/svg.go | 42 +++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/obs-status-service/svg.go b/obs-status-service/svg.go index 2806970..5c64b1f 100644 --- a/obs-status-service/svg.go +++ b/obs-status-service/svg.go @@ -28,46 +28,46 @@ func NewSvg(SvgType int) *SvgWriter { case SvgType_Package: svg.out.WriteString(` - - succeeded + + succeeded - - failed + + failed - - blocked + + blocked - - broken + + broken - - building + + building - - unresolvable + + unresolvable - - scheduled + + scheduled - - disabled + + disabled - - excluded + + excluded - - unknown + + unknown - + `) case SvgType_Project: -- 2.51.1 From 6b0fb4fadc1c76c23b7beacd0f135969aaf20c942a96612a81c5e896f8c6d26d Mon Sep 17 00:00:00 2001 From: Nitesh Date: Tue, 20 Jan 2026 18:45:10 +0530 Subject: [PATCH 2/2] obs-status-service: add landing page at root endpoint --- obs-status-service/main.go | 106 ++++++++++++++++++++++++++++++++++++- 1 file changed, 104 insertions(+), 2 deletions(-) diff --git a/obs-status-service/main.go b/obs-status-service/main.go index 80446fe..ac29168 100644 --- a/obs-status-service/main.go +++ b/obs-status-service/main.go @@ -41,6 +41,107 @@ const ( AppName = "obs-status-service" ) +const indexHTML = ` + + + + openSUSE OBS Status Service + + + + +

OBS Status Service

+ +

+ This service reports build results from the openSUSE Build Service (OBS) + as easily embeddable SVG images. Repository build results are cached to + provide low-overhead access. +

+ +

Usage

+ +

Requests for individual build results:

+
/status/obs:project/package/repo/arch
+

package, repo and arch are optional.

+ +

Requests for project results:

+
/status/obs:project
+ +

+ By default, SVG output is generated. JSON and XML output are available + by setting the Accept request header. +

+ +

Generate Build Result Image

+ + + + + + + + + + + + +

Link

+ + +

Markdown

+

+
+  

Preview

+ Build status preview + + + + +` var obs *common.ObsClient type RepoBuildCounters struct { @@ -271,8 +372,9 @@ func main() { res.WriteHeader(500) return } - res.WriteHeader(404) - res.Write([]byte("404 page not found\n")) + res.Header().Set("Content-Type", "text/html; charset=utf-8") + res.WriteHeader(http.StatusOK) + res.Write([]byte(indexHTML)) }) http.HandleFunc("GET /status/{Project}", func(res http.ResponseWriter, req *http.Request) { mime := ParseMimeHeader(req) -- 2.51.1