Example #1
0
 /**
  * @param Project $project
  * @return array|\Gitlab\Model\Project|null
  */
 public function createProject(Project $project)
 {
     // Fast Return in case of server stopped
     if (!$this->isServerAvailable()) {
         return null;
     }
     // Creating project
     $gitLabProject = \Gitlab\Model\Project::create($this->gitLabClient, $project->getName(), array('description' => $project->getDescription(), 'issue_enabled' => $project->isGitLabIssueEnabled(), 'wiki_enabled' => $project->isGitLabWikiEnabled(), 'snippets_enabled' => $project->isGitLabSnippetsEnabled(), 'builds_enabled' => false));
     // returning created object
     return $gitLabProject;
 }
Example #2
0
 /**
  * New demand project related
  *  To user
  *  To admin
  * @param Demand $demand
  * @param Project $project
  */
 public function projectRequestSendMail(Demand $demand, Project $project)
 {
     // User mail
     $template = "SpiritDevDBoxPortalBundle:Mailer/Project:projectRequest.html.twig";
     // Template
     $subject = $this->getSubject('Project creation request - ' . $project->getName());
     // Subject
     $demandUrl = $this->router->generate('spirit_dev_dbox_portal_bundle_demand', array('id' => $demand->getId()), true);
     $rendered = $this->templating->render($template, array('firstname' => $demand->getApplicant()->getFirstName(), 'lastname' => $demand->getApplicant()->getLastName(), 'project_name' => $project->getName(), 'project_description' => $project->getDescription(), 'project_owner' => $project->getOwner(), 'project_team' => $project->getTeamMembers(), 'demand_url' => $demandUrl));
     // Template rendering
     // Send mail effectively
     $this->sendEmailMessage($rendered, $subject, $demand->getApplicant()->getEmail());
     // Admin mail
     $this->sendNewDemandAdminMail($demand, 'Admin - Project creation request - ');
 }
Example #3
0
 /**
  * Update project
  * @param Project $project
  * @return mixed
  */
 public function updateProject(Project $project)
 {
     // Fast Return in case of server stopped
     if (!$this->serverAvailable) {
         return null;
     }
     $xml = new \SimpleXMLElement('<?xml version="1.0"?><project></project>');
     $xml->addChild('name', $project->getName());
     $xml->addChild('identifier', $this->defineIdentifier($project->getName()));
     $xml->addChild('description', $project->getDescription());
     $xml->addChild('homepage', $this->defineHomepage($project->getName()));
     $xml->addChild('is_public', 'false');
     // Adding modules
     foreach ($this->pmModules as $pmModule) {
         $xml->addChild('enabled_module_names', $pmModule);
     }
     return $this->sendRequest("/projects/" . $project->getRedmineProjectId() . ".xml", $xml->asXML(), 'PUT', array('Content-Type: text/xml'), true, array(CURLOPT_VERBOSE => 0, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1));
 }
 /**
  * Setting demand content
  * @param Project $project
  * @return array
  */
 private function setContentData(Project $project)
 {
     $owner = $project->getOwner()->getCommonName();
     $teamMembersArray = "";
     $teamMembers = $project->getTeamMembers();
     $tml = count($teamMembers);
     $tmc = 1;
     foreach ($teamMembers as $member) {
         $teamMembersArray .= $member->getCommonName();
         if ($tmc < $tml) {
             $teamMembersArray .= ", ";
         }
         $tmc++;
     }
     return ["name" => $project->getName(), "description" => $project->getDescription(), "owner" => $owner, "team_members" => $teamMembersArray, "git_issues" => $project->isGitLabIssueEnabled(), "git_wiki" => $project->isGitLabWikiEnabled(), "git_snippets" => $project->isGitLabSnippetsEnabled(), "id" => $project->getId()];
 }