···555555556556 // we want to group all stacked PRs into just one list
557557 stacks := make(map[string]db.Stack)
558558+ var shas []string
558559 n := 0
559560 for _, p := range pulls {
561561+ // store the sha for later
562562+ shas = append(shas, p.LatestSha())
560563 // this PR is stacked
561564 if p.StackId != "" {
562565 // we have already seen this PR stack
···575578 }
576579 pulls = pulls[:n]
577580581581+ repoInfo := f.RepoInfo(user)
582582+ ps, err := db.GetPipelineStatuses(
583583+ s.db,
584584+ db.FilterEq("repo_owner", repoInfo.OwnerDid),
585585+ db.FilterEq("repo_name", repoInfo.Name),
586586+ db.FilterEq("knot", repoInfo.Knot),
587587+ db.FilterIn("sha", shas),
588588+ )
589589+ if err != nil {
590590+ log.Printf("failed to fetch pipeline statuses: %s", err)
591591+ // non-fatal
592592+ }
593593+ m := make(map[string]db.Pipeline)
594594+ for _, p := range ps {
595595+ m[p.Sha] = p
596596+ }
597597+578598 identsToResolve := make([]string, len(pulls))
579599 for i, pull := range pulls {
580600 identsToResolve[i] = pull.OwnerDid
···596616 DidHandleMap: didHandleMap,
597617 FilteringBy: state,
598618 Stacks: stacks,
619619+ Pipelines: m,
599620 })
600621}
601622