@@ -33,14 +33,26 @@ import (
3333
3434// DeleteRepository deletes a repository for a user or organization.
3535// make sure if you call this func to close open sessions (sqlite will otherwise get a deadlock)
36- func DeleteRepositoryDirectly (ctx context.Context , doer * user_model.User , uid , repoID int64 ) error {
36+ func DeleteRepositoryDirectly (ctx context.Context , doer * user_model.User , repoID int64 ) error {
3737 ctx , committer , err := db .TxContext (ctx )
3838 if err != nil {
3939 return err
4040 }
4141 defer committer .Close ()
4242 sess := db .GetEngine (ctx )
4343
44+ repo := & repo_model.Repository {}
45+ has , err := sess .ID (repoID ).Get (repo )
46+ if err != nil {
47+ return err
48+ } else if ! has {
49+ return repo_model.ErrRepoNotExist {
50+ ID : repoID ,
51+ OwnerName : "" ,
52+ Name : "" ,
53+ }
54+ }
55+
4456 // Query the action tasks of this repo, they will be needed after they have been deleted to remove the logs
4557 tasks , err := actions_model .FindTasks (ctx , actions_model.FindTaskOptions {RepoID : repoID })
4658 if err != nil {
@@ -54,24 +66,11 @@ func DeleteRepositoryDirectly(ctx context.Context, doer *user_model.User, uid, r
5466 }
5567
5668 // In case is a organization.
57- org , err := user_model .GetUserByID (ctx , uid )
69+ org , err := user_model .GetUserByID (ctx , repo . OwnerID )
5870 if err != nil {
5971 return err
6072 }
6173
62- repo := & repo_model.Repository {OwnerID : uid }
63- has , err := sess .ID (repoID ).Get (repo )
64- if err != nil {
65- return err
66- } else if ! has {
67- return repo_model.ErrRepoNotExist {
68- ID : repoID ,
69- UID : uid ,
70- OwnerName : "" ,
71- Name : "" ,
72- }
73- }
74-
7574 // Delete Deploy Keys
7675 deployKeys , err := asymkey_model .ListDeployKeys (ctx , & asymkey_model.ListDeployKeysOptions {RepoID : repoID })
7776 if err != nil {
@@ -89,7 +88,6 @@ func DeleteRepositoryDirectly(ctx context.Context, doer *user_model.User, uid, r
8988 } else if cnt != 1 {
9089 return repo_model.ErrRepoNotExist {
9190 ID : repoID ,
92- UID : uid ,
9391 OwnerName : "" ,
9492 Name : "" ,
9593 }
@@ -192,7 +190,7 @@ func DeleteRepositoryDirectly(ctx context.Context, doer *user_model.User, uid, r
192190 }
193191 }
194192
195- if _ , err := db .Exec (ctx , "UPDATE `user` SET num_repos=num_repos-1 WHERE id=?" , uid ); err != nil {
193+ if _ , err := db .Exec (ctx , "UPDATE `user` SET num_repos=num_repos-1 WHERE id=?" , repo . OwnerID ); err != nil {
196194 return err
197195 }
198196
0 commit comments