/** * @param array $data * @return PushEvent */ private function createPushEvent($data) { $event = new PushEvent(); $event->provider = self::NAME; $event->before = $data['before']; $event->after = $data['after']; $event->ref = $data['ref']; $user = new User(); $user->id = $data['sender']['id']; $user->name = $data['pusher']['name']; if (isset($data['pusher']['email'])) { $user->email = $data['pusher']['email']; } $repository = new Repository(); $repository->id = $data['repository']['id']; $repository->name = $data['repository']['name']; $repository->namespace = $this->extractNamespace($data['repository']['full_name']); $repository->description = $data['repository']['description']; $repository->homepage = $data['repository']['homepage']; $repository->url = $data['repository']['html_url']; $event->user = $user; $event->repository = $repository; $event->commits = $this->createCommits($data['commits']); if (!$event->commits) { $event->commits[] = $this->createCommit($data['head_commit']); // fix empty commits } $event->type = Util::getPushType($event->ref); if ($event->type == PushEvent::TYPE_BRANCH) { $event->branchName = Util::getBranchName($event->ref); } else { $event->tagName = Util::getTagName($event->ref); } return $event; }
/** * @param array $data * @return PushEvent */ private function createPushEvent(array $data) { $event = new PushEvent(); $event->provider = self::NAME; $event->before = $data['before']; $event->after = $data['after']; $event->ref = $data['ref']; $user = new User(); $user->id = $data['user_id']; $user->name = $data['user_name']; if (isset($data['user_email'])) { $user->email = $data['user_email']; } $repository = new Repository(); $repository->id = $data['project_id']; $repository->name = $data['project']['name']; $repository->namespace = $data['project']['namespace']; $repository->description = $data['project']['description']; $repository->homepage = $data['project']['homepage']; $repository->url = $data['project']['url']; $event->user = $user; $event->repository = $repository; $event->commits = $this->createCommits($data['commits']); $event->type = Util::getPushType($event->ref); if ($event->type == PushEvent::TYPE_BRANCH) { $event->branchName = Util::getBranchName($event->ref); } else { $event->tagName = Util::getTagName($event->ref); } return $event; }