@@ -52,8 +52,9 @@ func AdoptRepository(ctx context.Context, doer, u *user_model.User, opts CreateR
5252 IsEmpty : ! opts .AutoInit ,
5353 }
5454
55+ repoPath := repo_model .RepoPath (u .Name , repo .Name )
56+
5557 if err := db .WithTx (ctx , func (ctx context.Context ) error {
56- repoPath := repo_model .RepoPath (u .Name , repo .Name )
5758 isExist , err := util .IsExist (repoPath )
5859 if err != nil {
5960 log .Error ("Unable to check if %s exists. Error: %v" , repoPath , err )
@@ -75,7 +76,12 @@ func AdoptRepository(ctx context.Context, doer, u *user_model.User, opts CreateR
7576 if repo , err = repo_model .GetRepositoryByID (ctx , repo .ID ); err != nil {
7677 return fmt .Errorf ("getRepositoryByID: %w" , err )
7778 }
79+ return nil
80+ }); err != nil {
81+ return nil , err
82+ }
7883
84+ if err := func () error {
7985 if err := adoptRepository (ctx , repoPath , repo , opts .DefaultBranch ); err != nil {
8086 return fmt .Errorf ("adoptRepository: %w" , err )
8187 }
@@ -84,24 +90,19 @@ func AdoptRepository(ctx context.Context, doer, u *user_model.User, opts CreateR
8490 return fmt .Errorf ("checkDaemonExportOK: %w" , err )
8591 }
8692
87- // Initialize Issue Labels if selected
88- if len (opts .IssueLabels ) > 0 {
89- if err := repo_module .InitializeLabels (ctx , repo .ID , opts .IssueLabels , false ); err != nil {
90- return fmt .Errorf ("InitializeLabels: %w" , err )
91- }
92- }
93-
9493 if stdout , _ , err := git .NewCommand (ctx , "update-server-info" ).
9594 SetDescription (fmt .Sprintf ("CreateRepository(git update-server-info): %s" , repoPath )).
9695 RunStdString (& git.RunOpts {Dir : repoPath }); err != nil {
9796 log .Error ("CreateRepository(git update-server-info) in %v: Stdout: %s\n Error: %v" , repo , stdout , err )
9897 return fmt .Errorf ("CreateRepository(git update-server-info): %w" , err )
9998 }
10099 return nil
101- }); err != nil {
100+ }(); err != nil {
101+ if errDel := DeleteRepository (ctx , doer , repo , false /* no notify */ ); errDel != nil {
102+ log .Error ("Failed to delete repository %s that could not be adopted: %v" , repo .FullName (), errDel )
103+ }
102104 return nil , err
103105 }
104-
105106 notify_service .AdoptRepository (ctx , doer , u , repo )
106107
107108 return repo , nil
0 commit comments