@@ -29,6 +29,13 @@ func CreateRepository(doer, u *models.User, opts models.CreateRepoOptions) (*mod
2929 opts .DefaultBranch = setting .Repository .DefaultBranch
3030 }
3131
32+ // Check if label template exist
33+ if len (opts .IssueLabels ) > 0 {
34+ if _ , err := models .GetLabelTemplateFile (opts .IssueLabels ); err != nil {
35+ return nil , err
36+ }
37+ }
38+
3239 repo := & models.Repository {
3340 OwnerID : u .ID ,
3441 Owner : u ,
@@ -47,6 +54,8 @@ func CreateRepository(doer, u *models.User, opts models.CreateRepoOptions) (*mod
4754 TrustModel : opts .TrustModel ,
4855 }
4956
57+ var rollbackRepo * models.Repository
58+
5059 if err := models .WithTx (func (ctx models.DBContext ) error {
5160 if err := models .CreateRepository (ctx , doer , u , repo , false ); err != nil {
5261 return err
@@ -85,9 +94,8 @@ func CreateRepository(doer, u *models.User, opts models.CreateRepoOptions) (*mod
8594 // Initialize Issue Labels if selected
8695 if len (opts .IssueLabels ) > 0 {
8796 if err := models .InitializeLabels (ctx , repo .ID , opts .IssueLabels , false ); err != nil {
88- if errDelete := models .DeleteRepository (doer , u .ID , repo .ID ); errDelete != nil {
89- log .Error ("Rollback deleteRepository: %v" , errDelete )
90- }
97+ rollbackRepo = repo
98+ rollbackRepo .OwnerID = u .ID
9199 return fmt .Errorf ("InitializeLabels: %v" , err )
92100 }
93101 }
@@ -96,13 +104,18 @@ func CreateRepository(doer, u *models.User, opts models.CreateRepoOptions) (*mod
96104 SetDescription (fmt .Sprintf ("CreateRepository(git update-server-info): %s" , repoPath )).
97105 RunInDir (repoPath ); err != nil {
98106 log .Error ("CreateRepository(git update-server-info) in %v: Stdout: %s\n Error: %v" , repo , stdout , err )
99- if errDelete := models .DeleteRepository (doer , u .ID , repo .ID ); errDelete != nil {
100- log .Error ("Rollback deleteRepository: %v" , errDelete )
101- }
107+ rollbackRepo = repo
108+ rollbackRepo .OwnerID = u .ID
102109 return fmt .Errorf ("CreateRepository(git update-server-info): %v" , err )
103110 }
104111 return nil
105112 }); err != nil {
113+ if rollbackRepo != nil {
114+ if errDelete := models .DeleteRepository (doer , rollbackRepo .OwnerID , rollbackRepo .ID ); errDelete != nil {
115+ log .Error ("Rollback deleteRepository: %v" , errDelete )
116+ }
117+ }
118+
106119 return nil , err
107120 }
108121
0 commit comments