diff --git a/obs-status-service/main.go b/obs-status-service/main.go index 80446fe..d8b6d82 100644 --- a/obs-status-service/main.go +++ b/obs-status-service/main.go @@ -103,16 +103,6 @@ func ProjectStatusSummarySvg(res []*common.BuildResult) []byte { return ret.GenerateSvg() } -func LinkToBuildlog(R *common.BuildResult, S *common.PackageBuildStatus) string { - if R != nil && S != nil { - switch S.Code { - case "succeeded", "failed", "building": - return "/buildlog/" + url.PathEscape(R.Project) + "/" + url.PathEscape(S.Package) + "/" + url.PathEscape(R.Repository) + "/" + url.PathEscape(R.Arch) - } - } - return "" -} - func DeleteExceptPkg(pkg string) func(*common.PackageBuildStatus) bool { return func(item *common.PackageBuildStatus) bool { multibuild_prefix := pkg + ":" @@ -155,8 +145,7 @@ func PackageStatusSummarySvg(pkg string, res []*common.BuildResult) []byte { for _, s := range r.Status { if s.Package == pkg { - link := LinkToBuildlog(r, s) - ret.WritePackageStatus(link, r.Arch, s.Code, s.Details) + ret.WritePackageStatus(r, s) } } } diff --git a/obs-status-service/svg.go b/obs-status-service/svg.go index b1e05d5..bdd6ba2 100644 --- a/obs-status-service/svg.go +++ b/obs-status-service/svg.go @@ -6,6 +6,8 @@ import ( "html" "net/url" "slices" + + "src.opensuse.org/autogits/common" ) type SvgWriter struct { @@ -19,6 +21,23 @@ const ( SvgType_Project ) +func LinkToBuildlogAlways(R *common.BuildResult, S *common.PackageBuildStatus) string { + if R != nil && S != nil { + return "/buildlog/" + url.PathEscape(R.Project) + "/" + url.PathEscape(S.Package) + "/" + url.PathEscape(R.Repository) + "/" + url.PathEscape(R.Arch) + } + return "" +} + +func LinkToBuildlog(R *common.BuildResult, S *common.PackageBuildStatus) string { + if R != nil && S != nil { + switch S.Code { + case "succeeded", "failed", "building": + LinkToBuildlogAlways(R, S) + } + } + return "" +} + func NewSvg(SvgType int) *SvgWriter { svg := &SvgWriter{} svg.header = []byte(` 0 { + u, err := url.Parse(loglink) + if err == nil { + svg.out.WriteString(``) + } + } svg.out.WriteString(`` + html.EscapeString(arch) + ``) + if len(loglink) > 0 { + svg.out.WriteString(``) + } svg.out.WriteString(``) + loglink = LinkToBuildlog(r, s) if len(loglink) > 0 { u, err := url.Parse(loglink) if err == nil {