Example #1
0
 /**
  * @inheritdoc
  */
 public function load(ObjectManager $manager)
 {
     $foobar = new Project('Foobar', 'foobar');
     $foobar->setRepositorySize(256);
     $foobar->setDefaultBranch('new-feature');
     $manager->persist($foobar);
     $this->setReference('project-foobar', $foobar);
     $this->dispatch($foobar);
     $empty = new Project('Empty', 'empty');
     $empty->setRepositorySize(256);
     $manager->persist($empty);
     $this->setReference('project-empty', $empty);
     $this->dispatch($empty);
     $barbaz = new Project('Barbaz', 'barbaz');
     $barbaz->setRepositorySize(352);
     $manager->persist($barbaz);
     $this->setReference('project-barbaz', $barbaz);
     $this->dispatch($barbaz);
     $secret = new Project('Secret', 'secret');
     $secret->setRepositorySize(564);
     $manager->persist($secret);
     $this->setReference('project-secret', $secret);
     $this->dispatch($secret);
     $manager->flush();
 }
Example #2
0
    public function findByProject(Entity\Project $project)
    {
        $em = $this->getManager();
        $query = $em->createQuery(<<<SQL
SELECT U
  FROM GitonomyCoreBundle:User U
INNER JOIN U.projectRoles UR
 WHERE UR.project = :projectId
SQL
)->setParameter('projectId', $project->getId());
        return $query->getResult();
    }
Example #3
0
 /**
  * @inheritdoc
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $em = $this->getContainer()->get('doctrine')->getManager();
     $project = new Project();
     $project->setName($input->getArgument('name'));
     $project->setSlug($input->getArgument('slug'));
     $em->persist($project);
     $em->flush();
     $event = new ProjectEvent($project);
     $this->getContainer()->get('gitonomy_core.event_dispatcher')->dispatch(GitonomyEvents::PROJECT_CREATE, $event);
     $em->persist($project);
     $em->flush();
     $output->writeln(sprintf('Project <info>%s</info> was created!', $project->getName()));
 }
Example #4
0
 public function getBranchesActivity(Project $project, $branch = null)
 {
     $repository = $project->getRepository();
     $references = $repository->getReferences();
     $branchName = null === $branch ? $project->getDefaultBranch() : $branch;
     $against = $references->getBranch($branchName);
     foreach ($references->getBranches() as $branch) {
         $logBehind = $repository->getLog($repository->getRevision($branch->getFullname() . '..' . $against->getFullname()));
         $logAbove = $repository->getLog($repository->getRevision($against->getFullname() . '..' . $branch->getFullname()));
         $rows[] = array('branch' => $branch, 'above' => $logAbove->count(), 'behind' => $logBehind->count(), 'lastModification' => $branch->getLastModification());
     }
     usort($rows, function ($left, $right) {
         return $left['lastModification']->getAuthorDate() < $right['lastModification']->getAuthorDate();
     });
     return $rows;
 }
Example #5
0
 public static function create(Project $project, Reference $reference, User $user)
 {
     return new self(array('project_id' => $project->getId(), 'user_id' => $user->getId(), 'ref' => $reference->getFullname()));
 }
Example #6
0
 /**
  * Handles the git pack.
  */
 public function handle(Project $project, $command, array $env = array())
 {
     $project->getRepository()->shell($command, $env);
 }
Example #7
0
 /**
  * Computes the repository path for a given project.
  */
 protected function getPath(Project $project)
 {
     return $this->repositoryPath . '/' . $project->getSlug() . '.git';
 }
Example #8
0
 public function isProject(Project $project)
 {
     return $project->getSlug() == $this->slug;
 }
Example #9
0
 public static function isSlugValid(Project $project, ExecutionContextInterface $context)
 {
     if (!preg_match('#^' . Project::SLUG_PATTERN . '$#', $project->getSlug())) {
         $context->addViolationAt('slug', 'This value is not valid.', array(), null);
     }
 }