private function importRepository(Project $project, PFUser $creator, SimpleXMLElement $repository_xmlnode, $extraction_path) { $repository_info = $repository_xmlnode->attributes(); $this->logger->debug("Importing {$repository_info['name']} using {$repository_info['bundle-path']}"); $description = isset($repository_info['description']) ? (string) $repository_info['description'] : GitRepository::DEFAULT_DESCRIPTION; $repository = $this->repository_factory->buildRepository($project, $repository_info['name'], $creator, $this->gitolite_backend, $description); $absolute_bundle_path = $extraction_path . '/' . $repository_info['bundle-path']; $extraction_path_arg = escapeshellarg($extraction_path); $this->system_command->exec("chmod 755 {$extraction_path_arg}"); $this->repository_manager->createFromBundle($repository, $this->gitolite_backend, $absolute_bundle_path); $this->importPermissions($project, $repository_xmlnode->children(), $repository); $this->system_event_manager->queueProjectsConfigurationUpdate(array($project->getGroupId())); }
public function createReference($projectId, $repositoryName) { $controller = $this->getController(); $projectId = intval($projectId); try { $creator = UserManager::instance()->getCurrentUser(); $project = ProjectManager::instance()->getProject($projectId); $repository = $this->factory->buildRepository($project, $repositoryName, $creator, $this->backend_gitolite); $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; }