mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 11:28:24 +00:00 
			
		
		
		
	Use db.WithTx/WithTx2 instead of TxContext when possible (#35130)
This commit is contained in:
		| @@ -16,41 +16,37 @@ import ( | ||||
|  | ||||
| // UpdateRepositoryUnits updates a repository's units | ||||
| func UpdateRepositoryUnits(ctx context.Context, repo *repo_model.Repository, units []repo_model.RepoUnit, deleteUnitTypes []unit.Type) (err error) { | ||||
| 	ctx, committer, err := db.TxContext(ctx) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	defer committer.Close() | ||||
|  | ||||
| 	// Delete existing settings of units before adding again | ||||
| 	for _, u := range units { | ||||
| 		deleteUnitTypes = append(deleteUnitTypes, u.Type) | ||||
| 	} | ||||
|  | ||||
| 	if slices.Contains(deleteUnitTypes, unit.TypeActions) { | ||||
| 		if err := actions_service.CleanRepoScheduleTasks(ctx, repo); err != nil { | ||||
| 			log.Error("CleanRepoScheduleTasks: %v", err) | ||||
| 	return db.WithTx(ctx, func(ctx context.Context) error { | ||||
| 		// Delete existing settings of units before adding again | ||||
| 		for _, u := range units { | ||||
| 			deleteUnitTypes = append(deleteUnitTypes, u.Type) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	for _, u := range units { | ||||
| 		if u.Type == unit.TypeActions { | ||||
| 			if err := actions_service.DetectAndHandleSchedules(ctx, repo); err != nil { | ||||
| 				log.Error("DetectAndHandleSchedules: %v", err) | ||||
| 		if slices.Contains(deleteUnitTypes, unit.TypeActions) { | ||||
| 			if err := actions_service.CleanRepoScheduleTasks(ctx, repo); err != nil { | ||||
| 				log.Error("CleanRepoScheduleTasks: %v", err) | ||||
| 			} | ||||
| 			break | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if _, err = db.GetEngine(ctx).Where("repo_id = ?", repo.ID).In("type", deleteUnitTypes).Delete(new(repo_model.RepoUnit)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 		for _, u := range units { | ||||
| 			if u.Type == unit.TypeActions { | ||||
| 				if err := actions_service.DetectAndHandleSchedules(ctx, repo); err != nil { | ||||
| 					log.Error("DetectAndHandleSchedules: %v", err) | ||||
| 				} | ||||
| 				break | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 	if len(units) > 0 { | ||||
| 		if err = db.Insert(ctx, units); err != nil { | ||||
| 		if _, err = db.GetEngine(ctx).Where("repo_id = ?", repo.ID).In("type", deleteUnitTypes).Delete(new(repo_model.RepoUnit)); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return committer.Commit() | ||||
| 		if len(units) > 0 { | ||||
| 			if err = db.Insert(ctx, units); err != nil { | ||||
| 				return err | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		return nil | ||||
| 	}) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user