public function process()
 {
     $parameters = $this->getParametersAsArray();
     if (!empty($parameters[0])) {
         $repository_id = (int) $parameters[0];
     } else {
         $this->error('Missing argument repository id');
         return false;
     }
     if (!empty($parameters[1])) {
         $remote_server_id = (int) $parameters[1];
     } else {
         $this->error('Missing argument remote server id');
         return false;
     }
     $repository = $this->repository_factory->getRepositoryById($repository_id);
     if (!$repository) {
         $this->error('Failed to find repository ' . $repository_id);
         return false;
     }
     $server = $this->server_factory->getServerById($remote_server_id);
     if (!$server) {
         $this->error('Failed to find server ' . $remote_server_id);
         return false;
     }
     $project = $repository->getProject();
     if (!$project) {
         $this->error('Failed to find project ' . $repository->getProject());
         return false;
     }
     return $this->makeGerritProjectReadOnly($repository, $server, $project);
 }
Example #2
0
 public function deleteRepository($projectId, $repositoryId)
 {
     $c = $this->getController();
     $projectId = intval($projectId);
     $repositoryId = intval($repositoryId);
     if (empty($projectId) || empty($repositoryId)) {
         $c->addError($this->getText('actions_params_error'));
         return false;
     }
     $repository = $this->factory->getRepositoryById($repositoryId);
     if ($repository) {
         if ($repository->canBeDeleted()) {
             $this->markAsDeleted($repository);
             $c->addInfo($this->getText('actions_delete_process'));
             $c->addInfo($this->getText('actions_delete_backup') . ' : ' . $c->getPlugin()->getConfigurationParameter('git_backup_dir'));
         } else {
             $c->addError($this->getText('backend_delete_haschild_error'));
             $c->redirect('/plugins/git/index.php/' . $projectId . '/view/' . $repositoryId . '/');
             return false;
         }
     } else {
         $c->addError($this->getText('actions_repo_not_found'));
     }
     $c->redirect('/plugins/git/?action=index&group_id=' . $projectId);
 }
 /**
  * Constructor.
  *
  * @param Integer $groupId     Project Id
  * @param Integer $weeksNumber Statistics duration in weeks
  *
  * @return Void
  */
 public function __construct($groupId, $weeksNumber)
 {
     $dao = new GitDao();
     // TODO: Optionally include presonal forks in repo list
     $allRepositories = $dao->getProjectRepositoryList($groupId);
     $um = UserManager::instance();
     $user = $um->getCurrentUser();
     $repoFactory = new GitRepositoryFactory($dao, ProjectManager::instance());
     foreach ($allRepositories as $repo) {
         $repository = $repoFactory->getRepositoryById($repo['repository_id']);
         if ($repository->userCanRead($user)) {
             $this->repoList[] = $repository;
         }
     }
     $this->displayChart = false;
     $this->weeksNumber = min($weeksNumber, self::MAX_WEEKSNUMBER);
     // Init some class properties according to 'weeks number' parameter
     $today = $_SERVER['REQUEST_TIME'];
     $startPeriod = strtotime("-{$this->weeksNumber} weeks");
     $weekInSeconds = self::WEEKS_IN_SECONDS;
     for ($i = $startPeriod + $weekInSeconds; $i < $today + $weekInSeconds; $i += $weekInSeconds) {
         $this->dates[] = date('M d', $i);
         $this->weekNum[] = intval(date('W', $i));
         $this->year[] = intval(date('Y', $i));
     }
 }
Example #4
0
 private function getRepositoriesFromIds(array $repoIds)
 {
     $repos = array();
     foreach ($repoIds as $id) {
         $repos[] = $this->factory->getRepositoryById($id);
     }
     return $repos;
 }
Example #5
0
 private function getRepositoriesFromIds($repository_ids)
 {
     $repositories = array();
     foreach ($repository_ids as $repository_id) {
         $repository = $this->factory->getRepositoryById($repository_id);
         if (!$repository) {
             return false;
         }
         $repositories[] = $repository;
     }
     return $repositories;
 }
 private function verbalizeRepoId($repo_id, $with_link)
 {
     $txt = '#' . $repo_id;
     if ($with_link) {
         $hp = Codendi_HTMLPurifier::instance();
         $repo = $this->repository_factory->getRepositoryById($repo_id);
         if ($repo) {
             $txt = $repo->getHTMLLink($this->url_manager);
         }
     }
     return $txt;
 }
Example #7
0
 /**
  * @return GitRepository|null
  */
 private function getRepositoryFromStandardURL()
 {
     $repository_id = $this->matches['repository_id'];
     $repository_id_is_a_int = preg_match('/^([0-9]+)$/', $repository_id);
     if ($repository_id_is_a_int) {
         return $this->repository_factory->getRepositoryById($repository_id);
     } else {
         $project = $this->getProjectFromStandardURL();
         if (!$project->isError()) {
             return $this->repository_factory->getRepositoryByPath($project->getID(), GitRepository::getPathFromProjectAndName($project, $repository_id));
         }
     }
     return null;
 }
Example #8
0
 /**
  * Wrapper used for tests to get a new GitRepository
  */
 function getGitRepository($repositoryId)
 {
     return $this->factory->getRepositoryById($repositoryId);
 }
 private function getRepositoryFromParameters()
 {
     return $this->repository_factory->getRepositoryById($this->getRepositoryIdFromParameters());
 }
 /**
  * Prepare fork repository message
  *
  * @param String $repos Comma separated repositories Ids selected for fork
  *
  * @return String
  */
 private function displayForkSourceRepositories($repos)
 {
     $dao = new GitDao();
     $repoFactory = new GitRepositoryFactory($dao, $this->getProjectManager());
     $sourceReposHTML = '';
     $repositories = explode(',', $repos);
     foreach ($repositories as $repositoryId) {
         $repository = $repoFactory->getRepositoryById($repositoryId);
         $sourceReposHTML .= '"' . $this->getPurifier()->purify($repository->getFullName()) . '" ';
     }
     return $sourceReposHTML;
 }
 /**
  * Gives the parent GitRepository object of this
  * Look into the database
  * @return GitRepository
  */
 public function getParent()
 {
     if (empty($this->parent)) {
         $factory = new GitRepositoryFactory($this->getDao(), $this->_getProjectManager());
         $this->parent = $factory->getRepositoryById($this->getParentId());
     }
     return $this->parent;
 }