···555556 // we want to group all stacked PRs into just one list
557 stacks := make(map[string]db.Stack)
0558 n := 0
559 for _, p := range pulls {
00560 // this PR is stacked
561 if p.StackId != "" {
562 // we have already seen this PR stack
···575 }
576 pulls = pulls[:n]
57700000000000000000578 identsToResolve := make([]string, len(pulls))
579 for i, pull := range pulls {
580 identsToResolve[i] = pull.OwnerDid
···596 DidHandleMap: didHandleMap,
597 FilteringBy: state,
598 Stacks: stacks,
0599 })
600}
601
···555556 // we want to group all stacked PRs into just one list
557 stacks := make(map[string]db.Stack)
558+ var shas []string
559 n := 0
560 for _, p := range pulls {
561+ // store the sha for later
562+ shas = append(shas, p.LatestSha())
563 // this PR is stacked
564 if p.StackId != "" {
565 // we have already seen this PR stack
···578 }
579 pulls = pulls[:n]
580581+ repoInfo := f.RepoInfo(user)
582+ ps, err := db.GetPipelineStatuses(
583+ s.db,
584+ db.FilterEq("repo_owner", repoInfo.OwnerDid),
585+ db.FilterEq("repo_name", repoInfo.Name),
586+ db.FilterEq("knot", repoInfo.Knot),
587+ db.FilterIn("sha", shas),
588+ )
589+ if err != nil {
590+ log.Printf("failed to fetch pipeline statuses: %s", err)
591+ // non-fatal
592+ }
593+ m := make(map[string]db.Pipeline)
594+ for _, p := range ps {
595+ m[p.Sha] = p
596+ }
597+598 identsToResolve := make([]string, len(pulls))
599 for i, pull := range pulls {
600 identsToResolve[i] = pull.OwnerDid
···616 DidHandleMap: didHandleMap,
617 FilteringBy: state,
618 Stacks: stacks,
619+ Pipelines: m,
620 })
621}
622