GitHub PullRequestReviewCommentEvent at 2014-10-06 09:12:40
Repository: SuluProductBundle
Actor: danrot
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls/comments/18446980","id":18446980,"diff_hunk":"@@ -7,242 +7,254 @@\n  * with this source code in the file LICENSE.\n  */\n \n-define(['suluproduct/models/product', 'app-config'], function (Product, AppConfig) {\n-    'use strict';\n-\n-    var types = {\n-            1: 'product',\n-            2: 'product-with-variants',\n-            3: 'product-addon',\n-            4: 'product-set'\n-        },\n-        eventNamespace = 'sulu.products.',\n-\n-        /**\n-         * @event sulu.products.new\n-         * @description Opens the form for a new product\n-         */\n-        PRODUCT_NEW = eventNamespace + 'new',\n-\n-        /**\n-         * @event sulu.products.save\n-         * @description Saves a given product\n-         */\n-        PRODUCT_SAVE = eventNamespace + 'save',\n-\n-        /**\n-         * @event sulu.products.delete\n-         * @description Deletes the given products\n-         */\n-        PRODUCT_DELETE = eventNamespace + 'delete',\n-\n-        /**\n-         * @description Opens the form for importing products\n-         */\n-        PRODUCT_IMPORT = eventNamespace + 'import',\n-\n-        /**\n-         * @event sulu.products.list\n-         * @description Shows the list for products\n-         */\n-        PRODUCT_LIST = eventNamespace + 'list',\n-\n-        /**\n-         * @event sulu.products.variants.delete\n-         * @description Deletes the given variants from the current product\n-         */\n-        PRODUCT_VARIANT_DELETE = eventNamespace + 'variants.delete';\n-\n-    return {\n-        initialize: function () {\n-            this.product = null;\n-\n-            this.bindCustomEvents();\n-            if (this.options.display === 'list') {\n-                this.renderList();\n-            } else if (this.options.display === 'tab') {\n-                this.renderTabs();\n-            } else if (this.options.display === 'import') {\n-                this.renderImport();\n-            }\n-        },\n-\n-        bindCustomEvents: function () {\n-            this.sandbox.on(PRODUCT_NEW, function (type) {\n-                this.sandbox.emit(\n-                    'sulu.router.navigate',\n-                    'pim/products/' + AppConfig.getUser().locale + '/add/type:' + type\n-                );\n-            }.bind(this));\n-\n-            this.sandbox.on(PRODUCT_SAVE, function (data) {\n-                this.save(data);\n-            }.bind(this));\n-\n-            this.sandbox.on(PRODUCT_DELETE, function (ids) {\n-                this.del(ids);\n-            }, this);\n-\n-            this.sandbox.on(PRODUCT_IMPORT, function () {\n-                this.sandbox.emit('sulu.router.navigate', 'pim/products/import');\n-            }.bind(this));\n-\n-            this.sandbox.on('husky.datagrid.item.click', function (id) {\n-                this.load(id, AppConfig.getUser().locale);\n-            }.bind(this));\n-\n-            this.sandbox.on(PRODUCT_LIST, function () {\n-                this.sandbox.emit('sulu.router.navigate', 'pim/products');\n-            }.bind(this));\n-\n-            this.sandbox.on('sulu.header.language-changed', function (locale) {\n-                this.load(this.options.id, locale);\n-            }, this);\n-\n-            this.sandbox.on('sulu.products.products-overlay.variants.add', function (id, callback) {\n-                this.addVariant(id, callback);\n-            }, this);\n-\n-            this.sandbox.on(PRODUCT_VARIANT_DELETE, function (ids) {\n-                this.deleteVariants(ids);\n-            }, this);\n-        },\n-\n-        save: function (data) {\n-            this.sandbox.emit('sulu.header.toolbar.item.loading', 'save-button');\n-            this.product.set(data);\n-            this.product.saveLocale(this.options.locale, {\n-                success: function (response) {\n-                    var model = response.toJSON();\n-                    if (!!data.id) {\n-                        this.sandbox.emit('sulu.products.saved', model);\n-                    } else {\n-                        this.load(model.id, this.options.locale);\n+define([\n+        'suluproduct/models/product',\n+        'sulucategory/model/category',\n+        'app-config'\n+    ], function (Product, Category, AppConfig) {\n+        'use strict';\n+\n+        var types = {\n+                1: 'product',\n+                2: 'product-with-variants',\n+                3: 'product-addon',\n+                4: 'product-set'\n+            },\n+            eventNamespace = 'sulu.products.',\n+\n+            /**\n+             * @event sulu.products.new\n+             * @description Opens the form for a new product\n+             */\n+            PRODUCT_NEW = eventNamespace + 'new',\n+\n+            /**\n+             * @event sulu.products.save\n+             * @description Saves a given product\n+             */\n+            PRODUCT_SAVE = eventNamespace + 'save',\n+\n+            /**\n+             * @event sulu.products.delete\n+             * @description Deletes the given products\n+             */\n+            PRODUCT_DELETE = eventNamespace + 'delete',\n+\n+            /**\n+             * @description Opens the form for importing products\n+             */\n+            PRODUCT_IMPORT = eventNamespace + 'import',\n+\n+            /**\n+             * @event sulu.products.list\n+             * @description Shows the list for products\n+             */\n+            PRODUCT_LIST = eventNamespace + 'list',\n+\n+            /**\n+             * @event sulu.products.variants.delete\n+             * @description Deletes the given variants from the current product\n+             */\n+            PRODUCT_VARIANT_DELETE = eventNamespace + 'variants.delete';\n+\n+        return {\n+            initialize: function () {\n+                this.product = null;\n+\n+                this.bindCustomEvents();\n+                if (this.options.display === 'list') {\n+                    this.renderList();\n+                } else if (this.options.display === 'tab') {\n+                    this.renderTabs();\n+                } else if (this.options.display === 'import') {\n+                    this.renderImport();\n+                }\n+            },\n+\n+            bindCustomEvents: function () {\n+                this.sandbox.on(PRODUCT_NEW, function (type) {\n+                    this.sandbox.emit(\n+                        'sulu.router.navigate',\n+                            'pim/products/' + AppConfig.getUser().locale + '/add/type:' + type\n+                    );\n+                }.bind(this));\n+\n+                this.sandbox.on(PRODUCT_SAVE, function (data) {\n+                    this.save(data);\n+                }.bind(this));\n+\n+                this.sandbox.on(PRODUCT_DELETE, function (ids) {\n+                    this.del(ids);\n+                }, this);\n+\n+                this.sandbox.on(PRODUCT_IMPORT, function () {\n+                    this.sandbox.emit('sulu.router.navigate', 'pim/products/import');\n+                }.bind(this));\n+\n+                this.sandbox.on('husky.datagrid.item.click', function (id) {\n+                    this.load(id, AppConfig.getUser().locale);\n+                }.bind(this));\n+\n+                this.sandbox.on(PRODUCT_LIST, function () {\n+                    this.sandbox.emit('sulu.router.navigate', 'pim/products');\n+                }.bind(this));\n+\n+                this.sandbox.on('sulu.header.language-changed', function (locale) {\n+                    this.load(this.options.id, locale);\n+                }, this);\n+\n+                this.sandbox.on('sulu.products.products-overlay.variants.add', function (id, callback) {\n+                    this.addVariant(id, callback);\n+                }, this);\n+\n+                this.sandbox.on(PRODUCT_VARIANT_DELETE, function (ids) {\n+                    this.deleteVariants(ids);\n+                }, this);\n+            },\n+\n+            save: function (data) {\n+                this.sandbox.emit('sulu.header.toolbar.item.loading', 'save-button');\n+                this.product.set(data);\n+\n+                // FIXME the categories should already be loaded correctly here\n+                this.product.get('categories').reset();\n+                this.sandbox.util.foreach(data.categories, function (id) {\n+                    var category = Category.findOrCreate({id: id});\n+                    this.product.get('categories').add(category);\n+                }.bind(this));\n+\n+                this.product.saveLocale(this.options.locale, {\n+                    success: function (response) {\n+                        var model = response.toJSON();\n+                        if (!!data.id) {\n+                            this.sandbox.emit('sulu.products.saved', model);\n+                        } else {\n+                            this.load(model.id, this.options.locale);\n+                        }\n+                    }.bind(this),\n+                    error: function () {\n+                        this.sandbox.logger.log('error while saving product');\n+                    }.bind(this)\n+                });\n+            },\n+\n+            load: function (id, localization) {\n+                this.sandbox.emit('sulu.router.navigate', 'pim/products/' + localization + '/edit:' + id + '/details');\n+            },\n+\n+            del: function (ids) {\n+                this.confirmDeleteDialog(function (wasConfirmed) {\n+                    if (wasConfirmed) {\n+                        this.sandbox.util.each(ids, function (key, id) {\n+                            var product = new Product({id: id});\n+                            product.destroy({\n+                                success: function () {\n+                                    this.sandbox.emit('husky.datagrid.record.remove', id);\n+                                }.bind(this)\n+                            });\n+                        }.bind(this));\n                     }\n-                }.bind(this),\n-                error: function () {\n-                    this.sandbox.logger.log('error while saving product');\n-                }.bind(this)\n-            });\n-        },\n-\n-        load: function (id, localization) {\n-            this.sandbox.emit('sulu.router.navigate', 'pim/products/' + localization + '/edit:' + id + '/details');\n-        },\n-\n-        del: function (ids) {\n-            this.confirmDeleteDialog(function (wasConfirmed) {\n-                if (wasConfirmed) {\n-                    this.sandbox.util.each(ids, function (key, id) {\n-                        var product = new Product({id: id});\n-                        product.destroy({\n-                            success: function () {\n-                                this.sandbox.emit('husky.datagrid.record.remove', id);\n+                }.bind(this));\n+            },\n+\n+            addVariant: function (id) {\n+                this.product.get('variants').fetch(\n+                    {\n+                        data: {\n+                            id: id\n+                        },\n+                        type: 'POST',\n+                        success: function (collection, response) {\n+                            delete response.parent; // FIXME this is necessary because of husky datagrid\n+                            this.sandbox.emit('husky.datagrid.variants-datagrid.record.remove', id);\n+                            this.sandbox.emit('husky.datagrid.record.add', response);\n+                        }.bind(this)\n+                    }\n+                );\n+            },\n+\n+            deleteVariants: function (ids) {\n+                this.confirmDeleteDialog(function (wasConfirmed) {\n+                    if (wasConfirmed) {\n+                        this.product.get('variants').fetch({\n+                            success: function (collection) {\n+                                this.sandbox.util.each(ids, function (key, id) {\n+                                    var product = collection.get(id);\n+                                    product.urlRoot = collection.url() + '/';\n+\n+                                    product.destroy({\n+                                        success: function () {","path":"Resources/public/js/components/products/main.js","position":310,"original_position":310,"commit_id":"363c5d0b2665b4379652bd578323b693d65328f8","original_commit_id":"363c5d0b2665b4379652bd578323b693d65328f8","user":{"login":"danrot","id":405874,"avatar_url":"https://avatars.githubusercontent.com/u/405874?v=2","gravatar_id":"","url":"https://api.github.com/users/danrot","html_url":"https://github.com/danrot","followers_url":"https://api.github.com/users/danrot/followers","following_url":"https://api.github.com/users/danrot/following{/other_user}","gists_url":"https://api.github.com/users/danrot/gists{/gist_id}","starred_url":"https://api.github.com/users/danrot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danrot/subscriptions","organizations_url":"https://api.github.com/users/danrot/orgs","repos_url":"https://api.github.com/users/danrot/repos","events_url":"https://api.github.com/users/danrot/events{/privacy}","received_events_url":"https://api.github.com/users/danrot/received_events","type":"User","site_admin":false},"body":"This function is a one-liner, what do you want me to extract here?","created_at":"2014-10-06T09:12:40Z","updated_at":"2014-10-06T09:12:40Z","html_url":"https://github.com/sulu-cmf/SuluProductBundle/pull/33#discussion_r18446980","pull_request_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls/33","_links":{"self":{"href":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls/comments/18446980"},"html":{"href":"https://github.com/sulu-cmf/SuluProductBundle/pull/33#discussion_r18446980"},"pull_request":{"href":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls/33"}}},"pull_request":{"url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls/33","id":21648381,"html_url":"https://github.com/sulu-cmf/SuluProductBundle/pull/33","diff_url":"https://github.com/sulu-cmf/SuluProductBundle/pull/33.diff","patch_url":"https://github.com/sulu-cmf/SuluProductBundle/pull/33.patch","issue_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/issues/33","number":33,"state":"open","locked":false,"title":"[FEATURE] Categories","user":{"login":"danrot","id":405874,"avatar_url":"https://avatars.githubusercontent.com/u/405874?v=2","gravatar_id":"","url":"https://api.github.com/users/danrot","html_url":"https://github.com/danrot","followers_url":"https://api.github.com/users/danrot/followers","following_url":"https://api.github.com/users/danrot/following{/other_user}","gists_url":"https://api.github.com/users/danrot/gists{/gist_id}","starred_url":"https://api.github.com/users/danrot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danrot/subscriptions","organizations_url":"https://api.github.com/users/danrot/orgs","repos_url":"https://api.github.com/users/danrot/repos","events_url":"https://api.github.com/users/danrot/events{/privacy}","received_events_url":"https://api.github.com/users/danrot/received_events","type":"User","site_admin":false},"body":"__Tasks:__\r\n\r\n- [ ] test coverage\r\n- [ ] gather feedback for my changes\r\n- [ ] submit changes to the documentation\r\n- [ ] adjust to changes in https://github.com/sulu-cmf/sulu/pull/270\r\n\r\n__Informations:__\r\n\r\n| Q             | A\r\n| ------------- | ---\r\n| Tests pass?   | yes\r\n| Fixed tickets | none\r\n| BC Breaks     | none\r\n| Doc           | none","created_at":"2014-09-23T14:18:41Z","updated_at":"2014-10-06T09:12:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6e473bdc36afbd1dcaf464bfbe5b7311428c6b75","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls/33/commits","review_comments_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls/33/comments","review_comment_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls/comments/{number}","comments_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/issues/33/comments","statuses_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/statuses/363c5d0b2665b4379652bd578323b693d65328f8","head":{"label":"sulu-cmf:feature/categories","ref":"feature/categories","sha":"363c5d0b2665b4379652bd578323b693d65328f8","user":{"login":"sulu-cmf","id":5717006,"avatar_url":"https://avatars.githubusercontent.com/u/5717006?v=2","gravatar_id":"","url":"https://api.github.com/users/sulu-cmf","html_url":"https://github.com/sulu-cmf","followers_url":"https://api.github.com/users/sulu-cmf/followers","following_url":"https://api.github.com/users/sulu-cmf/following{/other_user}","gists_url":"https://api.github.com/users/sulu-cmf/gists{/gist_id}","starred_url":"https://api.github.com/users/sulu-cmf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sulu-cmf/subscriptions","organizations_url":"https://api.github.com/users/sulu-cmf/orgs","repos_url":"https://api.github.com/users/sulu-cmf/repos","events_url":"https://api.github.com/users/sulu-cmf/events{/privacy}","received_events_url":"https://api.github.com/users/sulu-cmf/received_events","type":"Organization","site_admin":false},"repo":{"id":17173120,"name":"SuluProductBundle","full_name":"sulu-cmf/SuluProductBundle","owner":{"login":"sulu-cmf","id":5717006,"avatar_url":"https://avatars.githubusercontent.com/u/5717006?v=2","gravatar_id":"","url":"https://api.github.com/users/sulu-cmf","html_url":"https://github.com/sulu-cmf","followers_url":"https://api.github.com/users/sulu-cmf/followers","following_url":"https://api.github.com/users/sulu-cmf/following{/other_user}","gists_url":"https://api.github.com/users/sulu-cmf/gists{/gist_id}","starred_url":"https://api.github.com/users/sulu-cmf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sulu-cmf/subscriptions","organizations_url":"https://api.github.com/users/sulu-cmf/orgs","repos_url":"https://api.github.com/users/sulu-cmf/repos","events_url":"https://api.github.com/users/sulu-cmf/events{/privacy}","received_events_url":"https://api.github.com/users/sulu-cmf/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sulu-cmf/SuluProductBundle","description":"","fork":false,"url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle","forks_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/forks","keys_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/teams","hooks_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/hooks","issue_events_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/issues/events{/number}","events_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/events","assignees_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/assignees{/user}","branches_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/branches{/branch}","tags_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/tags","blobs_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/statuses/{sha}","languages_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/languages","stargazers_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/stargazers","contributors_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/contributors","subscribers_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/subscribers","subscription_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/subscription","commits_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/contents/{+path}","compare_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/merges","archive_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/downloads","issues_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/issues{/number}","pulls_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls{/number}","milestones_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/milestones{/number}","notifications_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/labels{/name}","releases_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/releases{/id}","created_at":"2014-02-25T13:03:06Z","updated_at":"2014-09-08T14:42:52Z","pushed_at":"2014-10-06T09:09:09Z","git_url":"git://github.com/sulu-cmf/SuluProductBundle.git","ssh_url":"git@github.com:sulu-cmf/SuluProductBundle.git","clone_url":"https://github.com/sulu-cmf/SuluProductBundle.git","svn_url":"https://github.com/sulu-cmf/SuluProductBundle","homepage":null,"size":2784,"stargazers_count":1,"watchers_count":1,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":13,"forks":0,"open_issues":13,"watchers":1,"default_branch":"develop"}},"base":{"label":"sulu-cmf:develop","ref":"develop","sha":"79a6e3116ce843672414eae55d00aaa900dfda1a","user":{"login":"sulu-cmf","id":5717006,"avatar_url":"https://avatars.githubusercontent.com/u/5717006?v=2","gravatar_id":"","url":"https://api.github.com/users/sulu-cmf","html_url":"https://github.com/sulu-cmf","followers_url":"https://api.github.com/users/sulu-cmf/followers","following_url":"https://api.github.com/users/sulu-cmf/following{/other_user}","gists_url":"https://api.github.com/users/sulu-cmf/gists{/gist_id}","starred_url":"https://api.github.com/users/sulu-cmf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sulu-cmf/subscriptions","organizations_url":"https://api.github.com/users/sulu-cmf/orgs","repos_url":"https://api.github.com/users/sulu-cmf/repos","events_url":"https://api.github.com/users/sulu-cmf/events{/privacy}","received_events_url":"https://api.github.com/users/sulu-cmf/received_events","type":"Organization","site_admin":false},"repo":{"id":17173120,"name":"SuluProductBundle","full_name":"sulu-cmf/SuluProductBundle","owner":{"login":"sulu-cmf","id":5717006,"avatar_url":"https://avatars.githubusercontent.com/u/5717006?v=2","gravatar_id":"","url":"https://api.github.com/users/sulu-cmf","html_url":"https://github.com/sulu-cmf","followers_url":"https://api.github.com/users/sulu-cmf/followers","following_url":"https://api.github.com/users/sulu-cmf/following{/other_user}","gists_url":"https://api.github.com/users/sulu-cmf/gists{/gist_id}","starred_url":"https://api.github.com/users/sulu-cmf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sulu-cmf/subscriptions","organizations_url":"https://api.github.com/users/sulu-cmf/orgs","repos_url":"https://api.github.com/users/sulu-cmf/repos","events_url":"https://api.github.com/users/sulu-cmf/events{/privacy}","received_events_url":"https://api.github.com/users/sulu-cmf/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sulu-cmf/SuluProductBundle","description":"","fork":false,"url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle","forks_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/forks","keys_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/teams","hooks_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/hooks","issue_events_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/issues/events{/number}","events_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/events","assignees_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/assignees{/user}","branches_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/branches{/branch}","tags_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/tags","blobs_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/statuses/{sha}","languages_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/languages","stargazers_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/stargazers","contributors_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/contributors","subscribers_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/subscribers","subscription_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/subscription","commits_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/contents/{+path}","compare_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/merges","archive_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/downloads","issues_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/issues{/number}","pulls_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls{/number}","milestones_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/milestones{/number}","notifications_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/labels{/name}","releases_url":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/releases{/id}","created_at":"2014-02-25T13:03:06Z","updated_at":"2014-09-08T14:42:52Z","pushed_at":"2014-10-06T09:09:09Z","git_url":"git://github.com/sulu-cmf/SuluProductBundle.git","ssh_url":"git@github.com:sulu-cmf/SuluProductBundle.git","clone_url":"https://github.com/sulu-cmf/SuluProductBundle.git","svn_url":"https://github.com/sulu-cmf/SuluProductBundle","homepage":null,"size":2784,"stargazers_count":1,"watchers_count":1,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":13,"forks":0,"open_issues":13,"watchers":1,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls/33"},"html":{"href":"https://github.com/sulu-cmf/SuluProductBundle/pull/33"},"issue":{"href":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/issues/33"},"comments":{"href":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/issues/33/comments"},"review_comments":{"href":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls/33/comments"},"review_comment":{"href":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/pulls/33/commits"},"statuses":{"href":"https://api.github.com/repos/sulu-cmf/SuluProductBundle/statuses/363c5d0b2665b4379652bd578323b693d65328f8"}}}}