diff --git a/models/repo.go b/models/repo.go index ba5b7b36a..cddd57dc3 100644 --- a/models/repo.go +++ b/models/repo.go @@ -2172,6 +2172,7 @@ func GitFsck() { func(idx int, bean interface{}) error { repo := bean.(*Repository) repoPath := repo.RepoPath() + log.Trace(fmt.Sprintf("Running health check for repository %s", repoPath)) if err := git.Fsck(repoPath, setting.Cron.RepoHealthCheck.Timeout, setting.Cron.RepoHealthCheck.Args...); err != nil { desc := fmt.Sprintf("Failed to health check repository (%s): %v", repoPath, err) log.Warn(desc) @@ -2183,6 +2184,7 @@ func GitFsck() { }); err != nil { log.Error(4, "GitFsck: %v", err) } + log.Trace("Finished: GitFsck") } // GitGcRepos calls 'git gc' to remove unnecessary files and optimize the local repository diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index a7c338c10..8f1f4f5f5 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -1220,6 +1220,8 @@ dashboard.reinit_missing_repos = Reinitialize all missing Git repositories for w dashboard.reinit_missing_repos_success = All missing Git repositories for which records existed have been reinitialized. dashboard.sync_external_users = Synchronize external user data dashboard.sync_external_users_started = External user synchronization started +dashboard.git_fsck = Execute health checks on all repositories +dashboard.git_fsck_started = Repository health checks started dashboard.server_uptime = Server Uptime dashboard.current_goroutine = Current Goroutines dashboard.current_memory_usage = Current Memory Usage diff --git a/routers/admin/admin.go b/routers/admin/admin.go index 39a8f718c..9b18847d6 100644 --- a/routers/admin/admin.go +++ b/routers/admin/admin.go @@ -122,6 +122,7 @@ const ( syncRepositoryUpdateHook reinitMissingRepository syncExternalUsers + gitFsck ) // Dashboard show admin panel dashboard @@ -161,6 +162,9 @@ func Dashboard(ctx *context.Context) { case syncExternalUsers: success = ctx.Tr("admin.dashboard.sync_external_users_started") go models.SyncExternalUsers() + case gitFsck: + success = ctx.Tr("admin.dashboard.git_fsck_started") + go models.GitFsck() } if err != nil { diff --git a/templates/admin/dashboard.tmpl b/templates/admin/dashboard.tmpl index 23fc4a422..9ab23f887 100644 --- a/templates/admin/dashboard.tmpl +++ b/templates/admin/dashboard.tmpl @@ -49,6 +49,10 @@ {{.i18n.Tr "admin.dashboard.sync_external_users"}} {{.i18n.Tr "admin.dashboard.operation_run"}} + + {{.i18n.Tr "admin.dashboard.git_fsck"}} + {{.i18n.Tr "admin.dashboard.operation_run"}} +