···495 }
496 }
497498+ // we want to group all stacked PRs into just one list
499+ stacks := make(map[string]db.Stack)
500+ n := 0
501+ for _, p := range pulls {
502+ // this PR is stacked
503+ if p.StackId != "" {
504+ // we have already seen this PR stack
505+ if _, seen := stacks[p.StackId]; seen {
506+ stacks[p.StackId] = append(stacks[p.StackId], p)
507+ // skip this PR
508+ } else {
509+ stacks[p.StackId] = nil
510+ pulls[n] = p
511+ n++
512+ }
513+ } else {
514+ pulls[n] = p
515+ n++
516+ }
517+ }
518+ pulls = pulls[:n]
519+520 identsToResolve := make([]string, len(pulls))
521 for i, pull := range pulls {
522 identsToResolve[i] = pull.OwnerDid
···537 Pulls: pulls,
538 DidHandleMap: didHandleMap,
539 FilteringBy: state,
540+ Stacks: stacks,
541 })
542 return
543}