Support GitHub Team in requested reviewers

This commit is contained in:
Toshiya Doi 2020-04-22 21:58:01 +09:00
parent 502f6709af
commit d70358ea34
5 changed files with 24 additions and 4 deletions

View file

@ -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

View file

@ -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,
}
}

View file

@ -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`,
},

View file

@ -14,7 +14,7 @@
"nodes": [
{
"requestedReviewer": {
"__typename": "user",
"__typename": "User",
"login": "1"
}
}

View file

@ -18,6 +18,12 @@
"login": "123"
}
},
{
"requestedReviewer": {
"__typename": "Team",
"name": "Team 1"
}
},
{
"requestedReviewer": {
"__typename": "user",