aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEarl Warren <109468362+earl-warren@users.noreply.github.com>2023-12-16 13:17:39 +0100
committerGitHub <noreply@github.com>2023-12-16 12:17:39 +0000
commit9a15267871dcb1f1f8b39115b8e68ed1f42bf21d (patch)
treee51a9e189173781682b2a8d99ee8e6c10380b889
parentb8490d59deeb25aa6f03e77863c0c7ed7abdbb98 (diff)
downloadgitea-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.go5
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