Add team support for review request (#12039)

Add team support for review request

Block #11355

Signed-off-by: a1012112796 <1012112796@qq.com>
Signed-off-by: Andrew Thornton <art27@cantab.net>

Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
赵智超 2020-10-13 03:55:13 +08:00 committed by GitHub
parent b546eda7a8
commit 8be3e439c2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 956 additions and 293 deletions

View file

@ -52,7 +52,7 @@ func ToggleAssignee(issue *models.Issue, doer *models.User, assigneeID int64) (r
return
}
// ReviewRequest add or remove a review for this PR, and make comment for it.
// ReviewRequest add or remove a review request from a user for this PR, and make comment for it.
func ReviewRequest(issue *models.Issue, doer *models.User, reviewer *models.User, isAdd bool) (err error) {
var comment *models.Comment
if isAdd {
@ -71,3 +71,40 @@ func ReviewRequest(issue *models.Issue, doer *models.User, reviewer *models.User
return nil
}
// TeamReviewRequest add or remove a review request from a team for this PR, and make comment for it.
func TeamReviewRequest(issue *models.Issue, doer *models.User, reviewer *models.Team, isAdd bool) (err error) {
var comment *models.Comment
if isAdd {
comment, err = models.AddTeamReviewRequest(issue, reviewer, doer)
} else {
comment, err = models.RemoveTeamReviewRequest(issue, reviewer, doer)
}
if err != nil {
return
}
if comment == nil || !isAdd {
return
}
// notify all user in this team
if err = comment.LoadIssue(); err != nil {
return
}
if err = reviewer.GetMembers(&models.SearchMembersOptions{}); err != nil {
return
}
for _, member := range reviewer.Members {
if member.ID == comment.Issue.PosterID {
continue
}
comment.AssigneeID = member.ID
notification.NotifyPullReviewRequest(doer, issue, member, isAdd, comment)
}
return nil
}