diff options
author | Gusted <williamzijl7@hotmail.com> | 2022-10-12 06:47:48 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-12 14:47:48 +0800 |
commit | d74578001491e70d5db19270a442ece3f2a758aa (patch) | |
tree | b35311fcdd33e0398d69c9ca436ab56303bc3881 | |
parent | 652abf0ae0757e376c3c70d3e3cc298a3e924e23 (diff) | |
download | gitea-d74578001491e70d5db19270a442ece3f2a758aa.tar.gz gitea-d74578001491e70d5db19270a442ece3f2a758aa.zip |
Add Num{Issues,Pulls} stats checks (#21404) (#21414)
Backport #21404
Currently `repository.Num{Issues,Pulls}` weren't checked and could
become out-of-consistency. Adds these two checks to `CheckRepoStats`.
Fix incorrect SQL query for `repository.NumClosedPulls`, the check
should be for `repo_num_pulls`.
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
-rw-r--r-- | models/repo.go | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/models/repo.go b/models/repo.go index d2f3a45940..e304abf960 100644 --- a/models/repo.go +++ b/models/repo.go @@ -605,15 +605,27 @@ func CheckRepoStats(ctx context.Context) error { repoStatsCorrectNumStars, "repository count 'num_stars'", }, + // Repository.NumIssues + { + statsQuery("SELECT repo.id FROM `repository` repo WHERE repo.num_issues!=(SELECT COUNT(*) FROM `issue` WHERE repo_id=repo.id AND is_closed=? AND is_pull=?)", false, false), + repoStatsCorrectNumIssues, + "repository count 'num_issues'", + }, // Repository.NumClosedIssues { statsQuery("SELECT repo.id FROM `repository` repo WHERE repo.num_closed_issues!=(SELECT COUNT(*) FROM `issue` WHERE repo_id=repo.id AND is_closed=? AND is_pull=?)", true, false), repoStatsCorrectNumClosedIssues, "repository count 'num_closed_issues'", }, + // Repository.NumPulls + { + statsQuery("SELECT repo.id FROM `repository` repo WHERE repo.num_pulls!=(SELECT COUNT(*) FROM `issue` WHERE repo_id=repo.id AND is_closed=? AND is_pull=?)", false, true), + repoStatsCorrectNumPulls, + "repository count 'num_pulls'", + }, // Repository.NumClosedPulls { - statsQuery("SELECT repo.id FROM `repository` repo WHERE repo.num_closed_issues!=(SELECT COUNT(*) FROM `issue` WHERE repo_id=repo.id AND is_closed=? AND is_pull=?)", true, true), + statsQuery("SELECT repo.id FROM `repository` repo WHERE repo.num_closed_pulls!=(SELECT COUNT(*) FROM `issue` WHERE repo_id=repo.id AND is_closed=? AND is_pull=?)", true, true), repoStatsCorrectNumClosedPulls, "repository count 'num_closed_pulls'", }, |