From bd795b84bf8070ee03057b0cbe937b531caee02f Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Thu, 31 Jul 2025 13:51:12 +0000 Subject: [PATCH] appview/pages: show CI status in all pulls view Signed-off-by: oppiliappan --- appview/pages/pages.go | 1 + appview/pulls/pulls.go | 21 +++++++++++++++++++++ appview/pages/templates/repo/pulls/pulls.html | 13 ++++++++++--- appview/pages/templates/repo/pulls/fragments/summarizedPullHeader.html | 12 +++++------- 4 file(s) changed, 37 insertion(s)(+), 10 deletion(s)(-) diff --git a/appview/pages/pages.go b/appview/pages/pages.go --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -813,6 +813,7 @@ DidHandleMap map[string]string FilteringBy db.PullState Stacks map[string]db.Stack + Pipelines map[string]db.Pipeline } func (p *Pages) RepoPulls(w io.Writer, params RepoPullsParams) error { diff --git a/appview/pulls/pulls.go b/appview/pulls/pulls.go --- a/appview/pulls/pulls.go +++ b/appview/pulls/pulls.go @@ -555,8 +555,11 @@ // we want to group all stacked PRs into just one list stacks := make(map[string]db.Stack) + var shas []string n := 0 for _, p := range pulls { + // store the sha for later + shas = append(shas, p.LatestSha()) // this PR is stacked if p.StackId != "" { // we have already seen this PR stack @@ -574,6 +577,23 @@ } } pulls = pulls[:n] + + repoInfo := f.RepoInfo(user) + ps, err := db.GetPipelineStatuses( + s.db, + db.FilterEq("repo_owner", repoInfo.OwnerDid), + db.FilterEq("repo_name", repoInfo.Name), + db.FilterEq("knot", repoInfo.Knot), + db.FilterIn("sha", shas), + ) + if err != nil { + log.Printf("failed to fetch pipeline statuses: %s", err) + // non-fatal + } + m := make(map[string]db.Pipeline) + for _, p := range ps { + m[p.Sha] = p + } identsToResolve := make([]string, len(pulls)) for i, pull := range pulls { @@ -596,6 +616,7 @@ DidHandleMap: didHandleMap, FilteringBy: state, Stacks: stacks, + Pipelines: m, }) } diff --git a/appview/pages/templates/repo/pulls/pulls.html b/appview/pages/templates/repo/pulls/pulls.html --- a/appview/pages/templates/repo/pulls/pulls.html +++ b/appview/pages/templates/repo/pulls/pulls.html @@ -54,7 +54,7 @@ #{{ .PullId }} -

+

{{ $owner := index $.DidHandleMap .OwnerDid }} {{ $bgColor := "bg-gray-800 dark:bg-gray-700" }} {{ $icon := "ban" }} @@ -103,7 +103,13 @@ #{{ .LastRoundNumber }} -

+ + {{ $pipeline := index $.Pipelines .LatestSha }} + {{ if $pipeline }} + + {{ template "repo/pipelines/fragments/pipelineSymbol" $pipeline }} + {{ end }} +
{{ if .StackId }} {{ $otherPulls := index $.Stacks .StackId }} @@ -135,10 +141,11 @@ {{ $root := index . 1 }}
{{ range $pull := $list }} + {{ $pipeline := index $root.Pipelines $pull.LatestSha }}
- {{ template "repo/pulls/fragments/summarizedHeader" (list $pull 0) }} + {{ template "repo/pulls/fragments/summarizedHeader" (list $pull $pipeline) }}
diff --git a/appview/pages/templates/repo/pulls/fragments/summarizedPullHeader.html b/appview/pages/templates/repo/pulls/fragments/summarizedPullHeader.html --- a/appview/pages/templates/repo/pulls/fragments/summarizedPullHeader.html +++ b/appview/pages/templates/repo/pulls/fragments/summarizedPullHeader.html @@ -13,24 +13,22 @@
-
+
{{ $latestRound := .LastRoundNumber }} {{ $lastSubmission := index .Submissions $latestRound }} {{ $commentCount := len $lastSubmission.Comments }} {{ if and $pipeline $pipeline.Id }} -
- {{ template "repo/pipelines/fragments/pipelineSymbol" $pipeline }} - -
+ {{ template "repo/pipelines/fragments/pipelineSymbol" $pipeline }} + {{ end }} -
+
{{ i "message-square" "w-3 h-3 md:hidden" }} {{ $commentCount }}
- + #{{ $latestRound }} -- tangled.sh