/** * @return string Gerrit project name * * @throws Git_Driver_Gerrit_ProjectCreator_ProjectAlreadyexistsException * @throws Git_Driver_Gerrit_Exception * @throws Git_Command_Exception */ public function createGerritProject(Git_RemoteServer_GerritServer $gerrit_server, GitRepository $repository, $template_id) { $project = $repository->getProject(); $project_name = $project->getUnixName(); $ugroups = $this->ugroup_manager->getUGroups($project); $driver = $this->driver_factory->getDriver($gerrit_server); $name = $driver->getGerritProjectName($repository); if ($driver->doesTheProjectExist($gerrit_server, $name)) { throw new Git_Driver_Gerrit_ProjectCreator_ProjectAlreadyexistsException($name, $gerrit_server->getHost()); } $migrated_ugroups = $this->membership_manager->createArrayOfGroupsForServer($gerrit_server, $ugroups); $this->umbrella_manager->recursivelyCreateUmbrellaProjects(array($gerrit_server), $project); $gerrit_project_name = $driver->createProject($gerrit_server, $repository, $project_name); $this->pushMinimalPermissionsToMigrateTuleapRepoOnGerrit($gerrit_server, $repository); $this->exportGitBranches($gerrit_server, $gerrit_project_name, $repository); // This method behaviour & all should be transfered into "finalizeGerritProjectCreation" $this->pushFullTuleapAccessRightsToGerrit($repository, $gerrit_server, $migrated_ugroups, ForgeConfig::get('sys_default_domain') . '-' . self::GROUP_REPLICATION, $template_id); return $gerrit_project_name; }
public function itDoesntCallTheDriverToSetTheParentProjectIfNone() { stub($this->project_manager)->getParentProject($this->project->getID())->returns(null); expect($this->driver)->setProjectInheritance($this->server, $this->project->getUnixName(), $this->parent_project->getUnixName())->never(); $this->umbrella_manager->recursivelyCreateUmbrellaProjects(array($this->server), $this->project); }