public function process() { global $sys_allow_restricted_users; $parameters = $this->getParametersAsArray(); $project = null; if (!empty($parameters[0])) { $project = $this->getProject($parameters[0]); } else { $this->error('Missing argument project id'); return false; } $repositoryName = ''; if (!empty($parameters[1])) { $repositoryName = $parameters[1]; } else { $this->error('Missing argument repository name'); return false; } $userId = 0; if (!empty($parameters[2])) { $userId = $parameters[2]; } else { $this->error('Missing argument user id'); return false; } try { $repository = new GitRepository(); $repository->setBackend(Backend::instance('Git', 'GitBackend')); $repository->setDescription('-- Default description --'); //default access is private when restricted users are allowed if ($sys_allow_restricted_users == 1) { $repository->setAccess(GitRepository::PRIVATE_ACCESS); } else { $repository->setAccess(GitRepository::PUBLIC_ACCESS); } $user = null; if (!empty($userId)) { $user = UserManager::instance()->getUserById($userId); } if (!empty($user)) { $repository->setCreator($user); } $repository->setProject($project); $repository->setName($repositoryName); $repository->create(); $this->done(); } catch (GitDaoException $e) { $this->error($e->getMessage()); return false; } catch (GitDriverException $e) { $this->error($e->getMessage()); return false; } catch (GitBackendException $e) { $this->error($e->getMessage()); return false; } catch (Exception $e) { $this->error($e->getMessage()); return false; } }
public function generateGitRepository() { echo "Create Git repo\n"; $repository_factory = new GitRepositoryFactory(new GitDao(), $this->project_manager); $git_system_event_manager = new Git_SystemEventManager($this->system_event_manager, $repository_factory); $manager = $this->getGitRepositoryManager($repository_factory, $git_system_event_manager); $backend = $this->getGitBackendGitolite($git_system_event_manager); $repository = new GitRepository(); $repository->setBackend($backend); $repository->setDescription("Git repository"); $repository->setCreator($this->user_manager->getUserByUserName(self::TEST_USER_1_NAME)); $repository->setProject($this->project_manager->getProjectByUnixName(self::PROJECT_TEST_GIT_SHORTNAME)); $repository->setName('repo01'); $manager->create($repository, $backend, array()); return $this; }
public function createReference($projectId, $repositoryName) { $controller = $this->getController(); $projectId = intval($projectId); try { $creator = UserManager::instance()->getCurrentUser(); $repository = new GitRepository(); $repository->setBackend($this->backend_gitolite); $repository->setDescription(GitRepository::DEFAULT_DESCRIPTION); $repository->setCreator($creator); $repository->setProject(ProjectManager::instance()->getProject($projectId)); $repository->setName($repositoryName); $this->manager->create($repository, $this->backend_gitolite); $this->history_dao->groupAddHistory("git_repo_create", $repositoryName, $projectId); $this->redirectToRepo($repository); } catch (Exception $exception) { $controller->addError($exception->getMessage()); } $controller->redirect('/plugins/git/?action=index&group_id=' . $projectId); return; }
public function createReference($projectId, $repositoryName) { // Uncomment the following line only for debug prupose if you ever need to // create a gitshell repo (good luck, luke, may the force be with you). //$this->createGitshellReference($projectId, $repositoryName); $c = $this->getController(); $projectId = intval($projectId); try { $repository = new GitRepository(); $repository->setBackend(new Git_Backend_Gitolite(new Git_GitoliteDriver())); $repository->setDescription('-- Default description --'); $repository->setCreator(UserManager::instance()->getCurrentUser()); $repository->setProject(ProjectManager::instance()->getProject($projectId)); $repository->setName($repositoryName); $this->manager->create($repository); } catch (Exception $exception) { $c->addError($exception->getMessage()); } $c->redirect('/plugins/git/?action=index&group_id=' . $projectId); return; }
/** * Returns a default-value-filled repository * @return GitRepository */ public function buildRepository(Project $project, $repository_name, PFUser $creator, Git_Backend_Interface $backend, $description = GitRepository::DEFAULT_DESCRIPTION) { $repository = new GitRepository(); $repository->setBackend($backend); $repository->setDescription($description); $repository->setCreator($creator); $repository->setProject($project); $repository->setName($repository_name); return $repository; }
public function setUp() { parent::setUp(); $this->backend = mock('GitBackend'); $this->repository = new GitRepository(); $this->repository->setBackend($this->backend); }
private function _aGitRepoWith($user, $repo, $namespace, $backend, $scope) { $clone = new GitRepository(); $clone->setCreator($user); $clone->setNamespace($namespace); $clone->setBackend($backend); $clone->setParent($repo); $clone->setScope($scope); $clone->setName($repo->getName()); return $clone; }
public function createReference($projectId, $repositoryName) { // Uncomment the following line only for debug prupose if you ever need to // create a gitshell repo (good luck, luke, may the force be with you). //$this->createGitshellReference($projectId, $repositoryName); $c = $this->getController(); $projectId = intval($projectId); $repository = new GitRepository(); $repository->setBackend(new Git_Backend_Gitolite(new Git_GitoliteDriver())); if ($repository->isNameValid($repositoryName) === false) { $c->addError($this->getText('actions_input_format_error', array($repository->getBackend()->getAllowedCharsInNamePattern(), GitDao::REPO_NAME_MAX_LENGTH))); $c->redirect('/plugins/git/?action=index&group_id=' . $projectId); return false; } $project = ProjectManager::instance()->getProject($projectId); $repository->setDescription('-- Default description --'); $repository->setCreator(UserManager::instance()->getCurrentUser()); $repository->setProject($project); $repository->setName($repositoryName); if (!$this->factory->isRepositoryExistingByName($project, $repositoryName)) { $repository->create(); } else { $c->addError($this->getText('actions_create_repo_exists', array($repositoryName))); } $c->redirect('/plugins/git/?action=index&group_id=' . $projectId); return; }