From 24c91d82484bb0f0da277f2ca71e013afdc0a487 Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Sun, 7 Sep 2025 20:36:09 +0200 Subject: [PATCH] add extra transaction wrap This was already called from within a transaction, but never know about future callers --- models/repo/fork.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/models/repo/fork.go b/models/repo/fork.go index 39380afeb1..da00ccef40 100644 --- a/models/repo/fork.go +++ b/models/repo/fork.go @@ -104,11 +104,13 @@ func GetForksByUserAndOrgs(ctx context.Context, user *user_model.User, repo *Rep // ReparentFork sets the fork to be an unforked repository and the forked repo becomes its fork func ReparentFork(ctx context.Context, forkedRepoID, srcForkID int64) error { - if _, err := db.GetEngine(ctx).Table("repository").ID(srcForkID).Cols("fork_id", "is_fork").Update(&Repository{ForkID: forkedRepoID, IsFork: true}); err != nil { - return err - } - if _, err := db.GetEngine(ctx).Table("repository").ID(forkedRepoID).Cols("fork_id", "is_fork", "num_forks").Update(&Repository{ForkID: 0, NumForks: 1, IsFork: false}); err != nil { - return err - } - return nil + return db.WithTx(ctx, func(ctx context.Context) error { + if _, err := db.GetEngine(ctx).Table("repository").ID(srcForkID).Cols("fork_id", "is_fork").Update(&Repository{ForkID: forkedRepoID, IsFork: true}); err != nil { + return err + } + if _, err := db.GetEngine(ctx).Table("repository").ID(forkedRepoID).Cols("fork_id", "is_fork", "num_forks").Update(&Repository{ForkID: 0, NumForks: 1, IsFork: false}); err != nil { + return err + } + return nil + }) }