Deleting repository should unlink all related packages (#33653)

Fix #33634

---------

Co-authored-by: Giteabot <teabot@gitea.io>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
(cherry picked from commit f2fbb897f3bf68a1af1410a2b4ce7a289ef73c1a)
This commit is contained in:
Lunny Xiao 2025-02-20 20:17:56 -08:00 committed by Gusted
parent fae5681858
commit e69be4cf55
No known key found for this signature in database
GPG key ID: FD821B732837125F
2 changed files with 12 additions and 11 deletions

View file

@ -16,6 +16,7 @@ import (
git_model "code.gitea.io/gitea/models/git"
issues_model "code.gitea.io/gitea/models/issues"
"code.gitea.io/gitea/models/organization"
packages_model "code.gitea.io/gitea/models/packages"
access_model "code.gitea.io/gitea/models/perm/access"
project_model "code.gitea.io/gitea/models/project"
repo_model "code.gitea.io/gitea/models/repo"
@ -28,6 +29,7 @@ import (
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/storage"
federation_service "code.gitea.io/gitea/services/federation"
"xorm.io/builder"
)
@ -289,6 +291,15 @@ func DeleteRepositoryDirectly(ctx context.Context, doer *user_model.User, repoID
return err
}
if err := federation_service.DeleteFollowingRepos(ctx, repo.ID); err != nil {
return err
}
// unlink packages linked to this repository
if err = packages_model.UnlinkRepositoryFromAllPackages(ctx, repoID); err != nil {
return err
}
if err = committer.Commit(); err != nil {
return err
}