{"action":"created","comment":{"url":"https://api.github.com/repos/Sylius/Sylius/pulls/comments/63154631","id":63154631,"diff_hunk":"@@ -0,0 +1,510 @@\n+Basic Usage\n+===========\n+\n+In our opinion the best way to understand how some stuff works is by showing some examples so this section gather all knowledge form previous chapters.\n+Assume that we are implementing managing countries in our system.\n+Let the fun begin.\n+\n+Describing feature\n+------------------\n+First of all let's start with writing our feature file the most crucial thing here is ubiquitous language. We don't want to specify how something is done,it doesn't really matter in case of business.\n+``features/addressing/managing_countries/adding_country.feature``\n+.. code-block:: feature\n+    @managing_countries\n+    Feature: Adding a new country\n+        In order to sell my goods to different countries\n+        As an Administrator\n+        I want to add a new country to the store\n+\n+        Background:\n+            Given I am logged in as an administrator\n+\n+        @ui\n+        Scenario: Adding country\n+            Given I want to add a new country\n+            When I choose \"France\"\n+            And I add it\n+            Then I should be notified that it has been successfully created\n+            And the country \"France\" should appear in the store\n+\n+Pay special attention to form of those sentences, they are specially constructed that way to hide details like ``I click on select box and i click on France country, I see France country in box with css .table``.\n+The side effect of this is that we got more generic steps and when we want to change way of testing this feature for example in domain context it will be extremely easy all we need to do is adding ``@domain`` tag and of course implement proper steps in domain context.\n+\n+Choosing correct suite\n+----------------------\n+Next thing is creating suite, in our example at the beginning we decide that it will be user interface feature.\n+So this suite will be placed in ``etc/behat/suites/ui/addressing/managing_countries.yml`` and it will looks like\n+\n+.. code-block:: yaml\n+\n+    default:\n+        suites:\n+            ui_managing_countries:\n+                contexts_as_services:\n+                    - sylius.behat.context.hook.doctrine_orm //This service is responsible for clearing database before scenario.\n+\n+                    - sylius.behat.context.transform.country\n+                    - sylius.behat.context.transform.shared_storage\n+                    // Those contexts services are responsible for all transformation for example  \"And the country \"France\" should appear in the store\" transforms \"(the country \"France\")\" to proper Country object.\n+\n+                    - sylius.behat.context.setup.geographical\n+                    - sylius.behat.context.setup.security\n+                    // Setup contexts in our case they are building our background scene. Preparing all actors.\n+\n+                    // Lights, Camera, Action!\n+                    - sylius.behat.context.ui.admin.managing_countries\n+                    - sylius.behat.context.ui.admin.notification\n+                    // Those contexts are essential here we are placing all action steps like \"When I choose \"France\" and I add it Then I should ne notified that...\".\n+                filters:\n+                    tags: \"@managing_countries && @ui\"\n+\n+First essential thing that happens here is configuration of tags, from now behat will be searching all your features tagged with ``@managing_countires`` and your scenarios tagged with ``@ui``.\n+Second thing is ``contexts_as_services:`` in this section we will be placing all our services with step implementation.\n+\n+I mentioned about side effects of ubiquitous language that's why we can very easy switch our testing context to ``@domain``. Domain suite will look like:\n+\n+.. code-block:: yaml\n+\n+    default:\n+        suites:\n+            domain_managing_countries:\n+                contexts_as_services:\n+                    - sylius.behat.context.hook.doctrine_orm\n+\n+                    - sylius.behat.context.transform.country\n+                    - sylius.behat.context.transform.shared_storage\n+\n+                    - sylius.behat.context.setup.geographical\n+                    - sylius.behat.context.setup.security\n+\n+                    - sylius.behat.context.domain.admin.managing_countries // Domain step implementation.\n+                filters:\n+                    tags: \"@managing_countries && @domain\"\n+\n+We have almost finished with suite configuration now we need to register our first behat context service, but before we will do it we need one more thing because like we said this is ui feature so we need page objects.\n+\n+Registering Pages\n+-----------------\n+Page object pattern allows us to hide all interaction with html behind those objects so all ui things happens here.\n+\n+We got three kinds of page:\n+    - Page // First layer of our pages it knows how to interact with dom objects. It has method ->getUrl(array $urlParameters) where you can define raw url to open it.\n+    - SymfonyPage // This page extends Page and it has router injected so from now ->getUrl() generates url from route name which gets from ->getRouteName() method.\n+    - Base Crud Pages (IndexPage, CreatePage, UpdatePage) // This page extends SymfonyPage and it's specific to sylius resources it has resource name injected and from now it knows about route name.\n+\n+There are two ways to manipulate html. By using ``->getDocument()`` or ``->getElement('your_element')`` first method will return ``DocumentElement`` which represents html structure of currently opened page,\n+second one is more tricky it use ``->getDefinedElements()`` method and it will return ``NodeElement`` which represents only restricted html structure.\n+\n+Usage example of ``->getElement('your_element')`` and ``->getDefinedElements`` methods.\n+\n+.. code-block:: php\n+\n+    class CreatePage extends SymfonyPage implements CreatePageInterface\n+    {\n+        /**\n+         *{@inheritdoc}\n+         */\n+        protected function getDefinedElements() // This method returns simple associative array, where key is name of your element and value is locator.\n+        {\n+            return array_merge(parent::getDefinedElements(), [\n+                'provinces' => '#sylius_country_provinces',\n+            ]);\n+        }\n+\n+        // By default it will assume that your locator is css.\n+        // Example with xpath.\n+        /**\n+         *{@inheritdoc}\n+         */\n+        protected function getDefinedElements()\n+        {\n+            return array_merge(parent::getDefinedElements(), [\n+                'provinces' => ['xpath' => '//*[contains(@class, \"provinces\")]'] // Now your value is an array where key is your locator type.\n+            ]);\n+        }\n+\n+        // Form now you can easy manipulate with your page elements.\n+        public function addProvince(ProvinceInterface $province)\n+        {\n+            $provinceSelectBox = $this->getElement('provinces');\n+\n+            $provinceSelectBox->selectOption($province->getName());\n+        }\n+    }\n+\n+Let's back to our main example and analyse our scenario.\n+We got steps like \"When I choose \"France\" and I add it Then I should be notified that it has been successfully created And the country \"France\" should appear in the store\".\n+\n+.. code-block:: php\n+    namespace Sylius\\Behat\\Page\\Admin\\Country;\n+\n+    use Sylius\\Behat\\Page\\Admin\\Crud\\CreatePage as BaseCreatePage;\n+\n+    class CreatePage extends BaseCreatePage implements CreatePageInterface\n+    {\n+        /**\n+         * @param string $name\n+         */\n+        public function chooseName($name)\n+        {\n+            $this->getDocument()->selectFieldOption('Name', $name);\n+        }\n+\n+        /**\n+         * {@inheritdoc}\n+         */\n+        public function create()\n+        {\n+            $this->getDocument()->pressButton('Create');\n+        }\n+    }\n+\n+.. code-block:: php\n+    namespace Sylius\\Behat\\Page\\Admin\\Country;\n+\n+    use Sylius\\Behat\\Page\\Admin\\Crud\\IndexPage as BaseIndexPage;\n+\n+    class IndexPage extends BaseIndexPage implements IndexPageInterface\n+    {\n+        /**\n+         * {@inheritdoc}\n+         */\n+        public function isSingleResourceOnPage(array $parameters)\n+        {\n+            try {\n+                $rows = $this->tableAccessor->getRowsWithFields($this->getElement('table'), $parameters);\n+                // Table accessor is a helper service which is responsible for all html table operations\n+\n+                return 1 === count($rows);\n+            } catch (\\InvalidArgumentException $exception) {\n+                return false;\n+            } catch (ElementNotFoundException $exception) {\n+                return false;\n+            }\n+        }\n+    }\n+\n+.. warning::\n+\n+    There is one small gap in this concept PageObjects aren't the concrete instance of current opened page they only mimic this behaviour (dummy pages).\n+    This gap will be more understandable on code example.\n+\n+.. code-block:: php\n+\n+    // Of course this is only to illustrate this gap.\n+\n+    final class GapContext implements Context\n+    {\n+        private $homePage;\n+        private $leagueIndexPage;\n+\n+        /**\n+         * @Given I want to be on home page\n+         */\n+        public function iWantToBeOnHomePage() // After this method call we will be on \"http://your_domain.com\".\n+        {\n+            $this->homePage->open(); //When we add @javascript tag we can actually see this thanks to selenium.\n+        }\n+\n+        /**\n+         * @Then I want to read side bar and get The weather in France information\n+         */\n+        public function iWantToReadSideBarOnHomePage($someInformation) // Still \"http://your_domain.com\".\n+        {\n+            $someInformation === $this->leagueIndexPage->readMatchResults() // This returns true, but wait a second we are on home page (dummy pages).\n+\n+            $someInformation === $this->homePage->readWeather() // This also returns true.\n+        }\n+    }\n+\n+    class HomePage\n+    {\n+        // In this context on home page sidebar you have for example weather information in selected countries.\n+        public function readWeather()\n+        {\n+            return $this->getElement('sidebar')->getText();\n+        }\n+\n+        protected function getDefinedElements()\n+        {\n+            return ['sidebar' => ['css' => '.sidebar']]\n+        }\n+\n+        protected function getUrl()\n+        {\n+            return 'http://your_domain.com';\n+        }\n+    }\n+\n+    class LeagueIndexPage\n+    {\n+        // In this context you have for example football match results.\n+        public function readMatchResults()\n+        {\n+            return $this->getElement('sidebar')->getText();\n+        }\n+\n+        protected function getDefinedElements()\n+        {\n+            return ['sidebar' => ['css' => '.sidebar']]\n+        }\n+\n+        protected function getUrl()\n+        {\n+            return 'http://your_domain.com/leagues/'\n+        }\n+    }\n+\n+Registering context\n+-------------------\n+Like you see in previous section we have registered a lot of contexts so we will show you only some of step implementation.","path":"docs/behat/basic-usage.rst","position":260,"original_position":260,"commit_id":"d68ba0577e5e8d20a7018bfef9c11d89542cd10c","original_commit_id":"d68ba0577e5e8d20a7018bfef9c11d89542cd10c","user":{"login":"TheMadeleine","id":13198869,"avatar_url":"https://avatars.githubusercontent.com/u/13198869?v=3","gravatar_id":"","url":"https://api.github.com/users/TheMadeleine","html_url":"https://github.com/TheMadeleine","followers_url":"https://api.github.com/users/TheMadeleine/followers","following_url":"https://api.github.com/users/TheMadeleine/following{/other_user}","gists_url":"https://api.github.com/users/TheMadeleine/gists{/gist_id}","starred_url":"https://api.github.com/users/TheMadeleine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TheMadeleine/subscriptions","organizations_url":"https://api.github.com/users/TheMadeleine/orgs","repos_url":"https://api.github.com/users/TheMadeleine/repos","events_url":"https://api.github.com/users/TheMadeleine/events{/privacy}","received_events_url":"https://api.github.com/users/TheMadeleine/received_events","type":"User","site_admin":false},"body":"`As it was shown in the previous section we have registered a lot of contexts, so we will show you only some of the step implementation.`","created_at":"2016-05-13T09:18:33Z","updated_at":"2016-05-13T09:18:33Z","html_url":"https://github.com/Sylius/Sylius/pull/5016#discussion_r63154631","pull_request_url":"https://api.github.com/repos/Sylius/Sylius/pulls/5016","_links":{"self":{"href":"https://api.github.com/repos/Sylius/Sylius/pulls/comments/63154631"},"html":{"href":"https://github.com/Sylius/Sylius/pull/5016#discussion_r63154631"},"pull_request":{"href":"https://api.github.com/repos/Sylius/Sylius/pulls/5016"}}},"pull_request":{"url":"https://api.github.com/repos/Sylius/Sylius/pulls/5016","id":69881737,"html_url":"https://github.com/Sylius/Sylius/pull/5016","diff_url":"https://github.com/Sylius/Sylius/pull/5016.diff","patch_url":"https://github.com/Sylius/Sylius/pull/5016.patch","issue_url":"https://api.github.com/repos/Sylius/Sylius/issues/5016","number":5016,"state":"open","locked":false,"title":"[Doc][Behat] Add basic usage for behat guide","user":{"login":"Arminek","id":6368946,"avatar_url":"https://avatars.githubusercontent.com/u/6368946?v=3","gravatar_id":"","url":"https://api.github.com/users/Arminek","html_url":"https://github.com/Arminek","followers_url":"https://api.github.com/users/Arminek/followers","following_url":"https://api.github.com/users/Arminek/following{/other_user}","gists_url":"https://api.github.com/users/Arminek/gists{/gist_id}","starred_url":"https://api.github.com/users/Arminek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Arminek/subscriptions","organizations_url":"https://api.github.com/users/Arminek/orgs","repos_url":"https://api.github.com/users/Arminek/repos","events_url":"https://api.github.com/users/Arminek/events{/privacy}","received_events_url":"https://api.github.com/users/Arminek/received_events","type":"User","site_admin":false},"body":"Add some example usage of our new behat.","created_at":"2016-05-12T18:11:04Z","updated_at":"2016-05-13T09:18:33Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6cdb0b1ee0792912c53f774744dd7c60f45a9787","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Sylius/Sylius/pulls/5016/commits","review_comments_url":"https://api.github.com/repos/Sylius/Sylius/pulls/5016/comments","review_comment_url":"https://api.github.com/repos/Sylius/Sylius/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Sylius/Sylius/issues/5016/comments","statuses_url":"https://api.github.com/repos/Sylius/Sylius/statuses/d68ba0577e5e8d20a7018bfef9c11d89542cd10c","head":{"label":"Arminek:behat-guide","ref":"behat-guide","sha":"d68ba0577e5e8d20a7018bfef9c11d89542cd10c","user":{"login":"Arminek","id":6368946,"avatar_url":"https://avatars.githubusercontent.com/u/6368946?v=3","gravatar_id":"","url":"https://api.github.com/users/Arminek","html_url":"https://github.com/Arminek","followers_url":"https://api.github.com/users/Arminek/followers","following_url":"https://api.github.com/users/Arminek/following{/other_user}","gists_url":"https://api.github.com/users/Arminek/gists{/gist_id}","starred_url":"https://api.github.com/users/Arminek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Arminek/subscriptions","organizations_url":"https://api.github.com/users/Arminek/orgs","repos_url":"https://api.github.com/users/Arminek/repos","events_url":"https://api.github.com/users/Arminek/events{/privacy}","received_events_url":"https://api.github.com/users/Arminek/received_events","type":"User","site_admin":false},"repo":{"id":38776658,"name":"Sylius","full_name":"Arminek/Sylius","owner":{"login":"Arminek","id":6368946,"avatar_url":"https://avatars.githubusercontent.com/u/6368946?v=3","gravatar_id":"","url":"https://api.github.com/users/Arminek","html_url":"https://github.com/Arminek","followers_url":"https://api.github.com/users/Arminek/followers","following_url":"https://api.github.com/users/Arminek/following{/other_user}","gists_url":"https://api.github.com/users/Arminek/gists{/gist_id}","starred_url":"https://api.github.com/users/Arminek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Arminek/subscriptions","organizations_url":"https://api.github.com/users/Arminek/orgs","repos_url":"https://api.github.com/users/Arminek/repos","events_url":"https://api.github.com/users/Arminek/events{/privacy}","received_events_url":"https://api.github.com/users/Arminek/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Arminek/Sylius","description":"Modern e-commerce for PHP, based on the Symfony2 framework.","fork":true,"url":"https://api.github.com/repos/Arminek/Sylius","forks_url":"https://api.github.com/repos/Arminek/Sylius/forks","keys_url":"https://api.github.com/repos/Arminek/Sylius/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Arminek/Sylius/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Arminek/Sylius/teams","hooks_url":"https://api.github.com/repos/Arminek/Sylius/hooks","issue_events_url":"https://api.github.com/repos/Arminek/Sylius/issues/events{/number}","events_url":"https://api.github.com/repos/Arminek/Sylius/events","assignees_url":"https://api.github.com/repos/Arminek/Sylius/assignees{/user}","branches_url":"https://api.github.com/repos/Arminek/Sylius/branches{/branch}","tags_url":"https://api.github.com/repos/Arminek/Sylius/tags","blobs_url":"https://api.github.com/repos/Arminek/Sylius/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Arminek/Sylius/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Arminek/Sylius/git/refs{/sha}","trees_url":"https://api.github.com/repos/Arminek/Sylius/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Arminek/Sylius/statuses/{sha}","languages_url":"https://api.github.com/repos/Arminek/Sylius/languages","stargazers_url":"https://api.github.com/repos/Arminek/Sylius/stargazers","contributors_url":"https://api.github.com/repos/Arminek/Sylius/contributors","subscribers_url":"https://api.github.com/repos/Arminek/Sylius/subscribers","subscription_url":"https://api.github.com/repos/Arminek/Sylius/subscription","commits_url":"https://api.github.com/repos/Arminek/Sylius/commits{/sha}","git_commits_url":"https://api.github.com/repos/Arminek/Sylius/git/commits{/sha}","comments_url":"https://api.github.com/repos/Arminek/Sylius/comments{/number}","issue_comment_url":"https://api.github.com/repos/Arminek/Sylius/issues/comments{/number}","contents_url":"https://api.github.com/repos/Arminek/Sylius/contents/{+path}","compare_url":"https://api.github.com/repos/Arminek/Sylius/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Arminek/Sylius/merges","archive_url":"https://api.github.com/repos/Arminek/Sylius/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Arminek/Sylius/downloads","issues_url":"https://api.github.com/repos/Arminek/Sylius/issues{/number}","pulls_url":"https://api.github.com/repos/Arminek/Sylius/pulls{/number}","milestones_url":"https://api.github.com/repos/Arminek/Sylius/milestones{/number}","notifications_url":"https://api.github.com/repos/Arminek/Sylius/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Arminek/Sylius/labels{/name}","releases_url":"https://api.github.com/repos/Arminek/Sylius/releases{/id}","deployments_url":"https://api.github.com/repos/Arminek/Sylius/deployments","created_at":"2015-07-08T19:59:32Z","updated_at":"2016-01-31T16:53:25Z","pushed_at":"2016-05-13T07:07:10Z","git_url":"git://github.com/Arminek/Sylius.git","ssh_url":"git@github.com:Arminek/Sylius.git","clone_url":"https://github.com/Arminek/Sylius.git","svn_url":"https://github.com/Arminek/Sylius","homepage":"Sylius.org","size":32598,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_downloads":true,"has_wiki":true,"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":"Sylius:master","ref":"master","sha":"6cc75a826714b7662c9a02b69e9dcef2b6078dc1","user":{"login":"Sylius","id":719423,"avatar_url":"https://avatars.githubusercontent.com/u/719423?v=3","gravatar_id":"","url":"https://api.github.com/users/Sylius","html_url":"https://github.com/Sylius","followers_url":"https://api.github.com/users/Sylius/followers","following_url":"https://api.github.com/users/Sylius/following{/other_user}","gists_url":"https://api.github.com/users/Sylius/gists{/gist_id}","starred_url":"https://api.github.com/users/Sylius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sylius/subscriptions","organizations_url":"https://api.github.com/users/Sylius/orgs","repos_url":"https://api.github.com/users/Sylius/repos","events_url":"https://api.github.com/users/Sylius/events{/privacy}","received_events_url":"https://api.github.com/users/Sylius/received_events","type":"Organization","site_admin":false},"repo":{"id":2717549,"name":"Sylius","full_name":"Sylius/Sylius","owner":{"login":"Sylius","id":719423,"avatar_url":"https://avatars.githubusercontent.com/u/719423?v=3","gravatar_id":"","url":"https://api.github.com/users/Sylius","html_url":"https://github.com/Sylius","followers_url":"https://api.github.com/users/Sylius/followers","following_url":"https://api.github.com/users/Sylius/following{/other_user}","gists_url":"https://api.github.com/users/Sylius/gists{/gist_id}","starred_url":"https://api.github.com/users/Sylius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sylius/subscriptions","organizations_url":"https://api.github.com/users/Sylius/orgs","repos_url":"https://api.github.com/users/Sylius/repos","events_url":"https://api.github.com/users/Sylius/events{/privacy}","received_events_url":"https://api.github.com/users/Sylius/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Sylius/Sylius","description":"eCommerce PHP framework built on top of Symfony with component-based architecture and format-agnostic rendering. (HTML/JSON/XML)","fork":false,"url":"https://api.github.com/repos/Sylius/Sylius","forks_url":"https://api.github.com/repos/Sylius/Sylius/forks","keys_url":"https://api.github.com/repos/Sylius/Sylius/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Sylius/Sylius/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Sylius/Sylius/teams","hooks_url":"https://api.github.com/repos/Sylius/Sylius/hooks","issue_events_url":"https://api.github.com/repos/Sylius/Sylius/issues/events{/number}","events_url":"https://api.github.com/repos/Sylius/Sylius/events","assignees_url":"https://api.github.com/repos/Sylius/Sylius/assignees{/user}","branches_url":"https://api.github.com/repos/Sylius/Sylius/branches{/branch}","tags_url":"https://api.github.com/repos/Sylius/Sylius/tags","blobs_url":"https://api.github.com/repos/Sylius/Sylius/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Sylius/Sylius/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Sylius/Sylius/git/refs{/sha}","trees_url":"https://api.github.com/repos/Sylius/Sylius/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Sylius/Sylius/statuses/{sha}","languages_url":"https://api.github.com/repos/Sylius/Sylius/languages","stargazers_url":"https://api.github.com/repos/Sylius/Sylius/stargazers","contributors_url":"https://api.github.com/repos/Sylius/Sylius/contributors","subscribers_url":"https://api.github.com/repos/Sylius/Sylius/subscribers","subscription_url":"https://api.github.com/repos/Sylius/Sylius/subscription","commits_url":"https://api.github.com/repos/Sylius/Sylius/commits{/sha}","git_commits_url":"https://api.github.com/repos/Sylius/Sylius/git/commits{/sha}","comments_url":"https://api.github.com/repos/Sylius/Sylius/comments{/number}","issue_comment_url":"https://api.github.com/repos/Sylius/Sylius/issues/comments{/number}","contents_url":"https://api.github.com/repos/Sylius/Sylius/contents/{+path}","compare_url":"https://api.github.com/repos/Sylius/Sylius/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Sylius/Sylius/merges","archive_url":"https://api.github.com/repos/Sylius/Sylius/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Sylius/Sylius/downloads","issues_url":"https://api.github.com/repos/Sylius/Sylius/issues{/number}","pulls_url":"https://api.github.com/repos/Sylius/Sylius/pulls{/number}","milestones_url":"https://api.github.com/repos/Sylius/Sylius/milestones{/number}","notifications_url":"https://api.github.com/repos/Sylius/Sylius/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Sylius/Sylius/labels{/name}","releases_url":"https://api.github.com/repos/Sylius/Sylius/releases{/id}","deployments_url":"https://api.github.com/repos/Sylius/Sylius/deployments","created_at":"2011-11-05T22:05:52Z","updated_at":"2016-05-12T04:35:30Z","pushed_at":"2016-05-13T09:10:39Z","git_url":"git://github.com/Sylius/Sylius.git","ssh_url":"git@github.com:Sylius/Sylius.git","clone_url":"https://github.com/Sylius/Sylius.git","svn_url":"https://github.com/Sylius/Sylius","homepage":"http://Sylius.org","size":63964,"stargazers_count":2299,"watchers_count":2299,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":830,"mirror_url":null,"open_issues_count":638,"forks":830,"open_issues":638,"watchers":2299,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Sylius/Sylius/pulls/5016"},"html":{"href":"https://github.com/Sylius/Sylius/pull/5016"},"issue":{"href":"https://api.github.com/repos/Sylius/Sylius/issues/5016"},"comments":{"href":"https://api.github.com/repos/Sylius/Sylius/issues/5016/comments"},"review_comments":{"href":"https://api.github.com/repos/Sylius/Sylius/pulls/5016/comments"},"review_comment":{"href":"https://api.github.com/repos/Sylius/Sylius/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Sylius/Sylius/pulls/5016/commits"},"statuses":{"href":"https://api.github.com/repos/Sylius/Sylius/statuses/d68ba0577e5e8d20a7018bfef9c11d89542cd10c"}}}}