コード例 #1
0
 /**
  * @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;
 }
コード例 #2
0
 /**
  * @param array $gerrit_servers
  * @param Project $project
  */
 private function createProjectOnServers(array $gerrit_servers, Project $project)
 {
     $ugroups = $this->ugroup_manager->getUGroups($project);
     $admin_ugroup = $this->getAdminUGroup($ugroups);
     $project_name = $project->getUnixName();
     foreach ($gerrit_servers as $gerrit_server) {
         $this->membership_manager->createArrayOfGroupsForServer($gerrit_server, $ugroups);
         $driver = $this->driver_factory->getDriver($gerrit_server);
         if (!$driver->doesTheParentProjectExist($gerrit_server, $project_name)) {
             $admin_group_name = $project_name . '/' . $admin_ugroup->getNormalizedName();
             $project_name = $driver->createProjectWithPermissionsOnly($gerrit_server, $project, $admin_group_name);
         }
     }
 }