/** * {@inheritdoc} */ public function refreshUser(UserInterface $user) { $refreshedUser = $this->ownerManager->findDeveloperBy(array('id' => $user->getId())); if (null === $refreshedUser) { throw new UsernameNotFoundException(sprintf('User with ID "%d" could not be reloaded.', $user->getId())); } return $refreshedUser; }
private function updateMembers($membersData) { $members = array(); foreach ($membersData as $memberData) { if ($member = $this->manager->createOwner($memberData['login'], 'developer')) { $members[] = $member; } } return $members; }
/** * Takes a bundle and update its contributors * * @param Bundle $bundle */ private function updateContributors(Bundle $bundle) { $contributorNames = $this->githubRepoApi->getContributorNames($bundle); $contributors = array(); foreach ($contributorNames as $contributorName) { $contributors[] = $this->ownerManager->createOwner($contributorName, 'unknown'); } $bundle->setContributors($contributors); if ($this->logger) { $this->logger->info(sprintf('%d contributor(s) have been retrieved for bundle %s', count($contributors), $bundle->getName())); } }
public function updateCommits(Bundle $bundle) { $this->output->write(' commits'); try { $commits = $this->github->api('repo')->commits()->all($bundle->getOwnerName(), $bundle->getName(), array('sha' => 'HEAD', 'per_page' => 30)); } catch (RuntimeException $e) { return false; } $activities = $bundle->getLatestActivities(); $lastEverCommitAt = $bundle->getLastCommitAt(); /* @var $developer EntityDeveloper */ foreach ($commits as $commit) { if (!isset($commit['commit']['committer'])) { continue; } $lastCommitAt = new \DateTime($commit['commit']['committer']['date']); $lastCommitAt->setTimezone(new \DateTimeZone(date_default_timezone_get())); $activityData = array('type' => Activity::ACTIVITY_TYPE_COMMIT, 'message' => strtok($commit['commit']['message'], "\n\r"), 'createdAt' => $lastCommitAt); if (!empty($activities)) { foreach ($activities as $registeredActivity) { if ($registeredActivity->getMessage() === $activityData['message'] && $registeredActivity->getCreatedAt() == $activityData['createdAt']) { continue 2; } } } // be sure that bundle have a latest date following to latest commit if ($lastCommitAt > $lastEverCommitAt) { $lastEverCommitAt = $lastCommitAt; } $activity = new Activity(); $activity->setType($activityData['type']); $activity->setMessage($activityData['message']); $activity->setCreatedAt($activityData['createdAt']); $activity->setBundle($bundle); if (isset($commit['committer']) && isset($commit['committer']['login'])) { $developer = $this->ownerManager->createOwner($commit['committer']['login'], 'developer', true); $developer->setLastCommitAt($lastCommitAt); $activity->setDeveloper($developer); } else { $activity->setAuthor($commit['commit']['committer']['name']); } } // update last pushed commit date $bundle->setLastCommitAt(clone $lastEverCommitAt); if ('developer' === $bundle->getOwnerType()) { $bundle->getOwner()->setLastCommitAt(clone $lastEverCommitAt); } unset($activities); return true; }