diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2024-05-31 20:10:11 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-31 12:10:11 +0000 |
commit | 352a2cae247afa254241f113c5c22b9351f116b9 (patch) | |
tree | 94fdec54ff4e2cbfa88152e4f8d60e6a8bc30a1f /models/issues/pull.go | |
parent | 972f807ee7d0643b93a776d362ecefc3d5433048 (diff) | |
download | gitea-352a2cae247afa254241f113c5c22b9351f116b9.tar.gz gitea-352a2cae247afa254241f113c5c22b9351f116b9.zip |
Performance improvements for pull request list API (#30490)
Fix #30483
---------
Co-authored-by: yp05327 <576951401@qq.com>
Co-authored-by: Giteabot <teabot@gitea.io>
Diffstat (limited to 'models/issues/pull.go')
-rw-r--r-- | models/issues/pull.go | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/models/issues/pull.go b/models/issues/pull.go index 014fcd9fd0..ef49a51045 100644 --- a/models/issues/pull.go +++ b/models/issues/pull.go @@ -159,10 +159,11 @@ type PullRequest struct { ChangedProtectedFiles []string `xorm:"TEXT JSON"` - IssueID int64 `xorm:"INDEX"` - Issue *Issue `xorm:"-"` - Index int64 - RequestedReviewers []*user_model.User `xorm:"-"` + IssueID int64 `xorm:"INDEX"` + Issue *Issue `xorm:"-"` + Index int64 + RequestedReviewers []*user_model.User `xorm:"-"` + isRequestedReviewersLoaded bool `xorm:"-"` HeadRepoID int64 `xorm:"INDEX"` HeadRepo *repo_model.Repository `xorm:"-"` @@ -289,7 +290,7 @@ func (pr *PullRequest) LoadHeadRepo(ctx context.Context) (err error) { // LoadRequestedReviewers loads the requested reviewers. func (pr *PullRequest) LoadRequestedReviewers(ctx context.Context) error { - if len(pr.RequestedReviewers) > 0 { + if pr.isRequestedReviewersLoaded || len(pr.RequestedReviewers) > 0 { return nil } @@ -297,10 +298,10 @@ func (pr *PullRequest) LoadRequestedReviewers(ctx context.Context) error { if err != nil { return err } - if err = reviews.LoadReviewers(ctx); err != nil { return err } + pr.isRequestedReviewersLoaded = true for _, review := range reviews { pr.RequestedReviewers = append(pr.RequestedReviewers, review.Reviewer) } |