{"action":"created","comment":{"url":"https://api.github.com/repos/ezsystems/developer-documentation/pulls/comments/166869265","pull_request_review_id":94998461,"id":166869265,"diff_hunk":"@@ -1,275 +1,116 @@\n # Add content and edit views\n \n-To able to add and edit Content Item with our Field Type using PlatformUI, we need to create an edit view.\n-The content view will also be needed to display correct information when viewing the Content Item in the \"Content structure\" tab in PlatformUI.\n+To able to add and edit Content Item with our Field Type using PlatformUI, we will implement a FormMapper with FieldValueFormMapperInterface. \n+DataTransformer is also needed in order to correctly transform our Value Object into single input field.\n \n-## Implement edit view\n+# FormMapper\n+``` php\n+// eZ/Publish/FieldType/Tweet/FormMapper.php\n \n-### Template file\n+namespace EzSystems\\TweetFieldTypeBundle\\eZ\\Publish\\FieldType\\Tweet;\n \n-First, we need to add a template file that will be responsible for displaying an edit form:\n+use EzSystems\\RepositoryForms\\Data\\FieldDefinitionData;\n+use EzSystems\\RepositoryForms\\FieldType\\FieldValueFormMapperInterface;\n+use Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType;\n+use Symfony\\Component\\Form\\FormInterface;\n \n-```html\n-//Resources/public/templates/fields/edit/tweet.hbt\n-\n-<div class=\"pure-g ez-editfield-row\">\n-    <div class=\"pure-u ez-editfield-infos\">\n-        <label for=\"ez-field-{{ content.contentId }}-{{ fieldDefinition.identifier }}\">\n-            <p class=\"ez-fielddefinition-name\">\n-                {{ translate_property fieldDefinition.names }}{{#if isRequired}}*{{/if}}:\n-            </p>\n-            <p class=\"ez-editfield-error-message\">&nbsp;</p>\n-        </label>\n-    </div>\n-    <div class=\"pure-u ez-editfield-input-area ez-default-error-style\">\n-        <div class=\"ez-editfield-input\"><div class=\"ez-tweet-input-ui\"><input type=\"url\"\n-                value=\"{{ field.fieldValue.url }}\"\n-                pattern=\"^https?:\\/\\/twitter.com\\/([^\\/]+)\\/status\\/[0-9]+$\"\n-                class=\"ez-validated-input\"\n-                id=\"ez-field-{{ content.contentId }}-{{ fieldDefinition.identifier }}\"\n-                {{#if isRequired}} required{{/if}}\n-            ></div></div>\n-        {{> ez_fielddescription_tooltip }}\n-    </div>\n-</div>\n-```\n-\n-### Javascript view file\n-\n-Next, we need to implement Javascript file that will be responsible for validating and handling the form:\n-\n-```javascript\n-//Resources/public/js/views/fields/ez-tweet-editview.js\n-\n-YUI.add('ez-tweet-editview', function (Y) {\n-    \"use strict\";\n-    /**\n-     * Provides the field edit view for the Tweet (eztweet) fields\n-     *\n-     * @module ez-tweet-editview\n-     */\n-    Y.namespace('eZ');\n-\n-    var FIELDTYPE_IDENTIFIER = 'eztweet';\n-\n-    /**\n-     * Tweet edit view\n-     *\n-     * @namespace eZ\n-     * @class TweetEditView\n-     * @constructor\n-     * @extends eZ.FieldEditView\n-     */\n-    Y.eZ.TweetEditView = Y.Base.create('tweetEditView', Y.eZ.FieldEditView, [], {\n-        events: {\n-            '.ez-tweet-input-ui input': {\n-                'blur': 'validate',\n-                'valuechange': 'validate'\n-            }\n-        },\n-\n-        /**\n-         * Validates the current input of tweet\n-         *\n-         * @method validate\n-         */\n-        validate: function () {\n-            var validity = this._getInputValidity();\n-\n-            if ( validity.typeMismatch || validity.patternMismatch ) {\n-                this.set('errorStatus', Y.eZ.trans('url.not.valid', {}, 'fieldedit'));\n-            } else if ( validity.valueMissing ) {\n-                this.set('errorStatus', Y.eZ.trans('this.field.is.required', {}, 'fieldedit'));\n-            } else {\n-                this.set('errorStatus', false);\n-            }\n-        },\n-\n-        /**\n-         * Defines the variables to be imported in the field edit template for tweet.\n-         *\n-         * @protected\n-         * @method _variables\n-         * @return {Object} containing isRequired\n-         * entries\n-         */\n-        _variables: function () {\n-            var def = this.get('fieldDefinition');\n-\n-            return {\n-                \"isRequired\": def.isRequired\n-            };\n-        },\n-\n-        /**\n-         * Returns the input validity state object for the input generated by\n-         * the tweet template\n-         *\n-         * See https://developer.mozilla.org/en-US/docs/Web/API/ValidityState\n-         *\n-         * @protected\n-         * @method _getInputValidity\n-         * @return {ValidityState}\n-         */\n-        _getInputValidity: function () {\n-            return this.get('container').one('.ez-tweet-input-ui input').get('validity');\n-        },\n-\n-        /**\n-         * Returns the currently filled tweet value\n-         *\n-         * @protected\n-         * @method _getFieldValue\n-         * @return String\n-         */\n-        _getFieldValue: function () {\n-            return this.get('container').one('.ez-tweet-input-ui input').get('value');\n-        }\n-    });\n-\n-    Y.eZ.FieldEditView.registerFieldEditView(\n-        FIELDTYPE_IDENTIFIER, Y.eZ.TweetEditView\n-    );\n-});\n-```\n-\n-### Registering the view\n-\n-We also have to create the YAML file where we will tell the system to use our files. The example configuration looks like this:\n-\n-```yaml\n-//Resources/config/yui.yml\n-\n-system:\n-    default:\n-        yui:\n-            modules:\n-                tweeteditview-ez-template:\n-                    type: 'template'\n-                    path: bundles/ezsystemstweetfieldtype/templates/fields/edit/tweet.hbt\n-                ez-tweet-editview:\n-                    requires: ['ez-fieldeditview', 'event-valuechange', 'tweeteditview-ez-template']\n-                    dependencyOf: ['ez-contenteditformview']\n-                    path: bundles/ezsystemstweetfieldtype/js/views/fields/ez-tweet-editview.js\n-```\n-\n-We need to prepend this configuration, like we did with the template in the previous step. To do this, we have to edit dependency injection extension:\n-\n-```php\n-// TweetFieldTypeBundle/DependencyInjection/EzSystemsTweetFieldTypeExtension.php\n-\n-use Symfony\\Component\\DependencyInjection\\Extension\\PrependExtensionInterface;\n-use Symfony\\Component\\Yaml\\Yaml;\n-\n-class EzSystemsTweetFieldTypeExtension extends Extension implements PrependExtensionInterface\n+class FormMapper implements FieldValueFormMapperInterface\n {\n-    public function prepend(ContainerBuilder $container)\n+    public function __construct(FieldTypeService $fieldTypeService)\n     {\n-        $configDirectoryPath = __DIR__.'/../Resources/config';\n-\n-        $this->prependYamlConfigFile($container, 'ez_platformui', $configDirectoryPath.'/yui.yml');\n-        $this->prependYamlConfigFile($container, 'ezpublish', $configDirectoryPath.'/ez_field_templates.yml');\n+        $this->fieldTypeService = $fieldTypeService;\n     }\n-\n-    private function prependYamlConfigFile(ContainerBuilder $container, $extensionName, $configFilePath)\n+    \n+    public function mapFieldValueForm(FormInterface $fieldForm, FieldData $data)\n     {\n-        $config = Yaml::parse(file_get_contents($configFilePath));\n-        $container->prependExtensionConfig($extensionName, $config);\n+        $fieldDefinition = $data->fieldDefinition;\n+        $formConfig = $fieldForm->getConfig();\n+        $label = $fieldDefinition->getName($formConfig->getOption('mainLanguageCode')) ?: reset($names);\n+        $fieldType = $this->fieldTypeService->getFieldType($fieldDefinition->fieldTypeIdentifier);\n+        $fieldForm\n+            ->add(\n+                $formConfig->getFormFactory()->createBuilder()\n+                    ->create(\n+                        'value',\n+                        TextType::class,\n+                        [\n+                            'required' => false,\n+                            'label' => $label\n+                        ]\n+                    )\n+                    ->setAutoInitialize(false)\n+                    ->getForm()\n+            );\n     }\n }\n ```\n \n-Remember to dump your assets before trying to run this code for the first time.\n-After this is done, we should be able to edit the Content Item containing our Tweet Field Type.\n-\n-## Implement content view\n-\n-The steps needed to create content view are analogical to the ones needed to create edit view.\n-\n-### Template file\n-\n-First, we need to add a template file that will be responsible for displaying the content of our Field Type:\n-\n-```html\n-//Resources/public/templates/fields/view/tweet.hbt\n+Next thing is to register the FormMapper as a service, so the system would know to use it to automatically add the input field to the Content Type edit form. You can read more about services and service container in the documentation: https://doc.ezplatform.com/en/latest/guide/service_container/. To register the FormMapper as a service, let's add the following lines to `fieldtypes.yml`:\n+``` yml\n+// Resources/config/fieldtypes.yml\n \n-<div class=\"ez-fieldview-row pure-g\">\n-    <div class=\"ez-fieldview-label pure-u\">\n-        <p class=\"ez-fieldview-name\"><strong>{{ translate_property fieldDefinition.names }}</strong></p>\n-    </div>\n-    <div class=\"ez-fieldview-value pure-u\"><div class=\"ez-fieldview-value-content\">\n-        {{#if isEmpty }}\n-            {{translate 'fieldview.field.empty' 'fieldview'}}\n-        {{else}}\n-            {{ value.url }}\n-        {{/if}}\n-    </div></div>\n-</div>\n+    ezsystems.tweetbundle.fieldtype.eztweet.form_mapper:\n+        class: EzSystems\\TweetFieldTypeBundle\\eZ\\Publish\\FieldType\\Tweet\\FormMapper\n+        tags:\n+            - {name: ez.fieldFormMapper.value, fieldType: eztweet}\n+        arguments: ['@ezpublish.api.service.field_type']\n ```\n \n-### Javascript view file\n+# DataTransformer\n \n-Next, we need to implement Javascript file that will be responsible for handling the template:\n+As mentioned earlier, we also need to tell our FormMapper how to transform ValueObject into a single string which contains URL to given tweet. We do this by creating an implementation of DataTransformerInterface.\n \n-```javascript\n-//Resources/public/js/views/fields/ez-tweet-view.js\n+``` php\n+// Form/TweetValueTransformer.php\n+namespace EzSystems\\TweetFieldTypeBundle\\Form;\n \n-YUI.add('ez-tweet-view', function (Y) {\n-    \"use strict\";\n-    /**\n-     * Provides the Tweet field view\n-     *\n-     * @module ez-tweet-view\n-     */\n-    Y.namespace('eZ');\n+use Symfony\\Component\\Form\\DataTransformerInterface;\n+use eZ\\Publish\\API\\Repository\\FieldType;\n+use eZ\\Publish\\Core\\FieldType\\Value;\n \n+class TweetValueTransformer implements DataTransformerInterface\n+{\n     /**\n-     * The Tweet field view\n-     *\n-     * @namespace eZ\n-     * @class TweetView\n-     * @constructor\n-     * @extends eZ.FieldView\n+     * @var FieldType\n      */\n-    Y.eZ.TweetView = Y.Base.create('tweetView', Y.eZ.FieldView, [], {\n-        /**\n-         * Returns the value to be used in the template. If the value is not\n-         * filled, it returns undefined otherwise an object with a `url` entry.\n-         *\n-         * @method _getFieldValue\n-         * @protected\n-         * @return Object\n-         */\n-        _getFieldValue: function () {\n-            var value = this.get('field').fieldValue, res;\n+    private $fieldType;\n \n-            if ( !value || !value.url ) {\n-                return res;\n-            }\n-            res = {url: value.url};\n+    public function __construct(FieldType $fieldType)\n+    {\n+        $this->fieldType = $fieldType;\n+    }\n \n-            return res;\n+    public function transform($value)\n+    {\n+        if (!$value instanceof Value) {\n+            return null;\n         }\n-    });\n \n-    Y.eZ.FieldView.registerFieldView('eztweet', Y.eZ.TweetView);\n-});\n-```\n+        return (string) $value;\n+    }\n \n-### Registering the view\n+    public function reverseTransform($value)\n+    {\n+        if ($value === null) {\n+            return $this->fieldType->getEmptyValue();\n+        }\n \n-We also need to add information about our freshly created files to the already created configuration. To achieve this, let's add the following snippet to the `yui.yml` file:\n-```yaml\n-                tweetview-ez-template:\n-                    type: 'template'\n-                    path: bundles/ezsystemstweetfieldtype/templates/fields/view/tweet.hbt\n-                ez-tweet-view:\n-                    requires: ['ez-fieldview', 'tweetview-ez-template']\n-                    dependencyOf: ['ez-rawcontentview']\n-                    path: bundles/ezsystemstweetfieldtype/js/views/fields/ez-tweet-view.js\n+        return $this->fieldType->fromHash($value);\n+    }\n+}\n ```\n \n-After these steps you should see correct information when viewing Content Item in \"Content structure\" tab in PlatformUI.\n+Next point will be using above transformer in our FormMapper. This is doable with addModelTransformer() method. Remember to pass eZ\\Publish\\API\\Repository\\FieldType object as constructor.\n+\n+``` php\n+// eZ/Publish/FieldType/Tweet/FormMapper.php\n+(...)","path":"docs/tutorials/field_type/7_add_content_and_edit_views.md","position":348,"original_position":348,"commit_id":"8557aceebfd8ffdb55df1536da5489ecfb380412","original_commit_id":"8557aceebfd8ffdb55df1536da5489ecfb380412","user":{"login":"mere-teresa","id":205895,"avatar_url":"https://avatars1.githubusercontent.com/u/205895?v=4","gravatar_id":"","url":"https://api.github.com/users/mere-teresa","html_url":"https://github.com/mere-teresa","followers_url":"https://api.github.com/users/mere-teresa/followers","following_url":"https://api.github.com/users/mere-teresa/following{/other_user}","gists_url":"https://api.github.com/users/mere-teresa/gists{/gist_id}","starred_url":"https://api.github.com/users/mere-teresa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mere-teresa/subscriptions","organizations_url":"https://api.github.com/users/mere-teresa/orgs","repos_url":"https://api.github.com/users/mere-teresa/repos","events_url":"https://api.github.com/users/mere-teresa/events{/privacy}","received_events_url":"https://api.github.com/users/mere-teresa/received_events","type":"User","site_admin":false},"body":"If someone makes a copy-paste, what the (...) will become in PHP code?\r\nMaybe a comment with `//beginning of the class` or put these parentheses in a comment could be better here.","created_at":"2018-02-08T09:12:47Z","updated_at":"2018-02-08T09:26:33Z","html_url":"https://github.com/ezsystems/developer-documentation/pull/178#discussion_r166869265","pull_request_url":"https://api.github.com/repos/ezsystems/developer-documentation/pulls/178","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/ezsystems/developer-documentation/pulls/comments/166869265"},"html":{"href":"https://github.com/ezsystems/developer-documentation/pull/178#discussion_r166869265"},"pull_request":{"href":"https://api.github.com/repos/ezsystems/developer-documentation/pulls/178"}}},"pull_request":{"url":"https://api.github.com/repos/ezsystems/developer-documentation/pulls/178","id":167647291,"html_url":"https://github.com/ezsystems/developer-documentation/pull/178","diff_url":"https://github.com/ezsystems/developer-documentation/pull/178.diff","patch_url":"https://github.com/ezsystems/developer-documentation/pull/178.patch","issue_url":"https://api.github.com/repos/ezsystems/developer-documentation/issues/178","number":178,"state":"open","locked":false,"title":"TweetTutorial v2 docs update","user":{"login":"ViniTou","id":19517274,"avatar_url":"https://avatars1.githubusercontent.com/u/19517274?v=4","gravatar_id":"","url":"https://api.github.com/users/ViniTou","html_url":"https://github.com/ViniTou","followers_url":"https://api.github.com/users/ViniTou/followers","following_url":"https://api.github.com/users/ViniTou/following{/other_user}","gists_url":"https://api.github.com/users/ViniTou/gists{/gist_id}","starred_url":"https://api.github.com/users/ViniTou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ViniTou/subscriptions","organizations_url":"https://api.github.com/users/ViniTou/orgs","repos_url":"https://api.github.com/users/ViniTou/repos","events_url":"https://api.github.com/users/ViniTou/events{/privacy}","received_events_url":"https://api.github.com/users/ViniTou/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-02-07T10:07:01Z","updated_at":"2018-02-08T09:26:33Z","closed_at":null,"merged_at":null,"merge_commit_sha":"54bc81aa9a0326724278422fbf7fe9a0da1723db","assignee":{"login":"DominikaK","id":13621049,"avatar_url":"https://avatars2.githubusercontent.com/u/13621049?v=4","gravatar_id":"","url":"https://api.github.com/users/DominikaK","html_url":"https://github.com/DominikaK","followers_url":"https://api.github.com/users/DominikaK/followers","following_url":"https://api.github.com/users/DominikaK/following{/other_user}","gists_url":"https://api.github.com/users/DominikaK/gists{/gist_id}","starred_url":"https://api.github.com/users/DominikaK/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DominikaK/subscriptions","organizations_url":"https://api.github.com/users/DominikaK/orgs","repos_url":"https://api.github.com/users/DominikaK/repos","events_url":"https://api.github.com/users/DominikaK/events{/privacy}","received_events_url":"https://api.github.com/users/DominikaK/received_events","type":"User","site_admin":false},"assignees":[{"login":"DominikaK","id":13621049,"avatar_url":"https://avatars2.githubusercontent.com/u/13621049?v=4","gravatar_id":"","url":"https://api.github.com/users/DominikaK","html_url":"https://github.com/DominikaK","followers_url":"https://api.github.com/users/DominikaK/followers","following_url":"https://api.github.com/users/DominikaK/following{/other_user}","gists_url":"https://api.github.com/users/DominikaK/gists{/gist_id}","starred_url":"https://api.github.com/users/DominikaK/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DominikaK/subscriptions","organizations_url":"https://api.github.com/users/DominikaK/orgs","repos_url":"https://api.github.com/users/DominikaK/repos","events_url":"https://api.github.com/users/DominikaK/events{/privacy}","received_events_url":"https://api.github.com/users/DominikaK/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"milestone":null,"commits_url":"https://api.github.com/repos/ezsystems/developer-documentation/pulls/178/commits","review_comments_url":"https://api.github.com/repos/ezsystems/developer-documentation/pulls/178/comments","review_comment_url":"https://api.github.com/repos/ezsystems/developer-documentation/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ezsystems/developer-documentation/issues/178/comments","statuses_url":"https://api.github.com/repos/ezsystems/developer-documentation/statuses/8557aceebfd8ffdb55df1536da5489ecfb380412","head":{"label":"ViniTou:tweet-tutorial","ref":"tweet-tutorial","sha":"8557aceebfd8ffdb55df1536da5489ecfb380412","user":{"login":"ViniTou","id":19517274,"avatar_url":"https://avatars1.githubusercontent.com/u/19517274?v=4","gravatar_id":"","url":"https://api.github.com/users/ViniTou","html_url":"https://github.com/ViniTou","followers_url":"https://api.github.com/users/ViniTou/followers","following_url":"https://api.github.com/users/ViniTou/following{/other_user}","gists_url":"https://api.github.com/users/ViniTou/gists{/gist_id}","starred_url":"https://api.github.com/users/ViniTou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ViniTou/subscriptions","organizations_url":"https://api.github.com/users/ViniTou/orgs","repos_url":"https://api.github.com/users/ViniTou/repos","events_url":"https://api.github.com/users/ViniTou/events{/privacy}","received_events_url":"https://api.github.com/users/ViniTou/received_events","type":"User","site_admin":false},"repo":{"id":120592883,"name":"developer-documentation","full_name":"ViniTou/developer-documentation","owner":{"login":"ViniTou","id":19517274,"avatar_url":"https://avatars1.githubusercontent.com/u/19517274?v=4","gravatar_id":"","url":"https://api.github.com/users/ViniTou","html_url":"https://github.com/ViniTou","followers_url":"https://api.github.com/users/ViniTou/followers","following_url":"https://api.github.com/users/ViniTou/following{/other_user}","gists_url":"https://api.github.com/users/ViniTou/gists{/gist_id}","starred_url":"https://api.github.com/users/ViniTou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ViniTou/subscriptions","organizations_url":"https://api.github.com/users/ViniTou/orgs","repos_url":"https://api.github.com/users/ViniTou/repos","events_url":"https://api.github.com/users/ViniTou/events{/privacy}","received_events_url":"https://api.github.com/users/ViniTou/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ViniTou/developer-documentation","description":"Source for the developer documentation for eZ Platform, an open source CMS based on the Symfony Full Stack Framework in PHP.","fork":true,"url":"https://api.github.com/repos/ViniTou/developer-documentation","forks_url":"https://api.github.com/repos/ViniTou/developer-documentation/forks","keys_url":"https://api.github.com/repos/ViniTou/developer-documentation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ViniTou/developer-documentation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ViniTou/developer-documentation/teams","hooks_url":"https://api.github.com/repos/ViniTou/developer-documentation/hooks","issue_events_url":"https://api.github.com/repos/ViniTou/developer-documentation/issues/events{/number}","events_url":"https://api.github.com/repos/ViniTou/developer-documentation/events","assignees_url":"https://api.github.com/repos/ViniTou/developer-documentation/assignees{/user}","branches_url":"https://api.github.com/repos/ViniTou/developer-documentation/branches{/branch}","tags_url":"https://api.github.com/repos/ViniTou/developer-documentation/tags","blobs_url":"https://api.github.com/repos/ViniTou/developer-documentation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ViniTou/developer-documentation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ViniTou/developer-documentation/git/refs{/sha}","trees_url":"https://api.github.com/repos/ViniTou/developer-documentation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ViniTou/developer-documentation/statuses/{sha}","languages_url":"https://api.github.com/repos/ViniTou/developer-documentation/languages","stargazers_url":"https://api.github.com/repos/ViniTou/developer-documentation/stargazers","contributors_url":"https://api.github.com/repos/ViniTou/developer-documentation/contributors","subscribers_url":"https://api.github.com/repos/ViniTou/developer-documentation/subscribers","subscription_url":"https://api.github.com/repos/ViniTou/developer-documentation/subscription","commits_url":"https://api.github.com/repos/ViniTou/developer-documentation/commits{/sha}","git_commits_url":"https://api.github.com/repos/ViniTou/developer-documentation/git/commits{/sha}","comments_url":"https://api.github.com/repos/ViniTou/developer-documentation/comments{/number}","issue_comment_url":"https://api.github.com/repos/ViniTou/developer-documentation/issues/comments{/number}","contents_url":"https://api.github.com/repos/ViniTou/developer-documentation/contents/{+path}","compare_url":"https://api.github.com/repos/ViniTou/developer-documentation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ViniTou/developer-documentation/merges","archive_url":"https://api.github.com/repos/ViniTou/developer-documentation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ViniTou/developer-documentation/downloads","issues_url":"https://api.github.com/repos/ViniTou/developer-documentation/issues{/number}","pulls_url":"https://api.github.com/repos/ViniTou/developer-documentation/pulls{/number}","milestones_url":"https://api.github.com/repos/ViniTou/developer-documentation/milestones{/number}","notifications_url":"https://api.github.com/repos/ViniTou/developer-documentation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ViniTou/developer-documentation/labels{/name}","releases_url":"https://api.github.com/repos/ViniTou/developer-documentation/releases{/id}","deployments_url":"https://api.github.com/repos/ViniTou/developer-documentation/deployments","created_at":"2018-02-07T09:25:26Z","updated_at":"2018-02-07T09:25:28Z","pushed_at":"2018-02-07T11:26:44Z","git_url":"git://github.com/ViniTou/developer-documentation.git","ssh_url":"git@github.com:ViniTou/developer-documentation.git","clone_url":"https://github.com/ViniTou/developer-documentation.git","svn_url":"https://github.com/ViniTou/developer-documentation","homepage":"https://doc.ezplatform.com","size":36922,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ezsystems:master","ref":"master","sha":"d37082eb77fa5fe16fde996047388ef02cb129cc","user":{"login":"ezsystems","id":295311,"avatar_url":"https://avatars1.githubusercontent.com/u/295311?v=4","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":94448285,"name":"developer-documentation","full_name":"ezsystems/developer-documentation","owner":{"login":"ezsystems","id":295311,"avatar_url":"https://avatars1.githubusercontent.com/u/295311?v=4","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/developer-documentation","description":"Source for the developer documentation for eZ Platform, an open source CMS based on the Symfony Full Stack Framework in PHP.","fork":false,"url":"https://api.github.com/repos/ezsystems/developer-documentation","forks_url":"https://api.github.com/repos/ezsystems/developer-documentation/forks","keys_url":"https://api.github.com/repos/ezsystems/developer-documentation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ezsystems/developer-documentation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ezsystems/developer-documentation/teams","hooks_url":"https://api.github.com/repos/ezsystems/developer-documentation/hooks","issue_events_url":"https://api.github.com/repos/ezsystems/developer-documentation/issues/events{/number}","events_url":"https://api.github.com/repos/ezsystems/developer-documentation/events","assignees_url":"https://api.github.com/repos/ezsystems/developer-documentation/assignees{/user}","branches_url":"https://api.github.com/repos/ezsystems/developer-documentation/branches{/branch}","tags_url":"https://api.github.com/repos/ezsystems/developer-documentation/tags","blobs_url":"https://api.github.com/repos/ezsystems/developer-documentation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ezsystems/developer-documentation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ezsystems/developer-documentation/git/refs{/sha}","trees_url":"https://api.github.com/repos/ezsystems/developer-documentation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ezsystems/developer-documentation/statuses/{sha}","languages_url":"https://api.github.com/repos/ezsystems/developer-documentation/languages","stargazers_url":"https://api.github.com/repos/ezsystems/developer-documentation/stargazers","contributors_url":"https://api.github.com/repos/ezsystems/developer-documentation/contributors","subscribers_url":"https://api.github.com/repos/ezsystems/developer-documentation/subscribers","subscription_url":"https://api.github.com/repos/ezsystems/developer-documentation/subscription","commits_url":"https://api.github.com/repos/ezsystems/developer-documentation/commits{/sha}","git_commits_url":"https://api.github.com/repos/ezsystems/developer-documentation/git/commits{/sha}","comments_url":"https://api.github.com/repos/ezsystems/developer-documentation/comments{/number}","issue_comment_url":"https://api.github.com/repos/ezsystems/developer-documentation/issues/comments{/number}","contents_url":"https://api.github.com/repos/ezsystems/developer-documentation/contents/{+path}","compare_url":"https://api.github.com/repos/ezsystems/developer-documentation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ezsystems/developer-documentation/merges","archive_url":"https://api.github.com/repos/ezsystems/developer-documentation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ezsystems/developer-documentation/downloads","issues_url":"https://api.github.com/repos/ezsystems/developer-documentation/issues{/number}","pulls_url":"https://api.github.com/repos/ezsystems/developer-documentation/pulls{/number}","milestones_url":"https://api.github.com/repos/ezsystems/developer-documentation/milestones{/number}","notifications_url":"https://api.github.com/repos/ezsystems/developer-documentation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ezsystems/developer-documentation/labels{/name}","releases_url":"https://api.github.com/repos/ezsystems/developer-documentation/releases{/id}","deployments_url":"https://api.github.com/repos/ezsystems/developer-documentation/deployments","created_at":"2017-06-15T14:36:36Z","updated_at":"2017-11-21T23:50:32Z","pushed_at":"2018-02-07T15:23:39Z","git_url":"git://github.com/ezsystems/developer-documentation.git","ssh_url":"git@github.com:ezsystems/developer-documentation.git","clone_url":"https://github.com/ezsystems/developer-documentation.git","svn_url":"https://github.com/ezsystems/developer-documentation","homepage":"https://doc.ezplatform.com","size":36924,"stargazers_count":11,"watchers_count":11,"language":"HTML","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":27,"mirror_url":null,"archived":false,"open_issues_count":9,"license":null,"forks":27,"open_issues":9,"watchers":11,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ezsystems/developer-documentation/pulls/178"},"html":{"href":"https://github.com/ezsystems/developer-documentation/pull/178"},"issue":{"href":"https://api.github.com/repos/ezsystems/developer-documentation/issues/178"},"comments":{"href":"https://api.github.com/repos/ezsystems/developer-documentation/issues/178/comments"},"review_comments":{"href":"https://api.github.com/repos/ezsystems/developer-documentation/pulls/178/comments"},"review_comment":{"href":"https://api.github.com/repos/ezsystems/developer-documentation/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ezsystems/developer-documentation/pulls/178/commits"},"statuses":{"href":"https://api.github.com/repos/ezsystems/developer-documentation/statuses/8557aceebfd8ffdb55df1536da5489ecfb380412"}},"author_association":"NONE"}}
{"actor":{"display_login":"mere-teresa"}}