Skip to content

Commit fdff199

Browse files
committed
Add transaction for ReopenIssue
1 parent ed261f1 commit fdff199

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

models/issues/issue_update.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,20 @@ func ReopenIssue(ctx context.Context, issue *Issue, doer *user_model.User) (*Com
139139
return nil, err
140140
}
141141

142-
return changeIssueStatus(ctx, issue, doer, false, false)
142+
ctx, committer, err := db.TxContext(ctx)
143+
if err != nil {
144+
return nil, err
145+
}
146+
defer committer.Close()
147+
148+
comment, err := changeIssueStatus(ctx, issue, doer, false, false)
149+
if err != nil {
150+
return nil, err
151+
}
152+
if err := committer.Commit(); err != nil {
153+
return nil, err
154+
}
155+
return comment, nil
143156
}
144157

145158
// ChangeIssueTitle changes the title of this issue, as the given user.

services/issue/status.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package issue
66
import (
77
"context"
88

9+
"code.gitea.io/gitea/models/db"
910
issues_model "code.gitea.io/gitea/models/issues"
1011
user_model "code.gitea.io/gitea/models/user"
1112
"code.gitea.io/gitea/modules/log"
@@ -14,19 +15,30 @@ import (
1415

1516
// CloseIssue close and issue.
1617
func CloseIssue(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, commitID string) error {
17-
comment, err := issues_model.CloseIssue(ctx, issue, doer)
18+
dbCtx, committer, err := db.TxContext(ctx)
19+
if err != nil {
20+
return err
21+
}
22+
defer committer.Close()
23+
24+
comment, err := issues_model.CloseIssue(dbCtx, issue, doer)
1825
if err != nil {
1926
if issues_model.IsErrDependenciesLeft(err) {
20-
if err := issues_model.FinishIssueStopwatchIfPossible(ctx, doer, issue); err != nil {
27+
if err := issues_model.FinishIssueStopwatchIfPossible(dbCtx, doer, issue); err != nil {
2128
log.Error("Unable to stop stopwatch for issue[%d]#%d: %v", issue.ID, issue.Index, err)
2229
}
2330
}
2431
return err
2532
}
2633

27-
if err := issues_model.FinishIssueStopwatchIfPossible(ctx, doer, issue); err != nil {
34+
if err := issues_model.FinishIssueStopwatchIfPossible(dbCtx, doer, issue); err != nil {
35+
return err
36+
}
37+
38+
if err := committer.Commit(); err != nil {
2839
return err
2940
}
41+
committer.Close()
3042

3143
notify_service.IssueChangeStatus(ctx, doer, commitID, issue, comment, true)
3244

0 commit comments

Comments
 (0)