1
0
Просмотр исходного кода

Fix transaction scope issues in repo.go UpdateRepository and DeleteRepository

Co-authored-by: unknwon <2946214+unknwon@users.noreply.github.com>
copilot-swe-agent[bot] 2 недель назад
Родитель
Сommit
e89db8393d
1 измененных файлов с 2 добавлено и 2 удалено
  1. 2 2
      internal/database/repo.go

+ 2 - 2
internal/database/repo.go

@@ -1618,7 +1618,7 @@ func updateRepository(e *gorm.DB, repo *Repository, visibilityChanged bool) (err
 
 func UpdateRepository(repo *Repository, visibilityChanged bool) (err error) {
 	return db.Transaction(func(tx *gorm.DB) error {
-		if err := updateRepository(db, repo, visibilityChanged); err != nil {
+		if err := updateRepository(tx, repo, visibilityChanged); err != nil {
 			return errors.Newf("updateRepository: %v", err)
 		}
 		return nil
@@ -1729,7 +1729,7 @@ func DeleteRepository(ownerID, repoID int64) error {
 		}
 
 		if repo.NumForks > 0 {
-			if err = db.Exec("UPDATE `repository` SET fork_id=0,is_fork=? WHERE fork_id=?", false, repo.ID).Error; err != nil {
+			if err = tx.Exec("UPDATE `repository` SET fork_id=0,is_fork=? WHERE fork_id=?", false, repo.ID).Error; err != nil {
 				log.Error("reset 'fork_id' and 'is_fork': %v", err)
 			}
 		}