@@ -297,7 +297,7 @@ func GranularRequestPullRequestReviewers(t translations.TranslationHelperFunc) i
297297 "pullNumber" : {Type : "number" , Description : "The pull request number" , Minimum : jsonschema .Ptr (1.0 )},
298298 "reviewers" : {
299299 Type : "array" ,
300- Description : "GitHub usernames to request reviews from" ,
300+ Description : "GitHub usernames or ORG/team-slug team reviewers to request reviews from" ,
301301 Items : & jsonschema.Schema {Type : "string" },
302302 },
303303 },
@@ -325,13 +325,17 @@ func GranularRequestPullRequestReviewers(t translations.TranslationHelperFunc) i
325325 if len (reviewers ) == 0 {
326326 return utils .NewToolResultError ("missing required parameter: reviewers" ), nil , nil
327327 }
328+ userReviewers , teamReviewers := splitPullRequestReviewers (reviewers )
328329
329330 client , err := deps .GetClient (ctx )
330331 if err != nil {
331332 return utils .NewToolResultErrorFromErr ("failed to get GitHub client" , err ), nil , nil
332333 }
333334
334- pr , resp , err := client .PullRequests .RequestReviewers (ctx , owner , repo , pullNumber , gogithub.ReviewersRequest {Reviewers : reviewers })
335+ pr , resp , err := client .PullRequests .RequestReviewers (ctx , owner , repo , pullNumber , gogithub.ReviewersRequest {
336+ Reviewers : userReviewers ,
337+ TeamReviewers : teamReviewers ,
338+ })
335339 if err != nil {
336340 return ghErrors .NewGitHubAPIErrorResponse (ctx , "failed to request reviewers" , resp , err ), nil , nil
337341 }
@@ -351,6 +355,22 @@ func GranularRequestPullRequestReviewers(t translations.TranslationHelperFunc) i
351355 return st
352356}
353357
358+ func splitPullRequestReviewers (reviewers []string ) ([]string , []string ) {
359+ userReviewers := make ([]string , 0 , len (reviewers ))
360+ teamReviewers := make ([]string , 0 )
361+
362+ for _ , reviewer := range reviewers {
363+ org , team , ok := strings .Cut (reviewer , "/" )
364+ if ok && org != "" && team != "" && ! strings .Contains (team , "/" ) {
365+ teamReviewers = append (teamReviewers , team )
366+ continue
367+ }
368+ userReviewers = append (userReviewers , reviewer )
369+ }
370+
371+ return userReviewers , teamReviewers
372+ }
373+
354374// GranularCreatePullRequestReview creates a tool to create a PR review.
355375func GranularCreatePullRequestReview (t translations.TranslationHelperFunc ) inventory.ServerTool {
356376 st := NewTool (
0 commit comments