mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	fix repository count of user is messed up
This commit is contained in:
		@@ -649,8 +649,13 @@ func createRepository(e *xorm.Session, u *User, repo *Repository) (err error) {
 | 
			
		||||
 | 
			
		||||
	if _, err = e.Insert(repo); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	} else if _, err = e.Exec("UPDATE `user` SET num_repos=num_repos+1 WHERE id=?", u.Id); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	u.NumRepos++
 | 
			
		||||
	// Remember visibility preference.
 | 
			
		||||
	u.LastRepoVisibility = repo.IsPrivate
 | 
			
		||||
	if err = updateUser(e, u); err != nil {
 | 
			
		||||
		return fmt.Errorf("updateUser: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Give access to all members in owner team.
 | 
			
		||||
@@ -1279,7 +1284,7 @@ func CheckRepoStats() {
 | 
			
		||||
 | 
			
		||||
	log.Trace("Doing: CheckRepoStats")
 | 
			
		||||
 | 
			
		||||
	// ***** START: Watch *****
 | 
			
		||||
	// ***** START: Repository.NumWatches *****
 | 
			
		||||
	results, err := x.Query("SELECT repo.id FROM `repository` repo WHERE repo.num_watches!=(SELECT COUNT(*) FROM `watch` WHERE repo_id=repo.id)")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Error(4, "Select repository check 'watch': %v", err)
 | 
			
		||||
@@ -1293,9 +1298,9 @@ func CheckRepoStats() {
 | 
			
		||||
			log.Error(4, "Update repository check 'watch'[%d]: %v", repoID, err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	// ***** END: Watch *****
 | 
			
		||||
	// ***** END: Repository.NumWatches *****
 | 
			
		||||
 | 
			
		||||
	// ***** START: Star *****
 | 
			
		||||
	// ***** START: Repository.NumStars *****
 | 
			
		||||
	results, err = x.Query("SELECT repo.id FROM `repository` repo WHERE repo.num_stars!=(SELECT COUNT(*) FROM `star` WHERE repo_id=repo.id)")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Error(4, "Select repository check 'star': %v", err)
 | 
			
		||||
@@ -1309,9 +1314,9 @@ func CheckRepoStats() {
 | 
			
		||||
			log.Error(4, "Update repository check 'star'[%d]: %v", repoID, err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	// ***** END: Star *****
 | 
			
		||||
	// ***** END: Repository.NumStars *****
 | 
			
		||||
 | 
			
		||||
	// ***** START: Label *****
 | 
			
		||||
	// ***** START: Label.NumIssues *****
 | 
			
		||||
	results, err = x.Query("SELECT label.id FROM `label` WHERE label.num_issues!=(SELECT COUNT(*) FROM `issue_label` WHERE label_id=label.id)")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Error(4, "Select label check 'num_issues': %v", err)
 | 
			
		||||
@@ -1325,7 +1330,23 @@ func CheckRepoStats() {
 | 
			
		||||
			log.Error(4, "Update label check 'num_issues'[%d]: %v", labelID, err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	// ***** END: Label *****
 | 
			
		||||
	// ***** END: Label.NumIssues *****
 | 
			
		||||
 | 
			
		||||
	// ***** START: User.NumRepos *****
 | 
			
		||||
	results, err = x.Query("SELECT `user`.id FROM `user` WHERE `user`.num_repos!=(SELECT COUNT(*) FROM `repository` WHERE owner_id=`user`.id)")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Error(4, "Select user check 'num_repos': %v", err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	for _, user := range results {
 | 
			
		||||
		userID := com.StrTo(user["id"]).MustInt64()
 | 
			
		||||
		log.Trace("Updating user count 'num_repos': %d", userID)
 | 
			
		||||
		_, err = x.Exec("UPDATE `user` SET num_repos=(SELECT COUNT(*) FROM `repository` WHERE owner_id=?) WHERE id=?", userID, userID)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Error(4, "Update user check 'num_repos'[%d]: %v", userID, err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	// ***** END: User.NumRepos *****
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// _________        .__  .__        ___.                        __  .__
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user