Load reviewer for comments when dismissing a review (#24281)

If a comment dismisses a review, we need to load the reviewer to show
whose review has been dismissed.

Related to:

20b6ae0e53/templates/repo/issue/view_content/comments.tmpl (L765-L770)

We don't need `.Review.Reviewer` for all comments, because
"dismissing" doesn't happen often, or we would have already received
error reports.
This commit is contained in:
Jason Song 2023-04-23 23:04:23 +08:00 committed by GitHub
parent 67da4c1b25
commit 066af372e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -56,7 +56,7 @@ func (comments CommentList) getLabelIDs() []int64 {
return ids.Values() return ids.Values()
} }
func (comments CommentList) loadLabels(ctx context.Context) error { //nolint func (comments CommentList) loadLabels(ctx context.Context) error {
if len(comments) == 0 { if len(comments) == 0 {
return nil return nil
} }
@ -415,7 +415,7 @@ func (comments CommentList) getReviewIDs() []int64 {
return ids.Values() return ids.Values()
} }
func (comments CommentList) loadReviews(ctx context.Context) error { //nolint func (comments CommentList) loadReviews(ctx context.Context) error {
if len(comments) == 0 { if len(comments) == 0 {
return nil return nil
} }
@ -453,6 +453,14 @@ func (comments CommentList) loadReviews(ctx context.Context) error { //nolint
for _, comment := range comments { for _, comment := range comments {
comment.Review = reviews[comment.ReviewID] comment.Review = reviews[comment.ReviewID]
// If the comment dismisses a review, we need to load the reviewer to show whose review has been dismissed.
// Otherwise, the reviewer is the poster of the comment, so we don't need to load it.
if comment.Type == CommentTypeDismissReview {
if err := comment.Review.LoadReviewer(ctx); err != nil {
return err
}
}
} }
return nil return nil
} }