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();
 }
Beispiel #3
0
 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);
 }