mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Add Num{Issues,Pulls} stats checks (#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`.
- Reference: https://codeberg.org/Codeberg/Community/issues/696
			
			
This commit is contained in:
		@@ -438,15 +438,27 @@ func CheckRepoStats(ctx context.Context) error {
 | 
				
			|||||||
			repoStatsCorrectNumStars,
 | 
								repoStatsCorrectNumStars,
 | 
				
			||||||
			"repository count 'num_stars'",
 | 
								"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
 | 
							// 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),
 | 
								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,
 | 
								repoStatsCorrectNumClosedIssues,
 | 
				
			||||||
			"repository count 'num_closed_issues'",
 | 
								"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
 | 
							// 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,
 | 
								repoStatsCorrectNumClosedPulls,
 | 
				
			||||||
			"repository count 'num_closed_pulls'",
 | 
								"repository count 'num_closed_pulls'",
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user