diff options
author | 6543 <6543@obermui.de> | 2022-05-03 21:46:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-03 21:46:28 +0200 |
commit | 92f139d091c906cc6d30599101d45c62a208f585 (patch) | |
tree | e7be0dfc3cd9ae0611bd7cfa11cc1ee277e756fd /models/pull.go | |
parent | 730420b6b32414db7fcd12ede87712b0f960de7b (diff) | |
download | gitea-92f139d091c906cc6d30599101d45c62a208f585.tar.gz gitea-92f139d091c906cc6d30599101d45c62a208f585.zip |
Use for a repo action one database transaction (#19576)
... more context
(part of #9307)
Diffstat (limited to 'models/pull.go')
-rw-r--r-- | models/pull.go | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/models/pull.go b/models/pull.go index 437b202d3f..d056888130 100644 --- a/models/pull.go +++ b/models/pull.go @@ -227,23 +227,23 @@ func (pr *PullRequest) LoadProtectedBranchCtx(ctx context.Context) (err error) { } // GetDefaultMergeMessage returns default message used when merging pull request -func (pr *PullRequest) GetDefaultMergeMessage() (string, error) { +func (pr *PullRequest) GetDefaultMergeMessage(ctx context.Context) (string, error) { if pr.HeadRepo == nil { var err error - pr.HeadRepo, err = repo_model.GetRepositoryByID(pr.HeadRepoID) + pr.HeadRepo, err = repo_model.GetRepositoryByIDCtx(ctx, pr.HeadRepoID) if err != nil { return "", fmt.Errorf("GetRepositoryById[%d]: %v", pr.HeadRepoID, err) } } - if err := pr.LoadIssue(); err != nil { + if err := pr.LoadIssueCtx(ctx); err != nil { return "", fmt.Errorf("Cannot load issue %d for PR id %d: Error: %v", pr.IssueID, pr.ID, err) } - if err := pr.LoadBaseRepo(); err != nil { + if err := pr.LoadBaseRepoCtx(ctx); err != nil { return "", fmt.Errorf("LoadBaseRepo: %v", err) } issueReference := "#" - if pr.BaseRepo.UnitEnabled(unit.TypeExternalTracker) { + if pr.BaseRepo.UnitEnabledCtx(ctx, unit.TypeExternalTracker) { issueReference = "!" } @@ -337,14 +337,14 @@ func (pr *PullRequest) getReviewedByLines(writer io.Writer) error { } // GetDefaultSquashMessage returns default message used when squash and merging pull request -func (pr *PullRequest) GetDefaultSquashMessage() (string, error) { - if err := pr.LoadIssue(); err != nil { +func (pr *PullRequest) GetDefaultSquashMessage(ctx context.Context) (string, error) { + if err := pr.LoadIssueCtx(ctx); err != nil { return "", fmt.Errorf("LoadIssue: %v", err) } - if err := pr.LoadBaseRepo(); err != nil { + if err := pr.LoadBaseRepoCtx(ctx); err != nil { return "", fmt.Errorf("LoadBaseRepo: %v", err) } - if pr.BaseRepo.UnitEnabled(unit.TypeExternalTracker) { + if pr.BaseRepo.UnitEnabledCtx(ctx, unit.TypeExternalTracker) { return fmt.Sprintf("%s (!%d)", pr.Issue.Title, pr.Issue.Index), nil } return fmt.Sprintf("%s (#%d)", pr.Issue.Title, pr.Issue.Index), nil @@ -371,7 +371,7 @@ func (pr *PullRequest) IsEmpty() bool { } // SetMerged sets a pull request to merged and closes the corresponding issue -func (pr *PullRequest) SetMerged() (bool, error) { +func (pr *PullRequest) SetMerged(ctx context.Context) (bool, error) { if pr.HasMerged { return false, fmt.Errorf("PullRequest[%d] already merged", pr.Index) } @@ -380,12 +380,6 @@ func (pr *PullRequest) SetMerged() (bool, error) { } pr.HasMerged = true - - 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 { @@ -432,9 +426,6 @@ func (pr *PullRequest) SetMerged() (bool, error) { return false, fmt.Errorf("Failed to update pr[%d]: %v", pr.ID, err) } - if err := committer.Commit(); err != nil { - return false, fmt.Errorf("Commit: %v", err) - } return true, nil } |