{"action":"created","comment":{"url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/pulls/comments/59364160","id":59364160,"diff_hunk":"@@ -189,6 +191,293 @@ YUI.add('ez-roleserversideview-tests', function (Y) {\n         },\n     });\n \n+    assignWithSectionLimitationTest = new Y.Test.Case({\n+        name: \"eZ Role Server Side assign role tests\",\n+\n+        init: function () {\n+            this.content = Y.one('.container').getHTML();\n+        },\n+\n+        setUp: function () {\n+            this.view = new Y.eZ.RoleServerSideView({\n+                container: '.container',\n+            });\n+            this.view.render();\n+            this.view.set('active', true);\n+            this.view.set('html', this.content);\n+        },\n+\n+        tearDown: function () {\n+            this.view.destroy();\n+            delete this.view;\n+        },\n+\n+        \"Should fire the contentDiscover event\": function () {\n+            var container = this.view.get('container'),\n+                button = container.one('.ez-role-assign-limit-section-button'),\n+                sectionSelector = container.one('.ez-role-assignment-section-id'),\n+                that = this;\n+\n+            container.once('tap', function (e) {\n+                Assert.isTrue(!!e.prevented, \"The tap event should have been prevented\");\n+            });\n+            this.view.on('contentDiscover', function (e) {\n+                that.resume(function () {\n+                    Assert.areEqual(\n+                        button.getAttribute('data-universaldiscovery-title'),\n+                        e.config.title,\n+                        \"The event facade should contain a custom title\"\n+                    );\n+                    Assert.isFunction(\n+                        e.config.cancelDiscoverHandler,\n+                        \"The event facade should contain the cancelDiscover event handler\"\n+                    );\n+                    Assert.areEqual(\n+                        button.getAttribute('data-role-rest-id'),\n+                        e.config.data.roleId,\n+                        \"The role id should be available in the config data\"\n+                    );\n+                    Assert.areEqual(\n+                        button.getAttribute('data-role-name'),\n+                        e.config.data.roleName,\n+                        \"The role name should be available in the config data\"\n+                    );\n+                    Assert.areEqual(\n+                        'Section',\n+                        e.config.data.limitationType,\n+                        \"The limitationType should be available in the config data\"\n+                    );\n+                    Assert.areEqual(\n+                        sectionSelector.get('options').item(sectionSelector.get('selectedIndex')).get('value'),\n+                        e.config.data.sectionId,\n+                        \"The section id should be available in the config data\"\n+                    );\n+                    Assert.areEqual(\n+                        sectionSelector.get('options').item(sectionSelector.get('selectedIndex')).get('text'),\n+                        e.config.data.sectionName,\n+                        \"The section name should be available in the config data\"\n+                    );\n+                    Assert.areSame(\n+                        e.config.cancelDiscoverHandler,\n+                        e.config.data.afterUpdateCallback,\n+                        \"The config data should contain the unset loading function\"\n+                    );\n+                    Assert.isTrue(\n+                        e.config.multiple,\n+                        \"The universal discovery should be configured in multiple mode\"\n+                    );\n+                });\n+            });\n+            button.simulateGesture('tap');\n+            this.wait();\n+        },\n+\n+        \"Should set the loading state of button\": function () {\n+            var container = this.view.get('container'),\n+                button = container.one('.ez-role-assign-limit-section-button'),\n+                that = this;\n+\n+            button.simulateGesture('tap', function () {\n+                that.resume(function () {\n+                    Assert.isTrue(\n+                        button.get('disabled'),\n+                        \"The button should be disabled\"\n+                    );\n+                    Assert.isTrue(\n+                        button.hasClass('is-loading'),\n+                        \"The button should have the loading class\"\n+                    );\n+                });\n+            });\n+            this.wait();\n+        },\n+\n+        \"Should unset the loading state of button\": function () {\n+            var container = this.view.get('container'),\n+                button = container.one('.ez-role-assign-limit-section-button'),\n+                that = this;\n+\n+            this.view.on('contentDiscover', function (e) {\n+                that.resume(function () {\n+                    e.config.cancelDiscoverHandler.apply(this);\n+                    Assert.isFalse(\n+                        button.get('disabled'),\n+                        \"The button should be enabled\"\n+                    );\n+                    Assert.isFalse(\n+                        button.hasClass('is-loading'),\n+                        \"The button should not have the loading class\"\n+                    );\n+                });\n+            });\n+            button.simulateGesture('tap');\n+            this.wait();\n+        },\n+    });\n+\n+    assignWithSubtreeLimitationTest = new Y.Test.Case({\n+        name: \"eZ Role Server Side assign role tests\",\n+\n+        init: function () {\n+            this.content = Y.one('.container').getHTML();\n+        },\n+\n+        setUp: function () {\n+            this.view = new Y.eZ.RoleServerSideView({\n+                container: '.container',\n+            });\n+            this.view.render();\n+            this.view.set('active', true);\n+            this.view.set('html', this.content);\n+        },\n+\n+        tearDown: function () {\n+            this.view.destroy();\n+            delete this.view;\n+        },\n+\n+        \"Should fire the contentDiscover event on button tap\": function () {\n+            var container = this.view.get('container'),\n+                button = container.one('.ez-role-assign-limit-subtree-button'),\n+                that = this;\n+\n+            container.once('tap', function (e) {\n+                Assert.isTrue(!!e.prevented, \"The tap event should have been prevented\");\n+            });\n+            this.view.on('contentDiscover', function (e) {\n+                that.resume(function () {\n+                    Assert.areEqual(\n+                        button.getAttribute('data-universaldiscovery-limit-subtree-title'),\n+                        e.config.title,\n+                        \"The event facade should contain a custom title\"\n+                    );\n+                    Assert.isFunction(\n+                        e.config.cancelDiscoverHandler,\n+                        \"The event facade should contain the cancelDiscover event handler\"\n+                    );\n+                    Assert.isTrue(\n+                        e.config.multiple,\n+                        \"The universal discovery should be configured in multiple mode\"\n+                    );\n+                });\n+            });\n+            button.simulateGesture('tap');\n+            this.wait();\n+        },\n+\n+        \"Should set the loading state of button\": function () {\n+            var container = this.view.get('container'),\n+                button = container.one('.ez-role-assign-limit-subtree-button'),\n+                that = this;\n+\n+            button.simulateGesture('tap', function () {\n+                that.resume(function () {\n+                    Assert.isTrue(\n+                        button.get('disabled'),\n+                        \"The button should be disabled\"\n+                    );\n+                    Assert.isTrue(\n+                        button.hasClass('is-loading'),\n+                        \"The button should have the loading class\"\n+                    );\n+                });\n+            });\n+            this.wait();\n+        },\n+\n+        \"Should unset the loading state of button\": function () {\n+            var container = this.view.get('container'),\n+                button = container.one('.ez-role-assign-limit-subtree-button'),\n+                that = this;\n+\n+            this.view.on('contentDiscover', function (e) {\n+                that.resume(function () {\n+                    e.config.cancelDiscoverHandler.apply(this);\n+                    Assert.isFalse(\n+                        button.get('disabled'),\n+                        \"The button should be enabled\"\n+                    );\n+                    Assert.isFalse(\n+                        button.hasClass('is-loading'),\n+                        \"The button should not have the loading class\"\n+                    );\n+                });\n+            });\n+            button.simulateGesture('tap');\n+            this.wait();\n+        },\n+\n+        \"Should fire content discover a second time when validating the first discovered selection\": function () {\n+            var container = this.view.get('container'),\n+                button = container.one('.ez-role-assign-limit-subtree-button'),\n+                udView = new Y.View(),\n+                subtreeLocationId =\"/api/ezp/v2/content/locations/1/2/\",\n+                that = this,\n+                locationMock = new Y.Mock(),\n+                selection = [{location: locationMock}],\n+                fakeEventFacade = {selection: selection};\n+\n+            Y.Mock.expect(locationMock, {\n+                method: 'get',\n+                args: ['id'],\n+                returns: subtreeLocationId\n+            });\n+\n+            this.view.once('contentDiscover', function (e) {\n+\n+                that.resume(function() {\n+                    e.config.contentDiscoveredHandler.call(udView, fakeEventFacade);\n+                    //e.config.contentDiscoveredHandler.apply(udView, [selection]);","path":"Tests/js/views/serverside/assets/ez-roleserversideview-tests.js","position":249,"original_position":249,"commit_id":"393cb2dd4a1d87c6b344b54ac0c06c1733765862","original_commit_id":"393cb2dd4a1d87c6b344b54ac0c06c1733765862","user":{"login":"yannickroger","id":4035241,"avatar_url":"https://avatars.githubusercontent.com/u/4035241?v=3","gravatar_id":"","url":"https://api.github.com/users/yannickroger","html_url":"https://github.com/yannickroger","followers_url":"https://api.github.com/users/yannickroger/followers","following_url":"https://api.github.com/users/yannickroger/following{/other_user}","gists_url":"https://api.github.com/users/yannickroger/gists{/gist_id}","starred_url":"https://api.github.com/users/yannickroger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yannickroger/subscriptions","organizations_url":"https://api.github.com/users/yannickroger/orgs","repos_url":"https://api.github.com/users/yannickroger/repos","events_url":"https://api.github.com/users/yannickroger/events{/privacy}","received_events_url":"https://api.github.com/users/yannickroger/received_events","type":"User","site_admin":false},"body":"ooops","created_at":"2016-04-12T12:09:11Z","updated_at":"2016-04-12T12:09:11Z","html_url":"https://github.com/ezsystems/PlatformUIBundle/pull/543#discussion_r59364160","pull_request_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/pulls/543","_links":{"self":{"href":"https://api.github.com/repos/ezsystems/PlatformUIBundle/pulls/comments/59364160"},"html":{"href":"https://github.com/ezsystems/PlatformUIBundle/pull/543#discussion_r59364160"},"pull_request":{"href":"https://api.github.com/repos/ezsystems/PlatformUIBundle/pulls/543"}}},"pull_request":{"url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/pulls/543","id":66001072,"html_url":"https://github.com/ezsystems/PlatformUIBundle/pull/543","diff_url":"https://github.com/ezsystems/PlatformUIBundle/pull/543.diff","patch_url":"https://github.com/ezsystems/PlatformUIBundle/pull/543.patch","issue_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/issues/543","number":543,"state":"open","locked":false,"title":"EZP-25009: Role assignement with section & subtree limitations","user":{"login":"StephaneDiot","id":5558766,"avatar_url":"https://avatars.githubusercontent.com/u/5558766?v=3","gravatar_id":"","url":"https://api.github.com/users/StephaneDiot","html_url":"https://github.com/StephaneDiot","followers_url":"https://api.github.com/users/StephaneDiot/followers","following_url":"https://api.github.com/users/StephaneDiot/following{/other_user}","gists_url":"https://api.github.com/users/StephaneDiot/gists{/gist_id}","starred_url":"https://api.github.com/users/StephaneDiot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StephaneDiot/subscriptions","organizations_url":"https://api.github.com/users/StephaneDiot/orgs","repos_url":"https://api.github.com/users/StephaneDiot/repos","events_url":"https://api.github.com/users/StephaneDiot/events{/privacy}","received_events_url":"https://api.github.com/users/StephaneDiot/received_events","type":"User","site_admin":false},"body":"jira: https://jira.ez.no/browse/EZP-25009\r\n\r\n## Description\r\n\r\nThe goal is to be able to assign a role to a user or user group with a section and subtree limitation.\r\n\r\n:warning: the redirection is not implemented after the role is assigned. Seems it will wait for https://jira.ez.no/browse/EZP-25442\r\n\r\n:warning:² <s>Currently it is working with IDs instead of URIs for REST request to assign role to user with limitation. It's not what we are expecting from the REST API. This will be changed when https://github.com/ezsystems/ezpublish-kernel/pull/1569 will be finnish. So it shouldn't be merged before.</s>  Now it's done !\r\n## Tests\r\n\r\n- Manual tests\r\n- Unit tests\r\n\r\n## TODO\r\n- [x] replace IDs by URIs","created_at":"2016-04-11T14:18:02Z","updated_at":"2016-04-12T12:09:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b934659221d39e453ed99602eed14b807165b08e","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/pulls/543/commits","review_comments_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/pulls/543/comments","review_comment_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/issues/543/comments","statuses_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/statuses/393cb2dd4a1d87c6b344b54ac0c06c1733765862","head":{"label":"StephaneDiot:ezp-25009_Role_assgignement","ref":"ezp-25009_Role_assgignement","sha":"393cb2dd4a1d87c6b344b54ac0c06c1733765862","user":{"login":"StephaneDiot","id":5558766,"avatar_url":"https://avatars.githubusercontent.com/u/5558766?v=3","gravatar_id":"","url":"https://api.github.com/users/StephaneDiot","html_url":"https://github.com/StephaneDiot","followers_url":"https://api.github.com/users/StephaneDiot/followers","following_url":"https://api.github.com/users/StephaneDiot/following{/other_user}","gists_url":"https://api.github.com/users/StephaneDiot/gists{/gist_id}","starred_url":"https://api.github.com/users/StephaneDiot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StephaneDiot/subscriptions","organizations_url":"https://api.github.com/users/StephaneDiot/orgs","repos_url":"https://api.github.com/users/StephaneDiot/repos","events_url":"https://api.github.com/users/StephaneDiot/events{/privacy}","received_events_url":"https://api.github.com/users/StephaneDiot/received_events","type":"User","site_admin":false},"repo":{"id":25251296,"name":"PlatformUIBundle-1","full_name":"StephaneDiot/PlatformUIBundle-1","owner":{"login":"StephaneDiot","id":5558766,"avatar_url":"https://avatars.githubusercontent.com/u/5558766?v=3","gravatar_id":"","url":"https://api.github.com/users/StephaneDiot","html_url":"https://github.com/StephaneDiot","followers_url":"https://api.github.com/users/StephaneDiot/followers","following_url":"https://api.github.com/users/StephaneDiot/following{/other_user}","gists_url":"https://api.github.com/users/StephaneDiot/gists{/gist_id}","starred_url":"https://api.github.com/users/StephaneDiot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StephaneDiot/subscriptions","organizations_url":"https://api.github.com/users/StephaneDiot/orgs","repos_url":"https://api.github.com/users/StephaneDiot/repos","events_url":"https://api.github.com/users/StephaneDiot/events{/privacy}","received_events_url":"https://api.github.com/users/StephaneDiot/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/StephaneDiot/PlatformUIBundle-1","description":"","fork":true,"url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1","forks_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/forks","keys_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/teams","hooks_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/hooks","issue_events_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/issues/events{/number}","events_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/events","assignees_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/assignees{/user}","branches_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/branches{/branch}","tags_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/tags","blobs_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/git/refs{/sha}","trees_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/statuses/{sha}","languages_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/languages","stargazers_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/stargazers","contributors_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/contributors","subscribers_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/subscribers","subscription_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/subscription","commits_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/commits{/sha}","git_commits_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/git/commits{/sha}","comments_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/comments{/number}","issue_comment_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/issues/comments{/number}","contents_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/contents/{+path}","compare_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/merges","archive_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/downloads","issues_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/issues{/number}","pulls_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/pulls{/number}","milestones_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/milestones{/number}","notifications_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/labels{/name}","releases_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/releases{/id}","deployments_url":"https://api.github.com/repos/StephaneDiot/PlatformUIBundle-1/deployments","created_at":"2014-10-15T11:15:19Z","updated_at":"2016-02-25T16:14:20Z","pushed_at":"2016-04-11T14:07:24Z","git_url":"git://github.com/StephaneDiot/PlatformUIBundle-1.git","ssh_url":"git@github.com:StephaneDiot/PlatformUIBundle-1.git","clone_url":"https://github.com/StephaneDiot/PlatformUIBundle-1.git","svn_url":"https://github.com/StephaneDiot/PlatformUIBundle-1","homepage":null,"size":5151,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","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":"ezsystems:master","ref":"master","sha":"d38a00b5329c46f6b7d791607b6e3df3eb4858b6","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":11221607,"name":"PlatformUIBundle","full_name":"ezsystems/PlatformUIBundle","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/PlatformUIBundle","description":"Main Bundle to provide editorial/admin UI for eZ Platform","fork":false,"url":"https://api.github.com/repos/ezsystems/PlatformUIBundle","forks_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/forks","keys_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/teams","hooks_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/hooks","issue_events_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/issues/events{/number}","events_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/events","assignees_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/assignees{/user}","branches_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/branches{/branch}","tags_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/tags","blobs_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/statuses/{sha}","languages_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/languages","stargazers_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/stargazers","contributors_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/contributors","subscribers_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/subscribers","subscription_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/subscription","commits_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/issues/comments{/number}","contents_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/contents/{+path}","compare_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/merges","archive_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/downloads","issues_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/issues{/number}","pulls_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/pulls{/number}","milestones_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/milestones{/number}","notifications_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/labels{/name}","releases_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/releases{/id}","deployments_url":"https://api.github.com/repos/ezsystems/PlatformUIBundle/deployments","created_at":"2013-07-06T17:21:40Z","updated_at":"2016-02-27T01:26:30Z","pushed_at":"2016-04-12T11:57:57Z","git_url":"git://github.com/ezsystems/PlatformUIBundle.git","ssh_url":"git@github.com:ezsystems/PlatformUIBundle.git","clone_url":"https://github.com/ezsystems/PlatformUIBundle.git","svn_url":"https://github.com/ezsystems/PlatformUIBundle","homepage":"http://ezplatform.com/","size":6271,"stargazers_count":28,"watchers_count":28,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":29,"mirror_url":null,"open_issues_count":16,"forks":29,"open_issues":16,"watchers":28,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ezsystems/PlatformUIBundle/pulls/543"},"html":{"href":"https://github.com/ezsystems/PlatformUIBundle/pull/543"},"issue":{"href":"https://api.github.com/repos/ezsystems/PlatformUIBundle/issues/543"},"comments":{"href":"https://api.github.com/repos/ezsystems/PlatformUIBundle/issues/543/comments"},"review_comments":{"href":"https://api.github.com/repos/ezsystems/PlatformUIBundle/pulls/543/comments"},"review_comment":{"href":"https://api.github.com/repos/ezsystems/PlatformUIBundle/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ezsystems/PlatformUIBundle/pulls/543/commits"},"statuses":{"href":"https://api.github.com/repos/ezsystems/PlatformUIBundle/statuses/393cb2dd4a1d87c6b344b54ac0c06c1733765862"}}}}