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;
     }
 }
示例#2
0
 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;
 }
示例#3
0
 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;
 }
示例#4
0
 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;
 }
示例#6
0
 public function setUp()
 {
     parent::setUp();
     $this->backend = mock('GitBackend');
     $this->repository = new GitRepository();
     $this->repository->setBackend($this->backend);
 }
示例#7
0
 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;
 }
示例#8
0
 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;
 }