Skip to content

Commit d0ea10b

Browse files
authored
Close the gitrepo when deleting the repository (#15876)
Signed-off-by: Andrew Thornton <[email protected]>
1 parent f6be429 commit d0ea10b

File tree

4 files changed

+14
-0
lines changed

4 files changed

+14
-0
lines changed

modules/migrations/gitea_uploader.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -851,6 +851,7 @@ func (g *GiteaLocalUploader) CreateReviews(reviews ...*base.Review) error {
851851
// Rollback when migrating failed, this will rollback all the changes.
852852
func (g *GiteaLocalUploader) Rollback() error {
853853
if g.repo != nil && g.repo.ID > 0 {
854+
g.gitRepo.Close()
854855
if err := models.DeleteRepository(g.doer, g.repo.OwnerID, g.repo.ID); err != nil {
855856
return err
856857
}

routers/admin/repos.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ func DeleteRepo(ctx *context.Context) {
4747
return
4848
}
4949

50+
if ctx.Repo != nil && ctx.Repo.GitRepo != nil && ctx.Repo.Repository != nil && ctx.Repo.Repository.ID == repo.ID {
51+
ctx.Repo.GitRepo.Close()
52+
}
53+
5054
if err := repo_service.DeleteRepository(ctx.User, repo); err != nil {
5155
ctx.ServerError("DeleteRepository", err)
5256
return

routers/api/v1/repo/repo.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -889,6 +889,10 @@ func Delete(ctx *context.APIContext) {
889889
return
890890
}
891891

892+
if ctx.Repo.GitRepo != nil {
893+
ctx.Repo.GitRepo.Close()
894+
}
895+
892896
if err := repo_service.DeleteRepository(ctx.User, repo); err != nil {
893897
ctx.Error(http.StatusInternalServerError, "DeleteRepository", err)
894898
return

routers/repo/setting.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,11 @@ func SettingsPost(ctx *context.Context) {
544544
return
545545
}
546546

547+
// Close the gitrepository before doing this.
548+
if ctx.Repo.GitRepo != nil {
549+
ctx.Repo.GitRepo.Close()
550+
}
551+
547552
if err := repo_service.DeleteRepository(ctx.User, ctx.Repo.Repository); err != nil {
548553
ctx.ServerError("DeleteRepository", err)
549554
return

0 commit comments

Comments
 (0)