summaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2021-04-16 01:34:43 +0800
committerGitHub <noreply@github.com>2021-04-15 19:34:43 +0200
commit8202dd131189102d2531c853665d213e43a5c818 (patch)
tree33fdf41bb1387611a7014d2335ab620628200e82 /routers
parentf44543a1bb776fa8bdfd3b605d67197d1466eb20 (diff)
downloadgitea-8202dd131189102d2531c853665d213e43a5c818.tar.gz
gitea-8202dd131189102d2531c853665d213e43a5c818.zip
Performance improvement for list pull requests (#15447)
Diffstat (limited to 'routers')
-rw-r--r--routers/repo/issue.go19
-rw-r--r--routers/user/home.go10
2 files changed, 12 insertions, 17 deletions
diff --git a/routers/repo/issue.go b/routers/repo/issue.go
index da3772ef5a..7471bb65a4 100644
--- a/routers/repo/issue.go
+++ b/routers/repo/issue.go
@@ -239,14 +239,13 @@ func issues(ctx *context.Context, milestoneID, projectID int64, isPullOption uti
}
}
- approvalCounts, err := models.IssueList(issues).GetApprovalCounts()
+ var issueList = models.IssueList(issues)
+ approvalCounts, err := issueList.GetApprovalCounts()
if err != nil {
ctx.ServerError("ApprovalCounts", err)
return
}
- var commitStatus = make(map[int64]*models.CommitStatus, len(issues))
-
// Get posters.
for i := range issues {
// Check read status
@@ -256,16 +255,12 @@ func issues(ctx *context.Context, milestoneID, projectID int64, isPullOption uti
ctx.ServerError("GetIsRead", err)
return
}
+ }
- if issues[i].IsPull {
- if err := issues[i].LoadPullRequest(); err != nil {
- ctx.ServerError("LoadPullRequest", err)
- return
- }
-
- var statuses, _ = pull_service.GetLastCommitStatus(issues[i].PullRequest)
- commitStatus[issues[i].PullRequest.ID] = models.CalcCommitStatus(statuses)
- }
+ commitStatus, err := pull_service.GetIssuesLastCommitStatus(issues)
+ if err != nil {
+ ctx.ServerError("GetIssuesLastCommitStatus", err)
+ return
}
ctx.Data["Issues"] = issues
diff --git a/routers/user/home.go b/routers/user/home.go
index 431ffdde8e..584bc019fa 100644
--- a/routers/user/home.go
+++ b/routers/user/home.go
@@ -550,14 +550,14 @@ func buildIssueOverview(ctx *context.Context, unitType models.UnitType) {
}
// maps pull request IDs to their CommitStatus. Will be posted to ctx.Data.
- var commitStatus = make(map[int64]*models.CommitStatus, len(issues))
for _, issue := range issues {
issue.Repo = showReposMap[issue.RepoID]
+ }
- if isPullList {
- var statuses, _ = pull_service.GetLastCommitStatus(issue.PullRequest)
- commitStatus[issue.PullRequest.ID] = models.CalcCommitStatus(statuses)
- }
+ commitStatus, err := pull_service.GetIssuesLastCommitStatus(issues)
+ if err != nil {
+ ctx.ServerError("GetIssuesLastCommitStatus", err)
+ return
}
// -------------------------------