aboutsummaryrefslogtreecommitdiffstats
path: root/models/repo/release.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/repo/release.go')
-rw-r--r--models/repo/release.go34
1 files changed, 14 insertions, 20 deletions
diff --git a/models/repo/release.go b/models/repo/release.go
index 59f4caf5aa..0db57503ce 100644
--- a/models/repo/release.go
+++ b/models/repo/release.go
@@ -472,30 +472,24 @@ func (r *Release) GetExternalID() int64 { return r.OriginalAuthorID }
// InsertReleases migrates release
func InsertReleases(ctx context.Context, rels ...*Release) error {
- ctx, committer, err := db.TxContext(ctx)
- if err != nil {
- return err
- }
- defer committer.Close()
- sess := db.GetEngine(ctx)
-
- for _, rel := range rels {
- if _, err := sess.NoAutoTime().Insert(rel); err != nil {
- return err
- }
-
- if len(rel.Attachments) > 0 {
- for i := range rel.Attachments {
- rel.Attachments[i].ReleaseID = rel.ID
+ return db.WithTx(ctx, func(ctx context.Context) error {
+ for _, rel := range rels {
+ if _, err := db.GetEngine(ctx).NoAutoTime().Insert(rel); err != nil {
+ return err
}
- if _, err := sess.NoAutoTime().Insert(rel.Attachments); err != nil {
- return err
+ if len(rel.Attachments) > 0 {
+ for i := range rel.Attachments {
+ rel.Attachments[i].ReleaseID = rel.ID
+ }
+
+ if _, err := db.GetEngine(ctx).NoAutoTime().Insert(rel.Attachments); err != nil {
+ return err
+ }
}
}
- }
-
- return committer.Commit()
+ return nil
+ })
}
func FindTagsByCommitIDs(ctx context.Context, repoID int64, commitIDs ...string) (map[string][]*Release, error) {