| 442 | } |
| 443 | |
| 444 | func preloadPrReviews(httpClient *http.Client, repo ghrepo.Interface, pr *api.PullRequest) error { |
| 445 | if !pr.Reviews.PageInfo.HasNextPage { |
| 446 | return nil |
| 447 | } |
| 448 | |
| 449 | type response struct { |
| 450 | Node struct { |
| 451 | PullRequest struct { |
| 452 | Reviews api.PullRequestReviews `graphql:"reviews(first: 100, after: $endCursor)"` |
| 453 | } `graphql:"...on PullRequest"` |
| 454 | } `graphql:"node(id: $id)"` |
| 455 | } |
| 456 | |
| 457 | variables := map[string]interface{}{ |
| 458 | "id": githubv4.ID(pr.ID), |
| 459 | "endCursor": githubv4.String(pr.Reviews.PageInfo.EndCursor), |
| 460 | } |
| 461 | |
| 462 | gql := api.NewClientFromHTTP(httpClient) |
| 463 | |
| 464 | for { |
| 465 | var query response |
| 466 | err := gql.Query(repo.RepoHost(), "ReviewsForPullRequest", &query, variables) |
| 467 | if err != nil { |
| 468 | return err |
| 469 | } |
| 470 | |
| 471 | pr.Reviews.Nodes = append(pr.Reviews.Nodes, query.Node.PullRequest.Reviews.Nodes...) |
| 472 | pr.Reviews.TotalCount = len(pr.Reviews.Nodes) |
| 473 | |
| 474 | if !query.Node.PullRequest.Reviews.PageInfo.HasNextPage { |
| 475 | break |
| 476 | } |
| 477 | variables["endCursor"] = githubv4.String(query.Node.PullRequest.Reviews.PageInfo.EndCursor) |
| 478 | } |
| 479 | |
| 480 | pr.Reviews.PageInfo.HasNextPage = false |
| 481 | return nil |
| 482 | } |
| 483 | |
| 484 | func preloadPrComments(client *http.Client, repo ghrepo.Interface, pr *api.PullRequest) error { |
| 485 | if !pr.Comments.PageInfo.HasNextPage { |