mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 00:20:25 +08:00 
			
		
		
		
	Only check for non-finished migrating task (#19601)
* Only check for non-finished migrating task - Only check if a non-finished migrating task exists for a mirror before fetching the mirror details from the database. - Resolves #19600 - Regression: #19588 * Clarify function
This commit is contained in:
		@@ -181,12 +181,12 @@ func GetMigratingTask(repoID int64) (*Task, error) {
 | 
			
		||||
	return &task, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// HasMigratingTask returns if migrating task exist for repo.
 | 
			
		||||
func HasMigratingTask(repoID int64) (bool, error) {
 | 
			
		||||
	return db.GetEngine(db.DefaultContext).Exist(&Task{
 | 
			
		||||
		RepoID: repoID,
 | 
			
		||||
		Type:   structs.TaskTypeMigrateRepo,
 | 
			
		||||
	})
 | 
			
		||||
// HasFinishedMigratingTask returns if a finished migration task exists for the repo.
 | 
			
		||||
func HasFinishedMigratingTask(repoID int64) (bool, error) {
 | 
			
		||||
	return db.GetEngine(db.DefaultContext).
 | 
			
		||||
		Where("repo_id=? AND type=? AND status=?", repoID, structs.TaskTypeMigrateRepo, structs.TaskStatusFinished).
 | 
			
		||||
		Table("task").
 | 
			
		||||
		Exist()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetMigratingTaskByID returns the migrating task by repo's id
 | 
			
		||||
 
 | 
			
		||||
@@ -371,14 +371,14 @@ func repoAssignment(ctx *Context, repo *repo_model.Repository) {
 | 
			
		||||
 | 
			
		||||
	if repo.IsMirror {
 | 
			
		||||
 | 
			
		||||
		// Check if there's a migrating task.
 | 
			
		||||
		// If it does exist, don't fetch the Mirror from the database as it doesn't exist yet.
 | 
			
		||||
		hasTask, err := models.HasMigratingTask(repo.ID)
 | 
			
		||||
		// Check if the mirror has finsihed migrationg, only then we can
 | 
			
		||||
		// lookup the mirror informtation the database.
 | 
			
		||||
		finishedMigrating, err := models.HasFinishedMigratingTask(repo.ID)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			ctx.ServerError("GetMirrorByRepoID", err)
 | 
			
		||||
			ctx.ServerError("HasFinishedMigratingTask", err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		if !hasTask {
 | 
			
		||||
		if finishedMigrating {
 | 
			
		||||
			ctx.Repo.Mirror, err = repo_model.GetMirrorByRepoID(repo.ID)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				ctx.ServerError("GetMirrorByRepoID", err)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user