/** * * Purge archived Gitolite repositories * * @param Logger $logger * */ public function purgeArchivedRepositories(Logger $logger) { if (!isset($GLOBALS['sys_file_deletion_delay'])) { $logger->warn("Purge of archived Gitolite repositories is disabled: sys_file_deletion_delay is missing in local.inc file"); return; } $retention_period = intval($GLOBALS['sys_file_deletion_delay']); $archived_repositories = $this->repository_factory->getArchivedRepositoriesToPurge($retention_period); foreach ($archived_repositories as $repository) { try { $backend = $repository->getBackend(); $backend->deletePermissions($repository); $logger->info('Purge of archived Gitolite repository: ' . $repository->getName()); $backend->deleteArchivedRepository($repository); } catch (GitDriverErrorException $exception) { $logger->error($exception->getMessage()); } } }