public function process() { $parameters = $this->getParametersAsArray(); //project id $projectId = 0; if (!empty($parameters[0])) { $projectId = (int) $parameters[0]; } else { $this->error('Missing argument project id'); return false; } //repo id $repositoryId = 0; if (!empty($parameters[1])) { $repositoryId = (int) $parameters[1]; } else { $this->error('Missing argument repository id'); return false; } $repository = $this->repository_factory->getDeletedRepository($repositoryId); if ($repository->getProjectId() != $projectId) { $this->error('Bad project id'); return false; } return $this->deleteRepo($repository, $projectId, $parameters); }
public function process() { $repository = $this->getRepositoryFromParameters(); if (!$repository) { if ($this->repository_factory->getDeletedRepository($this->getRepositoryIdFromParameters())) { $this->done('Unable to update a repository marked as deleted'); return; } $this->warning('Unable to find repository, perhaps it was deleted in the mean time?'); return; } $this->system_event_manager->queueGrokMirrorManifest($repository); $repository->getBackend()->updateRepoConf($repository); $this->done(); }
protected function _informAboutPendingEvents($repoId) { $sem = SystemEventManager::instance(); $dar = $sem->_getDao()->searchWithParam('head', $this->groupId, array('GIT_REPO_CREATE', 'GIT_REPO_CLONE', 'GIT_REPO_DELETE'), array(SystemEvent::STATUS_NEW, SystemEvent::STATUS_RUNNING)); foreach ($dar as $row) { $p = explode(SystemEvent::PARAMETER_SEPARATOR, $row['parameters']); $repository = $this->factory->getDeletedRepository($p[1]); switch ($row['type']) { case 'GIT_REPO_CREATE': $GLOBALS['Response']->addFeedback('info', $this->getText('feedback_event_create', array($p[1]))); break; case 'GIT_REPO_CLONE': $GLOBALS['Response']->addFeedback('info', $this->getText('feedback_event_fork', array($p[1]))); break; case 'GIT_REPO_DELETE': $GLOBALS['Response']->addFeedback('info', $this->getText('feedback_event_delete', array($repository->getFullName()))); break; } } if ($repoId !== 0) { $dar = $sem->_getDao()->searchWithParam('head', $repoId, array('GIT_REPO_ACCESS'), array(SystemEvent::STATUS_NEW, SystemEvent::STATUS_RUNNING)); foreach ($dar as $row) { $GLOBALS['Response']->addFeedback('info', $this->getText('feedback_event_access')); } } }
public function process() { $parameters = $this->getParametersAsArray(); $repository_id = 0; if (!empty($parameters[0])) { $repository_id = (int) $parameters[0]; } else { $this->error('Missing argument repository id'); return false; } $repository = $this->repository_factory->getDeletedRepository($repository_id); $active_repository = $this->repository_factory->getRepositoryByPath($repository->getProject()->getId(), $repository->getPath()); if ($active_repository instanceof GitRepository) { $this->error('Repository with the same name already exsit'); return false; } if (!$repository->getBackend()->restoreArchivedRepository($repository)) { $this->error('Unable to restore repository : ' . $repository->getName()); return false; } $repository->getBackend()->updateRepoConf($repository); $this->system_event_manager->queueGrokMirrorManifest($repository); $this->done(); }
public function restoreRepository($repo_id, $project_id) { $repository = $this->factory->getDeletedRepository($repo_id); $url = '/admin/show_pending_documents.php?group_id=' . $project_id . '&focus=git_repository'; if (!$repository) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_git', 'restore_invalid_id')); $GLOBALS['Response']->redirect($url); } $active_repository = $this->factory->getRepositoryByPath($project_id, $repository->getPath()); if ($active_repository instanceof GitRepository) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_git', 'restore_invalid_name')); } else { $this->git_system_event_manager->queueRepositoryRestore($repository); $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_git', 'restore_event_created') . ' : ' . $repository->getName()); } $GLOBALS['Response']->redirect($url); }