mirror of
https://github.com/go-gitea/gitea.git
synced 2024-09-01 14:56:30 +00:00
Use lockCtx when necessary
This commit is contained in:
parent
4bf86e9594
commit
1e1d6e947e
@ -170,13 +170,6 @@ func Merge(ctx context.Context, pr *issues_model.PullRequest, doer *user_model.U
|
|||||||
return fmt.Errorf("unable to load head repo: %w", err)
|
return fmt.Errorf("unable to load head repo: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, releaser, err := globallock.Lock(ctx, getPullWorkingLockKey(pr.ID))
|
|
||||||
if err != nil {
|
|
||||||
log.Error("lock.Lock(): %v", err)
|
|
||||||
return fmt.Errorf("lock.Lock: %w", err)
|
|
||||||
}
|
|
||||||
defer releaser()
|
|
||||||
|
|
||||||
prUnit, err := pr.BaseRepo.GetUnit(ctx, unit.TypePullRequests)
|
prUnit, err := pr.BaseRepo.GetUnit(ctx, unit.TypePullRequests)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("pr.BaseRepo.GetUnit(unit.TypePullRequests): %v", err)
|
log.Error("pr.BaseRepo.GetUnit(unit.TypePullRequests): %v", err)
|
||||||
@ -189,11 +182,18 @@ func Merge(ctx context.Context, pr *issues_model.PullRequest, doer *user_model.U
|
|||||||
return models.ErrInvalidMergeStyle{ID: pr.BaseRepo.ID, Style: mergeStyle}
|
return models.ErrInvalidMergeStyle{ID: pr.BaseRepo.ID, Style: mergeStyle}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lockCtx, releaser, err := globallock.Lock(ctx, getPullWorkingLockKey(pr.ID))
|
||||||
|
if err != nil {
|
||||||
|
log.Error("lock.Lock(): %v", err)
|
||||||
|
return fmt.Errorf("lock.Lock: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
go AddTestPullRequestTask(doer, pr.BaseRepo.ID, pr.BaseBranch, false, "", "")
|
go AddTestPullRequestTask(doer, pr.BaseRepo.ID, pr.BaseBranch, false, "", "")
|
||||||
}()
|
}()
|
||||||
|
|
||||||
_, err = doMergeAndPush(ctx, pr, doer, mergeStyle, expectedHeadCommitID, message, repo_module.PushTriggerPRMergeToBase)
|
_, err = doMergeAndPush(lockCtx, pr, doer, mergeStyle, expectedHeadCommitID, message, repo_module.PushTriggerPRMergeToBase)
|
||||||
|
releaser()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -492,14 +492,13 @@ func CheckPullBranchProtections(ctx context.Context, pr *issues_model.PullReques
|
|||||||
|
|
||||||
// MergedManually mark pr as merged manually
|
// MergedManually mark pr as merged manually
|
||||||
func MergedManually(ctx context.Context, pr *issues_model.PullRequest, doer *user_model.User, baseGitRepo *git.Repository, commitID string) error {
|
func MergedManually(ctx context.Context, pr *issues_model.PullRequest, doer *user_model.User, baseGitRepo *git.Repository, commitID string) error {
|
||||||
ctx, releaser, err := globallock.Lock(ctx, getPullWorkingLockKey(pr.ID))
|
lockCtx, releaser, err := globallock.Lock(ctx, getPullWorkingLockKey(pr.ID))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("lock.Lock(): %v", err)
|
log.Error("lock.Lock(): %v", err)
|
||||||
return fmt.Errorf("lock.Lock: %w", err)
|
return fmt.Errorf("lock.Lock: %w", err)
|
||||||
}
|
}
|
||||||
defer releaser()
|
|
||||||
|
|
||||||
if err := db.WithTx(ctx, func(ctx context.Context) error {
|
err = db.WithTx(lockCtx, func(ctx context.Context) error {
|
||||||
if err := pr.LoadBaseRepo(ctx); err != nil {
|
if err := pr.LoadBaseRepo(ctx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -549,7 +548,9 @@ func MergedManually(ctx context.Context, pr *issues_model.PullRequest, doer *use
|
|||||||
return fmt.Errorf("SetMerged failed")
|
return fmt.Errorf("SetMerged failed")
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}); err != nil {
|
})
|
||||||
|
releaser()
|
||||||
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,13 +42,13 @@ func TransferOwnership(ctx context.Context, doer, newOwner *user_model.User, rep
|
|||||||
|
|
||||||
oldOwner := repo.Owner
|
oldOwner := repo.Owner
|
||||||
|
|
||||||
ctx, releaser, err := globallock.Lock(ctx, getRepoWorkingLockKey(repo.ID))
|
lockCtx, releaser, err := globallock.Lock(ctx, getRepoWorkingLockKey(repo.ID))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("lock.Lock(): %v", err)
|
log.Error("lock.Lock(): %v", err)
|
||||||
return fmt.Errorf("lock.Lock: %w", err)
|
return fmt.Errorf("lock.Lock: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := transferOwnership(ctx, doer, newOwner.Name, repo); err != nil {
|
if err := transferOwnership(lockCtx, doer, newOwner.Name, repo); err != nil {
|
||||||
releaser()
|
releaser()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -368,13 +368,13 @@ func ChangeRepositoryName(ctx context.Context, doer *user_model.User, repo *repo
|
|||||||
// repo so that we can automatically rename the repo path and updates the
|
// repo so that we can automatically rename the repo path and updates the
|
||||||
// local copy's origin accordingly.
|
// local copy's origin accordingly.
|
||||||
|
|
||||||
ctx, releaser, err := globallock.Lock(ctx, getRepoWorkingLockKey(repo.ID))
|
lockCtx, releaser, err := globallock.Lock(ctx, getRepoWorkingLockKey(repo.ID))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("lock.Lock(): %v", err)
|
log.Error("lock.Lock(): %v", err)
|
||||||
return fmt.Errorf("lock.Lock: %w", err)
|
return fmt.Errorf("lock.Lock: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := changeRepositoryName(ctx, repo, newRepoName); err != nil {
|
if err := changeRepositoryName(lockCtx, repo, newRepoName); err != nil {
|
||||||
releaser()
|
releaser()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user