|
|
|
@ -1325,6 +1325,42 @@ func DeleteRepositoryArchives() error {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// DeleteMissingRepositories deletes all repository records that lost Git files.
|
|
|
|
|
func DeleteMissingRepositories() error {
|
|
|
|
|
repos := make([]*Repository, 0, 5)
|
|
|
|
|
if err := x.Where("id > 0").Iterate(new(Repository),
|
|
|
|
|
func(idx int, bean interface{}) error {
|
|
|
|
|
repo := bean.(*Repository)
|
|
|
|
|
repoPath, err := repo.RepoPath()
|
|
|
|
|
if err != nil {
|
|
|
|
|
return fmt.Errorf("RepoPath [%d]: %v", repo.ID, err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if !com.IsDir(repoPath) {
|
|
|
|
|
repos = append(repos, repo)
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
}); err != nil {
|
|
|
|
|
if err2 := CreateRepositoryNotice(fmt.Sprintf("DeleteMissingRepositories: %v", err)); err2 != nil {
|
|
|
|
|
log.Error(4, "CreateRepositoryNotice: %v", err2)
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if len(repos) == 0 {
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for _, repo := range repos {
|
|
|
|
|
if err := DeleteRepository(repo.OwnerID, repo.ID); err != nil {
|
|
|
|
|
if err2 := CreateRepositoryNotice(fmt.Sprintf("DeleteRepository [%d]: %v", repo.ID, err)); err2 != nil {
|
|
|
|
|
log.Error(4, "CreateRepositoryNotice: %v", err2)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// RewriteRepositoryUpdateHook rewrites all repositories' update hook.
|
|
|
|
|
func RewriteRepositoryUpdateHook() error {
|
|
|
|
|
return x.Where("id > 0").Iterate(new(Repository),
|
|
|
|
|