diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2021-04-16 01:34:43 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-15 19:34:43 +0200 |
commit | 8202dd131189102d2531c853665d213e43a5c818 (patch) | |
tree | 33fdf41bb1387611a7014d2335ab620628200e82 /routers | |
parent | f44543a1bb776fa8bdfd3b605d67197d1466eb20 (diff) | |
download | gitea-8202dd131189102d2531c853665d213e43a5c818.tar.gz gitea-8202dd131189102d2531c853665d213e43a5c818.zip |
Performance improvement for list pull requests (#15447)
Diffstat (limited to 'routers')
-rw-r--r-- | routers/repo/issue.go | 19 | ||||
-rw-r--r-- | routers/user/home.go | 10 |
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 } // ------------------------------- |