mirror of
https://github.com/go-gitea/gitea.git
synced 2024-10-26 07:55:34 +03:00
fix null pull request reviewers from api if reviews assigned to team
This commit is contained in:
parent
976f78eb77
commit
f7bfdbaf01
@ -8,6 +8,7 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"maps"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
@ -303,9 +304,22 @@ func (pr *PullRequest) LoadRequestedReviewers(ctx context.Context) error {
|
||||
if err = reviews.LoadReviewers(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
pr.isRequestedReviewersLoaded = true
|
||||
|
||||
reviewsUserMap := make(map[int64]*user_model.User, 0)
|
||||
for _, review := range reviews {
|
||||
pr.RequestedReviewers = append(pr.RequestedReviewers, review.Reviewer)
|
||||
if review.ReviewerID != 0 {
|
||||
reviewsUserMap[review.ReviewerID] = review.Reviewer
|
||||
}
|
||||
}
|
||||
teamReviewsMembersMap, err := reviews.GetReviewersTeamMembers(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
maps.Copy(reviewsUserMap, teamReviewsMembersMap)
|
||||
|
||||
pr.isRequestedReviewersLoaded = true
|
||||
for _, user := range reviewsUserMap {
|
||||
pr.RequestedReviewers = append(pr.RequestedReviewers, user)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
@ -7,10 +7,10 @@ import (
|
||||
"context"
|
||||
|
||||
"code.gitea.io/gitea/models/db"
|
||||
"code.gitea.io/gitea/models/organization"
|
||||
user_model "code.gitea.io/gitea/models/user"
|
||||
"code.gitea.io/gitea/modules/container"
|
||||
"code.gitea.io/gitea/modules/optional"
|
||||
|
||||
"xorm.io/builder"
|
||||
)
|
||||
|
||||
@ -37,6 +37,27 @@ func (reviews ReviewList) LoadReviewers(ctx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetReviewersTeamMembers returns team members if reviews reviewer is team
|
||||
func (reviews ReviewList) GetReviewersTeamMembers(ctx context.Context) (map[int64]*user_model.User, error) {
|
||||
teamMembersMap := make(map[int64]*user_model.User, 0)
|
||||
for i := 0; i < len(reviews); i++ {
|
||||
if reviews[i].ReviewerID == 0 && reviews[i].ReviewerTeamID != 0 {
|
||||
members, err := organization.GetTeamMembers(ctx, &organization.SearchMembersOptions{
|
||||
TeamID: reviews[i].ReviewerTeamID,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
for _, member := range members {
|
||||
teamMembersMap[member.ID] = member
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return teamMembersMap, nil
|
||||
}
|
||||
|
||||
func (reviews ReviewList) LoadIssues(ctx context.Context) error {
|
||||
issueIDs := container.FilterSlice(reviews, func(review *Review) (int64, bool) {
|
||||
return review.IssueID, true
|
||||
|
Loading…
Reference in New Issue
Block a user