{"action":"created","comment":{"url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/pulls/comments/37626822","id":37626822,"diff_hunk":"@@ -0,0 +1,229 @@\n+<?php\n+\n+/**\n+ * This file is part of the EzSystemsRecommendationBundle package.\n+ *\n+ * @copyright Copyright (C) eZ Systems AS. All rights reserved.\n+ * @license For full copyright and license information view LICENSE file distributed with this source code.\n+ */\n+namespace EzSystems\\RecommendationBundle\\Rest\\Controller;\n+\n+use eZ\\Bundle\\EzPublishCoreBundle\\Imagine\\AliasGenerator as ImageVariationService;\n+use eZ\\Publish\\API\\Repository\\Values\\Content\\Field;\n+use eZ\\Publish\\API\\Repository\\Values\\ContentType\\ContentType;\n+use eZ\\Publish\\Core\\MVC\\ConfigResolverInterface;\n+use eZ\\Publish\\Core\\REST\\Server\\Controller as BaseController;\n+use eZ\\Publish\\Core\\Repository\\ContentService;\n+use eZ\\Publish\\Core\\Repository\\LocationService;\n+use eZ\\Publish\\Core\\Repository\\ContentTypeService;\n+use eZ\\Publish\\Core\\Repository\\SearchService;\n+use EzSystems\\RecommendationBundle\\Rest\\Values\\ContentData as ContentDataValue;\n+use Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface as UrlGenerator;\n+\n+/**\n+ * Recommendation REST Content controller.\n+ */\n+class ContentController extends BaseController\n+{\n+    /** @var \\eZ\\Publish\\Core\\MVC\\ConfigResolverInterface */\n+    protected $configResolver;\n+\n+    /** @var \\eZ\\Bundle\\EzPublishCoreBundle\\Imagine\\AliasGenerator */\n+    protected $imageVariationService;\n+\n+    /** @var \\Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface */\n+    protected $generator;\n+\n+    /** @var \\eZ\\Publish\\Core\\Repository\\ContentService */\n+    protected $contentService;\n+\n+    /** @var \\eZ\\Publish\\Core\\Repository\\LocationService */\n+    protected $locationService;\n+\n+    /** @var \\eZ\\Publish\\Core\\Repository\\ContentTypeService */\n+    protected $contentTypeService;\n+\n+    /** @var \\eZ\\Publish\\Core\\Repository\\SearchService */\n+    protected $searchService;\n+\n+    /**\n+     * @param \\eZ\\Publish\\Core\\MVC\\ConfigResolverInterface               $configResolver\n+     * @param \\eZ\\Bundle\\EzPublishCoreBundle\\Imagine\\AliasGenerator      $imageVariationService\n+     * @param \\Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface $generator\n+     * @param \\eZ\\Publish\\Core\\Repository\\ContentService                 $contentService\n+     * @param \\eZ\\Publish\\Core\\Repository\\LocationService                $locationService\n+     * @param \\eZ\\Publish\\Core\\Repository\\ContentTypeService             $contentTypeService\n+     * @param \\eZ\\Publish\\Core\\Repository\\SearchService                  $searchService\n+     */\n+    public function __construct(\n+        ConfigResolverInterface $configResolver,\n+        ImageVariationService $imageVariationService,\n+        UrlGenerator $generator,\n+        ContentService $contentService,\n+        LocationService $locationService,\n+        ContentTypeService $contentTypeService,\n+        SearchService $searchService\n+    ) {\n+        $this->configResolver = $configResolver;\n+        $this->imageVariationService = $imageVariationService;\n+        $this->generator = $generator;\n+        $this->contentService = $contentService;\n+        $this->locationService = $locationService;\n+        $this->contentTypeService = $contentTypeService;\n+        $this->searchService = $searchService;\n+    }\n+\n+    /**\n+     * Prepares content for ContentDataValue class.\n+     *\n+     * @param string $contentIdList\n+     *\n+     * @return \\EzSystems\\RecommendationBundle\\Rest\\Values\\ContentData\n+     *\n+     * @throws \\eZ\\Publish\\API\\Repository\\Exceptions\\NotFoundException     if the content, version with the given id and languages or content type does not exist\n+     * @throws \\eZ\\Publish\\API\\Repository\\Exceptions\\UnauthorizedException If the user has no access to read content and in case of un-published content: read versions\n+     */\n+    public function getContent($contentIdList)\n+    {\n+        $contentIds = explode(',', $contentIdList);\n+        $content = $this->prepareContent($contentIds);\n+\n+        return new ContentDataValue($content);\n+    }\n+\n+    /**\n+     * Prepare content array.\n+     *\n+     * @param array $contentIds\n+     *\n+     * @return array\n+     */\n+    protected function prepareContent($contentIds)\n+    {\n+        $requestLanguage = $this->request->get('lang');\n+        $requestedFields = $this->request->get('fields');\n+\n+        $content = array();\n+\n+        foreach ($contentIds as $contentId) {\n+            $contentValue = $this->contentService->loadContent($contentId, [$requestLanguage]);\n+            $contentType = $this->contentTypeService->loadContentType($contentValue->contentInfo->contentTypeId);\n+            $location = $this->locationService->loadLocation($contentValue->contentInfo->mainLocationId);\n+            $language = (is_null($requestLanguage)) ? $contentType->mainLanguageCode : $requestLanguage;\n+\n+            $content[$contentId] = array(\n+                'contentId' => $contentId,\n+                'contentTypeId' => $contentType->id,\n+                'identifier' => $contentType->identifier,\n+                'language' => $language,\n+                'publishedDate' => $contentValue->contentInfo->publishedDate->format('c'),\n+                'author' => $contentValue->getFieldValue('author'),\n+                'uri' => $this->generator->generate($location, array(), false),\n+                'mainLocation' => array(\n+                    'href' => '/api/ezp/v2/content/locations'.$location->pathString,\n+                ),\n+                'locations' => array(\n+                    'href' => '/api/ezp/v2/content/objects/'.$contentId.'/locations',\n+                ),\n+                'categoryPath' => $location->pathString,\n+            );\n+\n+            $fields = $this->prepareFields($contentType, $requestedFields);\n+\n+            if (!empty($fields)) {\n+                foreach ($fields as $field) {\n+                    $fieldValue = $contentValue->getFieldValue($field, $language);\n+\n+                    if (null === $fieldValue) {\n+                        continue;\n+                    } elseif (key($fieldValue) == 'destinationContentId') {\n+                        $fieldValue = $this->getRelatedFields((string) $fieldValue, $language);\n+                        $field = 'image';\n+                    } elseif ($field == 'image') {\n+                        $fieldObj = $contentValue->getFieldsByLanguage($language);\n+                        $fieldValue = $this->imageVariations($fieldObj[$field], $contentValue->versionInfo, $this->request->get('image'));\n+                    }\n+\n+                    $content[$contentId]['fields'][] = array(\n+                        'key' => $field,\n+                        'value' => (string) $fieldValue,\n+                    );\n+                }\n+            }\n+        }\n+\n+        return $content;\n+    }\n+\n+    /**\n+     * Checks if fields are given, if not - returns all of them.\n+     *\n+     * @param string                                                    $fields\n+     * @param \\eZ\\Publish\\API\\Repository\\Values\\ContentType\\ContentType $contentType\n+     *\n+     * @return array|null\n+     */\n+    protected function prepareFields(ContentType $contentType, $fields = null)\n+    {\n+        if (null !== $fields) {\n+            return explode(',', $fields);\n+        }\n+\n+        $fields = array();\n+        $contentFields = $contentType->getFieldDefinitions();\n+\n+        foreach ($contentFields as $field) {\n+            $fields[] = $field->identifier;\n+        }\n+\n+        return $fields;\n+    }\n+\n+    /**\n+     * Returns image uri based on variation provided in url.\n+     * If none is set original is returned.\n+     *\n+     * @param \\eZ\\Publish\\API\\Repository\\Values\\Content\\Field        $fieldValue\n+     * @param \\eZ\\Publish\\Core\\Repository\\Values\\Content\\VersionInfo $versionInfo\n+     * @param string|null                                            $variation\n+     *\n+     * @return string\n+     *\n+     * @throws \\eZ\\Publish\\API\\Repository\\Exceptions\\InvalidVariationException\n+     * @throws \\eZ\\Publish\\Core\\MVC\\Exception\\SourceImageNotFoundException\n+     */\n+    private function imageVariations(Field $fieldValue, $versionInfo, $variation = null)\n+    {\n+        if (!isset($fieldValue->value->id)) {\n+            return '';\n+        }\n+\n+        $variations = $this->configResolver->getParameter('image_variations');\n+\n+        if ((null === $variation) || !in_array($variation, array_keys($variations))) {\n+            $variation = 'original';\n+        }\n+\n+        return $this->imageVariationService->getVariation($fieldValue, $versionInfo, $variation)->uri;\n+    }\n+\n+    /**\n+     * Return uri of the related image field.\n+     *\n+     * @param mixed  $contentId\n+     * @param string $language\n+     *\n+     * @return string\n+     */\n+    private function getRelatedFields($contentId, $language)\n+    {\n+        $content = $this->contentService->loadContent($contentId);\n+        $fieldObj = $content->getFieldsByLanguage($language);\n+\n+        if (!isset($fieldObj['image'])) {","path":"Rest/Controller/ContentController.php","position":223,"original_position":223,"commit_id":"0526e4fb23c0a94414c40bece2aed1980cafd0f6","original_commit_id":"0526e4fb23c0a94414c40bece2aed1980cafd0f6","user":{"login":"lserwatka","id":130489,"avatar_url":"https://avatars.githubusercontent.com/u/130489?v=3","gravatar_id":"","url":"https://api.github.com/users/lserwatka","html_url":"https://github.com/lserwatka","followers_url":"https://api.github.com/users/lserwatka/followers","following_url":"https://api.github.com/users/lserwatka/following{/other_user}","gists_url":"https://api.github.com/users/lserwatka/gists{/gist_id}","starred_url":"https://api.github.com/users/lserwatka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lserwatka/subscriptions","organizations_url":"https://api.github.com/users/lserwatka/orgs","repos_url":"https://api.github.com/users/lserwatka/repos","events_url":"https://api.github.com/users/lserwatka/events{/privacy}","received_events_url":"https://api.github.com/users/lserwatka/received_events","type":"User","site_admin":false},"body":"Same here, it won't work for ezimage fieldtype with identifier different then \"image\"","created_at":"2015-08-21T11:42:25Z","updated_at":"2015-08-21T11:42:25Z","html_url":"https://github.com/ezsystems/EzSystemsRecommendationBundle/pull/25#discussion_r37626822","pull_request_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/pulls/25","_links":{"self":{"href":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/pulls/comments/37626822"},"html":{"href":"https://github.com/ezsystems/EzSystemsRecommendationBundle/pull/25#discussion_r37626822"},"pull_request":{"href":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/pulls/25"}}},"pull_request":{"url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/pulls/25","id":42953847,"html_url":"https://github.com/ezsystems/EzSystemsRecommendationBundle/pull/25","diff_url":"https://github.com/ezsystems/EzSystemsRecommendationBundle/pull/25.diff","patch_url":"https://github.com/ezsystems/EzSystemsRecommendationBundle/pull/25.patch","issue_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/issues/25","number":25,"state":"open","locked":false,"title":"New controller","user":{"login":"kamilmusial","id":3974074,"avatar_url":"https://avatars.githubusercontent.com/u/3974074?v=3","gravatar_id":"","url":"https://api.github.com/users/kamilmusial","html_url":"https://github.com/kamilmusial","followers_url":"https://api.github.com/users/kamilmusial/followers","following_url":"https://api.github.com/users/kamilmusial/following{/other_user}","gists_url":"https://api.github.com/users/kamilmusial/gists{/gist_id}","starred_url":"https://api.github.com/users/kamilmusial/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kamilmusial/subscriptions","organizations_url":"https://api.github.com/users/kamilmusial/orgs","repos_url":"https://api.github.com/users/kamilmusial/repos","events_url":"https://api.github.com/users/kamilmusial/events{/privacy}","received_events_url":"https://api.github.com/users/kamilmusial/received_events","type":"User","site_admin":false},"body":"Controller for fetching content by ids and contentids (separate controller)\r\nping @michalpipa @clash82 ","created_at":"2015-08-20T17:08:58Z","updated_at":"2015-08-21T11:42:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"db6cf767e7725bd225da9adfdb87980e81859f15","assignee":{"login":"DarekPobozniak","id":211720,"avatar_url":"https://avatars.githubusercontent.com/u/211720?v=3","gravatar_id":"","url":"https://api.github.com/users/DarekPobozniak","html_url":"https://github.com/DarekPobozniak","followers_url":"https://api.github.com/users/DarekPobozniak/followers","following_url":"https://api.github.com/users/DarekPobozniak/following{/other_user}","gists_url":"https://api.github.com/users/DarekPobozniak/gists{/gist_id}","starred_url":"https://api.github.com/users/DarekPobozniak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DarekPobozniak/subscriptions","organizations_url":"https://api.github.com/users/DarekPobozniak/orgs","repos_url":"https://api.github.com/users/DarekPobozniak/repos","events_url":"https://api.github.com/users/DarekPobozniak/events{/privacy}","received_events_url":"https://api.github.com/users/DarekPobozniak/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/pulls/25/commits","review_comments_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/pulls/25/comments","review_comment_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/issues/25/comments","statuses_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/statuses/0526e4fb23c0a94414c40bece2aed1980cafd0f6","head":{"label":"kamilmusial:new_controller","ref":"new_controller","sha":"0526e4fb23c0a94414c40bece2aed1980cafd0f6","user":{"login":"kamilmusial","id":3974074,"avatar_url":"https://avatars.githubusercontent.com/u/3974074?v=3","gravatar_id":"","url":"https://api.github.com/users/kamilmusial","html_url":"https://github.com/kamilmusial","followers_url":"https://api.github.com/users/kamilmusial/followers","following_url":"https://api.github.com/users/kamilmusial/following{/other_user}","gists_url":"https://api.github.com/users/kamilmusial/gists{/gist_id}","starred_url":"https://api.github.com/users/kamilmusial/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kamilmusial/subscriptions","organizations_url":"https://api.github.com/users/kamilmusial/orgs","repos_url":"https://api.github.com/users/kamilmusial/repos","events_url":"https://api.github.com/users/kamilmusial/events{/privacy}","received_events_url":"https://api.github.com/users/kamilmusial/received_events","type":"User","site_admin":false},"repo":{"id":40484361,"name":"EzSystemsRecommendationBundle","full_name":"kamilmusial/EzSystemsRecommendationBundle","owner":{"login":"kamilmusial","id":3974074,"avatar_url":"https://avatars.githubusercontent.com/u/3974074?v=3","gravatar_id":"","url":"https://api.github.com/users/kamilmusial","html_url":"https://github.com/kamilmusial","followers_url":"https://api.github.com/users/kamilmusial/followers","following_url":"https://api.github.com/users/kamilmusial/following{/other_user}","gists_url":"https://api.github.com/users/kamilmusial/gists{/gist_id}","starred_url":"https://api.github.com/users/kamilmusial/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kamilmusial/subscriptions","organizations_url":"https://api.github.com/users/kamilmusial/orgs","repos_url":"https://api.github.com/users/kamilmusial/repos","events_url":"https://api.github.com/users/kamilmusial/events{/privacy}","received_events_url":"https://api.github.com/users/kamilmusial/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kamilmusial/EzSystemsRecommendationBundle","description":"Integration of YooChoose, a content recommendation solution, into eZ Platform","fork":true,"url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle","forks_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/forks","keys_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/teams","hooks_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/hooks","issue_events_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/issues/events{/number}","events_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/events","assignees_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/assignees{/user}","branches_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/branches{/branch}","tags_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/tags","blobs_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/statuses/{sha}","languages_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/languages","stargazers_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/stargazers","contributors_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/contributors","subscribers_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/subscribers","subscription_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/subscription","commits_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/issues/comments{/number}","contents_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/contents/{+path}","compare_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/merges","archive_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/downloads","issues_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/issues{/number}","pulls_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/pulls{/number}","milestones_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/milestones{/number}","notifications_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/labels{/name}","releases_url":"https://api.github.com/repos/kamilmusial/EzSystemsRecommendationBundle/releases{/id}","created_at":"2015-08-10T13:35:33Z","updated_at":"2015-08-10T13:35:33Z","pushed_at":"2015-08-21T09:41:16Z","git_url":"git://github.com/kamilmusial/EzSystemsRecommendationBundle.git","ssh_url":"git@github.com:kamilmusial/EzSystemsRecommendationBundle.git","clone_url":"https://github.com/kamilmusial/EzSystemsRecommendationBundle.git","svn_url":"https://github.com/kamilmusial/EzSystemsRecommendationBundle","homepage":null,"size":152,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ezsystems:master","ref":"master","sha":"22f64cfd505406026a96308041f7c628dfa8414b","user":{"login":"ezsystems","id":295311,"avatar_url":"https://avatars.githubusercontent.com/u/295311?v=3","gravatar_id":"","url":"https://api.github.com/users/ezsystems","html_url":"https://github.com/ezsystems","followers_url":"https://api.github.com/users/ezsystems/followers","following_url":"https://api.github.com/users/ezsystems/following{/other_user}","gists_url":"https://api.github.com/users/ezsystems/gists{/gist_id}","starred_url":"https://api.github.com/users/ezsystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezsystems/subscriptions","organizations_url":"https://api.github.com/users/ezsystems/orgs","repos_url":"https://api.github.com/users/ezsystems/repos","events_url":"https://api.github.com/users/ezsystems/events{/privacy}","received_events_url":"https://api.github.com/users/ezsystems/received_events","type":"Organization","site_admin":false},"repo":{"id":27641523,"name":"EzSystemsRecommendationBundle","full_name":"ezsystems/EzSystemsRecommendationBundle","owner":{"login":"ezsystems","id":295311,"avatar_url":"https://avatars.githubusercontent.com/u/295311?v=3","gravatar_id":"","url":"https://api.github.com/users/ezsystems","html_url":"https://github.com/ezsystems","followers_url":"https://api.github.com/users/ezsystems/followers","following_url":"https://api.github.com/users/ezsystems/following{/other_user}","gists_url":"https://api.github.com/users/ezsystems/gists{/gist_id}","starred_url":"https://api.github.com/users/ezsystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezsystems/subscriptions","organizations_url":"https://api.github.com/users/ezsystems/orgs","repos_url":"https://api.github.com/users/ezsystems/repos","events_url":"https://api.github.com/users/ezsystems/events{/privacy}","received_events_url":"https://api.github.com/users/ezsystems/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ezsystems/EzSystemsRecommendationBundle","description":"Integration of YooChoose, a content recommendation solution, into eZ Platform","fork":false,"url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle","forks_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/forks","keys_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/teams","hooks_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/hooks","issue_events_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/issues/events{/number}","events_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/events","assignees_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/assignees{/user}","branches_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/branches{/branch}","tags_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/tags","blobs_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/statuses/{sha}","languages_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/languages","stargazers_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/stargazers","contributors_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/contributors","subscribers_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/subscribers","subscription_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/subscription","commits_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/issues/comments{/number}","contents_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/contents/{+path}","compare_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/merges","archive_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/downloads","issues_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/issues{/number}","pulls_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/pulls{/number}","milestones_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/milestones{/number}","notifications_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/labels{/name}","releases_url":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/releases{/id}","created_at":"2014-12-06T16:56:48Z","updated_at":"2015-07-20T14:08:30Z","pushed_at":"2015-08-21T09:41:16Z","git_url":"git://github.com/ezsystems/EzSystemsRecommendationBundle.git","ssh_url":"git@github.com:ezsystems/EzSystemsRecommendationBundle.git","clone_url":"https://github.com/ezsystems/EzSystemsRecommendationBundle.git","svn_url":"https://github.com/ezsystems/EzSystemsRecommendationBundle","homepage":null,"size":680,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":3,"mirror_url":null,"open_issues_count":1,"forks":3,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/pulls/25"},"html":{"href":"https://github.com/ezsystems/EzSystemsRecommendationBundle/pull/25"},"issue":{"href":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/issues/25"},"comments":{"href":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/issues/25/comments"},"review_comments":{"href":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/pulls/25/comments"},"review_comment":{"href":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/pulls/25/commits"},"statuses":{"href":"https://api.github.com/repos/ezsystems/EzSystemsRecommendationBundle/statuses/0526e4fb23c0a94414c40bece2aed1980cafd0f6"}}}}