aboutsummaryrefslogtreecommitdiffstats
path: root/models/issues/pull.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2024-05-31 20:10:11 +0800
committerGitHub <noreply@github.com>2024-05-31 12:10:11 +0000
commit352a2cae247afa254241f113c5c22b9351f116b9 (patch)
tree94fdec54ff4e2cbfa88152e4f8d60e6a8bc30a1f /models/issues/pull.go
parent972f807ee7d0643b93a776d362ecefc3d5433048 (diff)
downloadgitea-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.go13
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)
}