diff options
author | Earl Warren <109468362+earl-warren@users.noreply.github.com> | 2023-12-16 13:17:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-16 12:17:39 +0000 |
commit | 9a15267871dcb1f1f8b39115b8e68ed1f42bf21d (patch) | |
tree | e51a9e189173781682b2a8d99ee8e6c10380b889 | |
parent | b8490d59deeb25aa6f03e77863c0c7ed7abdbb98 (diff) | |
download | gitea-9a15267871dcb1f1f8b39115b8e68ed1f42bf21d.tar.gz gitea-9a15267871dcb1f1f8b39115b8e68ed1f42bf21d.zip |
Initalize stroage for orphaned repository doctor (#28487)
- When a repository is orphaned and has objects stored in any of the
storages such as repository avatar or attachments the delete function
would error, because the storage module wasn't initalized.
- Add code to initialize the storage module.
Refs: https://codeberg.org/forgejo/forgejo/pulls/1954
Co-authored-by: Gusted <postmaster@gusted.xyz>
-rw-r--r-- | modules/doctor/repository.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/modules/doctor/repository.go b/modules/doctor/repository.go index b3a03aa422..6c33426636 100644 --- a/modules/doctor/repository.go +++ b/modules/doctor/repository.go @@ -9,6 +9,7 @@ import ( "code.gitea.io/gitea/models/db" user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/storage" repo_service "code.gitea.io/gitea/services/repository" "xorm.io/builder" @@ -31,6 +32,10 @@ func countOrphanedRepos(ctx context.Context) (int64, error) { // deleteOrphanedRepos delete repository where user of owner_id do not exist func deleteOrphanedRepos(ctx context.Context) (int64, error) { + if err := storage.Init(); err != nil { + return 0, err + } + batchSize := db.MaxBatchInsertSize("repository") e := db.GetEngine(ctx) var deleted int64 |