MCPcopy Index your code
hub / github.com/github/github-mcp-server / GetPullRequestReviews

Function GetPullRequestReviews

pkg/github/pullrequests.go:531–585  ·  view source on GitHub ↗
(ctx context.Context, client *github.Client, deps ToolDependencies, owner, repo string, pullNumber int, pagination PaginationParams)

Source from the content-addressed store, hash-verified

529}
530
531func GetPullRequestReviews(ctx context.Context, client *github.Client, deps ToolDependencies, owner, repo string, pullNumber int, pagination PaginationParams) (*mcp.CallToolResult, error) {
532 cache, err := deps.GetRepoAccessCache(ctx)
533 if err != nil {
534 return nil, fmt.Errorf("failed to get repo access cache: %w", err)
535 }
536 ff := deps.GetFlags(ctx)
537
538 reviews, resp, err := client.PullRequests.ListReviews(ctx, owner, repo, pullNumber, &github.ListOptions{
539 Page: pagination.Page,
540 PerPage: pagination.PerPage,
541 })
542 if err != nil {
543 return ghErrors.NewGitHubAPIErrorResponse(ctx,
544 "failed to get pull request reviews",
545 resp,
546 err,
547 ), nil
548 }
549 defer func() { _ = resp.Body.Close() }()
550
551 if resp.StatusCode != http.StatusOK {
552 body, err := io.ReadAll(resp.Body)
553 if err != nil {
554 return nil, fmt.Errorf("failed to read response body: %w", err)
555 }
556 return ghErrors.NewGitHubAPIStatusErrorResponse(ctx, "failed to get pull request reviews", resp, body), nil
557 }
558
559 if ff.LockdownMode {
560 if cache == nil {
561 return nil, fmt.Errorf("lockdown cache is not configured")
562 }
563 filteredReviews := make([]*github.PullRequestReview, 0, len(reviews))
564 for _, review := range reviews {
565 login := review.GetUser().GetLogin()
566 if login != "" {
567 isSafeContent, err := cache.IsSafeContent(ctx, login, owner, repo)
568 if err != nil {
569 return nil, fmt.Errorf("failed to check lockdown mode: %w", err)
570 }
571 if isSafeContent {
572 filteredReviews = append(filteredReviews, review)
573 }
574 reviews = filteredReviews
575 }
576 }
577 }
578
579 minimalReviews := make([]MinimalPullRequestReview, 0, len(reviews))
580 for _, review := range reviews {
581 minimalReviews = append(minimalReviews, convertToMinimalPullRequestReview(review))
582 }
583
584 return MarshalledTextResult(minimalReviews), nil
585}
586
587// PullRequestWriteUIResourceURI is the URI for the create_pull_request tool's MCP App UI resource.
588const PullRequestWriteUIResourceURI = "ui://github-mcp-server/pr-write"

Callers 1

PullRequestReadFunction · 0.85

Calls 6

MarshalledTextResultFunction · 0.85
CloseMethod · 0.80
IsSafeContentMethod · 0.80
GetRepoAccessCacheMethod · 0.65
GetFlagsMethod · 0.65

Tested by

no test coverage detected