@@ -7,10 +7,14 @@ package repository
77import (
88 "code.gitea.io/gitea/models"
99 "code.gitea.io/gitea/modules/notification"
10+ "code.gitea.io/gitea/modules/sync"
1011
1112 "github.com/unknwon/com"
1213)
1314
15+ // repoWorkingPool represents a working pool to order the parallel changes to the same repository
16+ var repoWorkingPool = sync .NewExclusivePool ()
17+
1418// TransferOwnership transfers all corresponding setting from old user to new one.
1519func TransferOwnership (doer * models.User , newOwnerName string , repo * models.Repository ) error {
1620 if err := repo .GetOwner (); err != nil {
@@ -19,12 +23,12 @@ func TransferOwnership(doer *models.User, newOwnerName string, repo *models.Repo
1923
2024 oldOwner := repo .Owner
2125
22- models . RepoWorkingPool .CheckIn (com .ToStr (repo .ID ))
26+ repoWorkingPool .CheckIn (com .ToStr (repo .ID ))
2327 if err := models .TransferOwnership (doer , newOwnerName , repo ); err != nil {
24- models . RepoWorkingPool .CheckOut (com .ToStr (repo .ID ))
28+ repoWorkingPool .CheckOut (com .ToStr (repo .ID ))
2529 return err
2630 }
27- models . RepoWorkingPool .CheckOut (com .ToStr (repo .ID ))
31+ repoWorkingPool .CheckOut (com .ToStr (repo .ID ))
2832
2933 notification .NotifyTransferRepository (doer , repo , oldOwner .Name )
3034
@@ -39,12 +43,12 @@ func ChangeRepositoryName(doer *models.User, repo *models.Repository, newRepoNam
3943 // repo so that we can atomically rename the repo path and updates the
4044 // local copy's origin accordingly.
4145
42- models . RepoWorkingPool .CheckIn (com .ToStr (repo .ID ))
46+ repoWorkingPool .CheckIn (com .ToStr (repo .ID ))
4347 if err := models .ChangeRepositoryName (doer , repo , newRepoName ); err != nil {
44- models . RepoWorkingPool .CheckOut (com .ToStr (repo .ID ))
48+ repoWorkingPool .CheckOut (com .ToStr (repo .ID ))
4549 return err
4650 }
47- models . RepoWorkingPool .CheckOut (com .ToStr (repo .ID ))
51+ repoWorkingPool .CheckOut (com .ToStr (repo .ID ))
4852
4953 notification .NotifyRenameRepository (doer , repo , oldRepoName )
5054
0 commit comments