aboutsummaryrefslogtreecommitdiffstats
path: root/models/pull.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/pull.go')
-rw-r--r--models/pull.go23
1 files changed, 12 insertions, 11 deletions
diff --git a/models/pull.go b/models/pull.go
index 6bcc30e901..3bfebee118 100644
--- a/models/pull.go
+++ b/models/pull.go
@@ -394,11 +394,12 @@ func (pr *PullRequest) SetMerged() (bool, error) {
pr.HasMerged = true
- sess := db.NewSession(db.DefaultContext)
- defer sess.Close()
- if err := sess.Begin(); err != nil {
+ ctx, committer, err := db.TxContext()
+ if err != nil {
return false, err
}
+ defer committer.Close()
+ sess := db.GetEngine(ctx)
if _, err := sess.Exec("UPDATE `issue` SET `repo_id` = `repo_id` WHERE `id` = ?", pr.IssueID); err != nil {
return false, err
@@ -432,7 +433,7 @@ func (pr *PullRequest) SetMerged() (bool, error) {
return false, err
}
- if _, err := pr.Issue.changeStatus(sess, pr.Merger, true, true); err != nil {
+ if _, err := pr.Issue.changeStatus(ctx, pr.Merger, true, true); err != nil {
return false, fmt.Errorf("Issue.changeStatus: %v", err)
}
@@ -441,7 +442,7 @@ func (pr *PullRequest) SetMerged() (bool, error) {
return false, fmt.Errorf("Failed to update pr[%d]: %v", pr.ID, err)
}
- if err := sess.Commit(); err != nil {
+ if err := committer.Commit(); err != nil {
return false, fmt.Errorf("Commit: %v", err)
}
return true, nil
@@ -456,13 +457,13 @@ func NewPullRequest(repo *Repository, issue *Issue, labelIDs []int64, uuids []st
issue.Index = idx
- sess := db.NewSession(db.DefaultContext)
- defer sess.Close()
- if err = sess.Begin(); err != nil {
+ ctx, committer, err := db.TxContext()
+ if err != nil {
return err
}
+ defer committer.Close()
- if err = newIssue(sess, issue.Poster, NewIssueOptions{
+ if err = newIssue(ctx, issue.Poster, NewIssueOptions{
Repo: repo,
Issue: issue,
LabelIDs: labelIDs,
@@ -478,11 +479,11 @@ func NewPullRequest(repo *Repository, issue *Issue, labelIDs []int64, uuids []st
pr.Index = issue.Index
pr.BaseRepo = repo
pr.IssueID = issue.ID
- if _, err = sess.Insert(pr); err != nil {
+ if err = db.Insert(ctx, pr); err != nil {
return fmt.Errorf("insert pull repo: %v", err)
}
- if err = sess.Commit(); err != nil {
+ if err = committer.Commit(); err != nil {
return fmt.Errorf("Commit: %v", err)
}