diff --git a/api/queries_pr.go b/api/queries_pr.go index 8de56be48..f2f4179e9 100644 --- a/api/queries_pr.go +++ b/api/queries_pr.go @@ -66,6 +66,7 @@ type PullRequest struct { RequestedReviewer struct { TypeName string `json:"__typename"` Login string + Name string } } TotalCount int @@ -373,6 +374,9 @@ func PullRequestByNumber(client *Client, repo ghrepo.Interface, number int) (*Pu ...on User { login } + ...on Team { + name + } } } totalCount @@ -470,6 +474,9 @@ func PullRequestForBranch(client *Client, repo ghrepo.Interface, baseBranch, hea ...on User { login } + ...on Team { + name + } } } totalCount diff --git a/command/pr.go b/command/pr.go index bb60c41fc..e1a65fcad 100644 --- a/command/pr.go +++ b/command/pr.go @@ -431,6 +431,9 @@ func prReviewerList(pr api.PullRequest) string { return reviewerList } +// Ref. https://developer.github.com/v4/union/requestedreviewer/ +const teamTypeName = "Team" + // parseReviewers parses given Reviews and ReviewRequests func parseReviewers(pr api.PullRequest) []*reviewerState { reviewerStates := make(map[string]*reviewerState) @@ -446,8 +449,12 @@ func parseReviewers(pr api.PullRequest) []*reviewerState { // Overwrite reviewer's state if a review request for the same reviewer exists. for _, reviewRequest := range pr.ReviewRequests.Nodes { - reviewerStates[reviewRequest.RequestedReviewer.Login] = &reviewerState{ - Name: reviewRequest.RequestedReviewer.Login, + name := reviewRequest.RequestedReviewer.Login + if reviewRequest.RequestedReviewer.TypeName == teamTypeName { + name = reviewRequest.RequestedReviewer.Name + } + reviewerStates[name] = &reviewerState{ + Name: name, State: requestedReviewState, } } diff --git a/command/pr_test.go b/command/pr_test.go index ed0e754d1..147621fc2 100644 --- a/command/pr_test.go +++ b/command/pr_test.go @@ -442,7 +442,7 @@ func TestPRView_Preview(t *testing.T) { fixture: "../test/fixtures/prViewPreviewWithReviewersByNumber.json", expectedOutputs: []string{ `Blueberries are from a fork`, - `Reviewers: DEF \(Commented\), def \(Changes requested\), xyz \(Approved\), 123 \(Requested\), abc \(Requested\)\n`, + `Reviewers: DEF \(Commented\), def \(Changes requested\), xyz \(Approved\), 123 \(Requested\), Team 1 \(Requested\), abc \(Requested\)\n`, `blueberries taste good`, `View this pull request on GitHub: https://github.com/OWNER/REPO/pull/12\n`, }, diff --git a/test/fixtures/prViewPreviewWithMetadataByNumber.json b/test/fixtures/prViewPreviewWithMetadataByNumber.json index 0981f4263..55366c26b 100644 --- a/test/fixtures/prViewPreviewWithMetadataByNumber.json +++ b/test/fixtures/prViewPreviewWithMetadataByNumber.json @@ -14,7 +14,7 @@ "nodes": [ { "requestedReviewer": { - "__typename": "user", + "__typename": "User", "login": "1" } } diff --git a/test/fixtures/prViewPreviewWithReviewersByNumber.json b/test/fixtures/prViewPreviewWithReviewersByNumber.json index fd293c1c7..049718b07 100644 --- a/test/fixtures/prViewPreviewWithReviewersByNumber.json +++ b/test/fixtures/prViewPreviewWithReviewersByNumber.json @@ -18,6 +18,12 @@ "login": "123" } }, + { + "requestedReviewer": { + "__typename": "Team", + "name": "Team 1" + } + }, { "requestedReviewer": { "__typename": "user",