{"action":"created","comment":{"url":"https://api.github.com/repos/wso2/product-pc/pulls/comments/77793082","id":77793082,"diff_hunk":"@@ -0,0 +1,365 @@\n+/*\n+ *  Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n+ *\n+ *  WSO2 Inc. licenses this file to you under the Apache License,\n+ *  Version 2.0 (the \"License\"); you may not use this file except\n+ *  in compliance with the License.\n+ *  You may obtain a copy of the License at\n+ *\n+ *  http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ *  Unless required by applicable law or agreed to in writing,\n+ *  software distributed under the License is distributed on an\n+ *  \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n+ *  KIND, either express or implied.w   See the License for the\n+ *  specific language governing permissions and limitations\n+ *  under the License.\n+ *\n+ */\n+var SELECT_CONTAINER = \".select-roles\",\n+    SELECT_CONTAINER_CSS = \"select-roles\",\n+    authorizedRoles;\n+\n+var showOtherRolePermissionsDiv = function () {\n+    var addId = \"#step2\";\n+    $(addId).removeClass(\"disabled-area\");\n+    $(addId + \" select\").attr(\"disabled\", false);\n+\n+    $(addId).show();\n+    if ($(SELECT_CONTAINER + \" option\").length !== 0) {\n+        $(\"#addPermission\").css(\"display\", \"initial\");\n+    }\n+    else {\n+        $(\"#addPermission\").hide();\n+    }\n+};\n+\n+$(document).ready(function () {\n+    renderSelect2();\n+\n+    if ($(\"#other-roles\").prop(\"checked\")) {\n+        showOtherRolePermissionsDiv();\n+    } else {\n+        $(\"#step2\").hide();\n+    }\n+\n+});\n+\n+function renderSelect2() {\n+    $(SELECT_CONTAINER).select2({\n+        dropdownCssClass: SELECT_CONTAINER_CSS,\n+        containerCssClass: SELECT_CONTAINER_CSS\n+    });\n+}\n+\n+$(function () {\n+    var invokePermissionListAPI = function () {\n+        var fromAssetId = store.publisher.assetId;\n+        var assetType = store.publisher.type;\n+        var url = caramel.context + \"/apis/permissions?assetType=\" + assetType + \"&id=\" + fromAssetId;\n+        $.ajax({\n+            url: url,\n+            async: false,\n+            type: \"GET\",\n+            success: function (data) {\n+                var roleNames = data.data.roleNames;\n+                authorizedRoles = data.data.authorizedRoles;\n+                for (var i in roleNames) {\n+                    if(roleNames.hasOwnProperty(i)){\n+                        var role = roleNames[i].toLowerCase();\n+                        addOptionsToSelect2(role);\n+                    }\n+                }\n+                renderSelect2();\n+                initSelect2Roles();\n+            }\n+        });\n+\n+    };\n+\n+    var isRoleAuthorized = function (role) {\n+        var status = false;\n+        for (var i in authorizedRoles) {\n+            if(authorizedRoles.hasOwnProperty(i)){\n+                if(authorizedRoles[i] == role){\n+                    status = true;\n+                }\n+            }\n+        }\n+        return status;\n+    };\n+\n+    var invokePermissionAPI = function (data, role) {\n+        var url = caramel.context + \"/apis/permissions\";\n+        $.ajax({\n+            url: url,\n+            async: false,\n+            data: JSON.stringify(data),\n+            type: \"POST\",\n+            contentType: \"application/json\",\n+            success: function (data) {\n+                if (data.status) {\n+                    populateSuccessMessage(\"shared\", role);\n+                } else {\n+                    populateErrorMessage(\"adding\");\n+                }\n+                $(\"#new-version-loading-add\").addClass(\"hide\");\n+                $(\"#new-version-loading-save\").addClass(\"hide\");\n+            },\n+            error: function () {\n+                populateErrorMessage(\"adding\");\n+                $(\"#new-version-loading-add\").addClass(\"hide\");\n+                $(\"#new-version-loading-save\").addClass(\"hide\");\n+            }\n+        });\n+\n+    };\n+\n+    var invokeRemovePermissionAPI = function (data, role) {\n+        var url = caramel.context + \"/apis/permissions?assetType=\" + data.assetType + \"&assetId=\" + data.assetId\n+            + \"&pathWithVersion=\" + data.pathWithVersion + \"&roleToRemove=\" + data.roleToRemove;\n+\n+        $.ajax({\n+            url: url,\n+            async: false,\n+            type: \"DELETE\",\n+            success: function (data) {\n+                if (data.status) {\n+                    populateSuccessMessage(\"restricted\", role);\n+                } else {\n+                    populateErrorMessage(\"removing\");\n+                }\n+            },\n+            error: function () {\n+                populateErrorMessage(\"removing\");\n+            }\n+        });\n+    };\n+\n+    var invokeUpdatePermissionAPI = function (data, role) {\n+        var url = caramel.context + \"/apis/permissions\";\n+        $.ajax({\n+            url: url,\n+            async: false,\n+            data: JSON.stringify(data),\n+            type: \"PUT\",\n+            contentType: \"application/json\",\n+            success: function (data) {\n+                if (data.status) {\n+                    populateSuccessMessage(\"shared\", role);\n+                } else {\n+                    populateErrorMessage(\"updating\");\n+                }\n+                $(\"#new-version-loading-save\").addClass(\"hide\");\n+            },\n+            error: function () {\n+                populateErrorMessage(\"updating\");\n+                $(\"#new-version-loading-save\").addClass(\"hide\");\n+            }\n+        });\n+    };\n+\n+    var populateSuccessMessage = function (action, role) {\n+        $(\"#div-roles\").load(location.href + \" \" + \".wr-permission\");\n+        setTimeout(function () {\n+            if ($(\".wr-permission\").text().length <= 0) {\n+                $(\"#div-roles\").html(\"<div class='clearfix wr-permission' align='center'>\" +\n+                    \"No permissions to show</div>\");\n+            }\n+        }, 250);\n+        if(action == \"restricted\"){\n+            messages.alertSuccess(\"Resource successfully \" + action + \" from \" + role);\n+        } else {\n+            messages.alertSuccess(\"Resource successfully \" + action + \" with \" + role);\n+        }\n+\n+        initDivPermissionLogic();\n+    };\n+\n+    var populateErrorMessage = function (action) {\n+        messages.alertError(\"Error occurred while \" + action + \" permissions\");\n+    };\n+\n+    var renderRoles = function (role) {\n+        var roleLower = role.toLowerCase();\n+        var modifiedRole = \"\";\n+        switch (roleLower) {\n+            case \"internal/everyone\":\n+                modifiedRole = \"All tenant users\";\n+                break;\n+            case \"system/wso2.anonymous.role\":\n+                modifiedRole = \"Public\";\n+                break;\n+            default:\n+                if (roleLower.startsWith(\"internal/\")) {\n+                    modifiedRole = capitalize(roleLower.split(\"/\")[1]);\n+                    break;\n+                } else {\n+                    modifiedRole = capitalize(roleLower);\n+                    break;\n+                }\n+        }\n+        return modifiedRole;\n+    };\n+\n+    var capitalize = function(role) {\n+        return role.substr(0, 1).toUpperCase() + role.substr(1);\n+    };\n+\n+    var addOptionsToSelect2 = function (role) {\n+        if ($(SELECT_CONTAINER + \" option[value='\" + role + \"']\").length <= 0) {\n+            $(SELECT_CONTAINER).append(\"<option value='\" + role + \"'>\" + renderRoles(role) + \"</option>\");\n+        }\n+    };\n+\n+    var initAddPermissionLogic = function () {\n+        var fromAssetId = store.publisher.assetId;\n+        var pathWithVersion = $(\"#pathWithVersion\").val();\n+        var data = {};\n+        var assetType = store.publisher.type;\n+        $(\"#addPermission\").on(\"click\", function () {\n+            var roleToAuthorize = $(SELECT_CONTAINER).val();\n+            var formattedRoleName = $(SELECT_CONTAINER+\" option:selected\").text();\n+            if (roleToAuthorize != \"0\") {\n+                data.assetId = fromAssetId;\n+                data.assetType = assetType;\n+                data.actionToAuthorize = \"2\";\n+                data.roleToAuthorize = roleToAuthorize;\n+                data.pathWithVersion = pathWithVersion;\n+                data.permissionType = \"1\";\n+                data.permissionCheck = \"other\";\n+                if(!isRoleAuthorized(roleToAuthorize)){\n+                    $(\"#new-version-loading-add\").removeClass(\"hide\");\n+                    invokePermissionAPI(data, formattedRoleName);\n+                    $(SELECT_CONTAINER + \" option[value='\" + roleToAuthorize + \"']\").remove();\n+                    renderSelect2();\n+                } else {\n+                    messages.alertError(\"Unable to share resource to role. \" +\n+                        \"The role has authorize permission to this resource\");\n+                }\n+            } else {\n+                messages.alertError(\"Please select a role to add\");\n+            }\n+        });\n+    };\n+\n+    var initUpdatePermissionLogic = function (role) {\n+        var data = {};\n+        var fromAssetId = store.publisher.assetId;\n+        var pathWithVersion = $(\"#pathWithVersion\").val();\n+        var internalId = \"#public-internal\";\n+        var roleName;\n+        data.assetType = store.publisher.type;\n+        data.assetId = fromAssetId;\n+        data.pathWithVersion = pathWithVersion;\n+        if ($(internalId).prop(\"checked\") || $(\"#public-everyone\").prop(\"checked\")) {\n+            data.actionToAuthorize = \"2\";\n+            data.permissionType = \"1\";\n+            if ($(internalId).prop(\"checked\")) {\n+                data.roleToAuthorize = \"internal/everyone\";\n+                data.roleToDeny = \"system/wso2.anonymous.role\";\n+                data.permissionTypeDeny = \"2\";\n+                data.permissionCheck = \"internal\";\n+                roleName = \"All tenant users\";\n+            } else {\n+                data.roleToAuthorize = \"system/wso2.anonymous.role\";\n+                data.roleToDeny = \"\";\n+                data.permissionCheck = \"public\";\n+                roleName = \"Public\";\n+            }\n+            if(!isRoleAuthorized(data.roleToAuthorize)){\n+                $(\"#new-version-loading-save\").removeClass(\"hide\");\n+                invokePermissionAPI(data, roleName);\n+                setTimeout(function () {\n+                    initSelect2Roles();\n+                    if ($(\"#public-internal\").prop(\"checked\")) {\n+                        addOptionsToSelect2(data.roleToDeny);\n+                        renderSelect2();\n+                    }\n+                }, 500);\n+            } else {\n+                messages.alertError(\"Unable to share resource to role. \" +\n+                    \"The role has authorize permission to this resource\");\n+            }\n+        } else {\n+            if ($(\".wr-permission\").text() == \"No permissions to show\") {\n+                messages.alertError(\"No permissions to share resource\");\n+            } else {\n+                data.permissionObject = buildPermissionArray();\n+                data.permissionCheck = \"other\";\n+                $(\"#new-version-loading-save\").removeClass(\"hide\");\n+                invokeUpdatePermissionAPI(data, role);\n+            }\n+        }\n+    };\n+\n+    var initDivPermissionLogic = function () {\n+        var REMOVE_PERMISSION_BUTTON_ID = \".wr-permission-operations [data-operation=delete]\";\n+        var data = {};\n+        setTimeout(function () {\n+            $(REMOVE_PERMISSION_BUTTON_ID).on(\"click\", function () {\n+                var roleToRemove = $(this).data(\"role-name\");\n+                var formattedRoleName = $(this).data(\"formatted-name\");\n+                var fromAssetId = store.publisher.assetId;\n+                var pathWithVersion = $(\"#pathWithVersion\").val();\n+                var assetType = store.publisher.type;\n+                data.assetId = fromAssetId;\n+                data.assetType = assetType;\n+                data.pathWithVersion = pathWithVersion;\n+                data.roleToRemove = roleToRemove;\n+                $(this).attr(\"disabled\", \"disabled\");\n+                invokeRemovePermissionAPI(data, formattedRoleName);\n+                addOptionsToSelect2(roleToRemove);\n+                renderSelect2();\n+            });\n+\n+            $(\"select[name='roleActionToAuthorize']\").change(function () {\n+                var roleName = $(this).data(\"formatted-name\");\n+                initUpdatePermissionLogic(roleName);\n+            });\n+\n+        }, 1000);\n+    };\n+\n+    var initSelect2Roles = function () {\n+        var rolesDivId = \"#div-roles\";\n+        $(rolesDivId +\" > div\").each(function () {\n+            var roleName = $(\"input[id=roleName]\", this).attr(\"value\");\n+            $(SELECT_CONTAINER + \" option[value='\" + roleName + \"']\").remove();","path":"modules/extensions/main/process-center/extensions/app/greg-permissions/themes/default/js/permission-api.js","position":328,"original_position":328,"commit_id":"96aff5c7767ab1ee63d3e1776870ebb8a4c4b9cc","original_commit_id":"96aff5c7767ab1ee63d3e1776870ebb8a4c4b9cc","user":{"login":"isurusuranga","id":1329800,"avatar_url":"https://avatars.githubusercontent.com/u/1329800?v=3","gravatar_id":"","url":"https://api.github.com/users/isurusuranga","html_url":"https://github.com/isurusuranga","followers_url":"https://api.github.com/users/isurusuranga/followers","following_url":"https://api.github.com/users/isurusuranga/following{/other_user}","gists_url":"https://api.github.com/users/isurusuranga/gists{/gist_id}","starred_url":"https://api.github.com/users/isurusuranga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/isurusuranga/subscriptions","organizations_url":"https://api.github.com/users/isurusuranga/orgs","repos_url":"https://api.github.com/users/isurusuranga/repos","events_url":"https://api.github.com/users/isurusuranga/events{/privacy}","received_events_url":"https://api.github.com/users/isurusuranga/received_events","type":"User","site_admin":false},"body":"Code formating issue","created_at":"2016-09-07T09:56:22Z","updated_at":"2016-09-07T09:56:22Z","html_url":"https://github.com/wso2/product-pc/pull/109#discussion_r77793082","pull_request_url":"https://api.github.com/repos/wso2/product-pc/pulls/109","_links":{"self":{"href":"https://api.github.com/repos/wso2/product-pc/pulls/comments/77793082"},"html":{"href":"https://github.com/wso2/product-pc/pull/109#discussion_r77793082"},"pull_request":{"href":"https://api.github.com/repos/wso2/product-pc/pulls/109"}}},"pull_request":{"url":"https://api.github.com/repos/wso2/product-pc/pulls/109","id":72653930,"html_url":"https://github.com/wso2/product-pc/pull/109","diff_url":"https://github.com/wso2/product-pc/pull/109.diff","patch_url":"https://github.com/wso2/product-pc/pull/109.patch","issue_url":"https://api.github.com/repos/wso2/product-pc/issues/109","number":109,"state":"closed","locked":false,"title":"Process level permission support","user":{"login":"dewmini","id":5234594,"avatar_url":"https://avatars.githubusercontent.com/u/5234594?v=3","gravatar_id":"","url":"https://api.github.com/users/dewmini","html_url":"https://github.com/dewmini","followers_url":"https://api.github.com/users/dewmini/followers","following_url":"https://api.github.com/users/dewmini/following{/other_user}","gists_url":"https://api.github.com/users/dewmini/gists{/gist_id}","starred_url":"https://api.github.com/users/dewmini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dewmini/subscriptions","organizations_url":"https://api.github.com/users/dewmini/orgs","repos_url":"https://api.github.com/users/dewmini/repos","events_url":"https://api.github.com/users/dewmini/events{/privacy}","received_events_url":"https://api.github.com/users/dewmini/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-06-06T04:01:34Z","updated_at":"2016-09-07T09:56:22Z","closed_at":"2016-06-07T09:08:54Z","merged_at":"2016-06-07T09:08:54Z","merge_commit_sha":"96aff5c7767ab1ee63d3e1776870ebb8a4c4b9cc","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/wso2/product-pc/pulls/109/commits","review_comments_url":"https://api.github.com/repos/wso2/product-pc/pulls/109/comments","review_comment_url":"https://api.github.com/repos/wso2/product-pc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/wso2/product-pc/issues/109/comments","statuses_url":"https://api.github.com/repos/wso2/product-pc/statuses/96aff5c7767ab1ee63d3e1776870ebb8a4c4b9cc","head":{"label":"dewmini:master","ref":"master","sha":"96aff5c7767ab1ee63d3e1776870ebb8a4c4b9cc","user":{"login":"dewmini","id":5234594,"avatar_url":"https://avatars.githubusercontent.com/u/5234594?v=3","gravatar_id":"","url":"https://api.github.com/users/dewmini","html_url":"https://github.com/dewmini","followers_url":"https://api.github.com/users/dewmini/followers","following_url":"https://api.github.com/users/dewmini/following{/other_user}","gists_url":"https://api.github.com/users/dewmini/gists{/gist_id}","starred_url":"https://api.github.com/users/dewmini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dewmini/subscriptions","organizations_url":"https://api.github.com/users/dewmini/orgs","repos_url":"https://api.github.com/users/dewmini/repos","events_url":"https://api.github.com/users/dewmini/events{/privacy}","received_events_url":"https://api.github.com/users/dewmini/received_events","type":"User","site_admin":false},"repo":{"id":60332675,"name":"product-pc","full_name":"dewmini/product-pc","owner":{"login":"dewmini","id":5234594,"avatar_url":"https://avatars.githubusercontent.com/u/5234594?v=3","gravatar_id":"","url":"https://api.github.com/users/dewmini","html_url":"https://github.com/dewmini","followers_url":"https://api.github.com/users/dewmini/followers","following_url":"https://api.github.com/users/dewmini/following{/other_user}","gists_url":"https://api.github.com/users/dewmini/gists{/gist_id}","starred_url":"https://api.github.com/users/dewmini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dewmini/subscriptions","organizations_url":"https://api.github.com/users/dewmini/orgs","repos_url":"https://api.github.com/users/dewmini/repos","events_url":"https://api.github.com/users/dewmini/events{/privacy}","received_events_url":"https://api.github.com/users/dewmini/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dewmini/product-pc","description":"","fork":true,"url":"https://api.github.com/repos/dewmini/product-pc","forks_url":"https://api.github.com/repos/dewmini/product-pc/forks","keys_url":"https://api.github.com/repos/dewmini/product-pc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dewmini/product-pc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dewmini/product-pc/teams","hooks_url":"https://api.github.com/repos/dewmini/product-pc/hooks","issue_events_url":"https://api.github.com/repos/dewmini/product-pc/issues/events{/number}","events_url":"https://api.github.com/repos/dewmini/product-pc/events","assignees_url":"https://api.github.com/repos/dewmini/product-pc/assignees{/user}","branches_url":"https://api.github.com/repos/dewmini/product-pc/branches{/branch}","tags_url":"https://api.github.com/repos/dewmini/product-pc/tags","blobs_url":"https://api.github.com/repos/dewmini/product-pc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dewmini/product-pc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dewmini/product-pc/git/refs{/sha}","trees_url":"https://api.github.com/repos/dewmini/product-pc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dewmini/product-pc/statuses/{sha}","languages_url":"https://api.github.com/repos/dewmini/product-pc/languages","stargazers_url":"https://api.github.com/repos/dewmini/product-pc/stargazers","contributors_url":"https://api.github.com/repos/dewmini/product-pc/contributors","subscribers_url":"https://api.github.com/repos/dewmini/product-pc/subscribers","subscription_url":"https://api.github.com/repos/dewmini/product-pc/subscription","commits_url":"https://api.github.com/repos/dewmini/product-pc/commits{/sha}","git_commits_url":"https://api.github.com/repos/dewmini/product-pc/git/commits{/sha}","comments_url":"https://api.github.com/repos/dewmini/product-pc/comments{/number}","issue_comment_url":"https://api.github.com/repos/dewmini/product-pc/issues/comments{/number}","contents_url":"https://api.github.com/repos/dewmini/product-pc/contents/{+path}","compare_url":"https://api.github.com/repos/dewmini/product-pc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dewmini/product-pc/merges","archive_url":"https://api.github.com/repos/dewmini/product-pc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dewmini/product-pc/downloads","issues_url":"https://api.github.com/repos/dewmini/product-pc/issues{/number}","pulls_url":"https://api.github.com/repos/dewmini/product-pc/pulls{/number}","milestones_url":"https://api.github.com/repos/dewmini/product-pc/milestones{/number}","notifications_url":"https://api.github.com/repos/dewmini/product-pc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dewmini/product-pc/labels{/name}","releases_url":"https://api.github.com/repos/dewmini/product-pc/releases{/id}","deployments_url":"https://api.github.com/repos/dewmini/product-pc/deployments","created_at":"2016-06-03T08:43:30Z","updated_at":"2016-06-03T08:43:34Z","pushed_at":"2016-09-06T05:57:30Z","git_url":"git://github.com/dewmini/product-pc.git","ssh_url":"git@github.com:dewmini/product-pc.git","clone_url":"https://github.com/dewmini/product-pc.git","svn_url":"https://github.com/dewmini/product-pc","homepage":null,"size":21599,"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":"wso2:master","ref":"master","sha":"9bea7c15fd3af49968dbe8c0226b218866407395","user":{"login":"wso2","id":533043,"avatar_url":"https://avatars.githubusercontent.com/u/533043?v=3","gravatar_id":"","url":"https://api.github.com/users/wso2","html_url":"https://github.com/wso2","followers_url":"https://api.github.com/users/wso2/followers","following_url":"https://api.github.com/users/wso2/following{/other_user}","gists_url":"https://api.github.com/users/wso2/gists{/gist_id}","starred_url":"https://api.github.com/users/wso2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wso2/subscriptions","organizations_url":"https://api.github.com/users/wso2/orgs","repos_url":"https://api.github.com/users/wso2/repos","events_url":"https://api.github.com/users/wso2/events{/privacy}","received_events_url":"https://api.github.com/users/wso2/received_events","type":"Organization","site_admin":false},"repo":{"id":25909621,"name":"product-pc","full_name":"wso2/product-pc","owner":{"login":"wso2","id":533043,"avatar_url":"https://avatars.githubusercontent.com/u/533043?v=3","gravatar_id":"","url":"https://api.github.com/users/wso2","html_url":"https://github.com/wso2","followers_url":"https://api.github.com/users/wso2/followers","following_url":"https://api.github.com/users/wso2/following{/other_user}","gists_url":"https://api.github.com/users/wso2/gists{/gist_id}","starred_url":"https://api.github.com/users/wso2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wso2/subscriptions","organizations_url":"https://api.github.com/users/wso2/orgs","repos_url":"https://api.github.com/users/wso2/repos","events_url":"https://api.github.com/users/wso2/events{/privacy}","received_events_url":"https://api.github.com/users/wso2/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/wso2/product-pc","description":"Welcome to the WSO2 Process Center source code! For info on working with the WSO2 Process Center repository and contributing code, click the link below.","fork":false,"url":"https://api.github.com/repos/wso2/product-pc","forks_url":"https://api.github.com/repos/wso2/product-pc/forks","keys_url":"https://api.github.com/repos/wso2/product-pc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wso2/product-pc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wso2/product-pc/teams","hooks_url":"https://api.github.com/repos/wso2/product-pc/hooks","issue_events_url":"https://api.github.com/repos/wso2/product-pc/issues/events{/number}","events_url":"https://api.github.com/repos/wso2/product-pc/events","assignees_url":"https://api.github.com/repos/wso2/product-pc/assignees{/user}","branches_url":"https://api.github.com/repos/wso2/product-pc/branches{/branch}","tags_url":"https://api.github.com/repos/wso2/product-pc/tags","blobs_url":"https://api.github.com/repos/wso2/product-pc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wso2/product-pc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wso2/product-pc/git/refs{/sha}","trees_url":"https://api.github.com/repos/wso2/product-pc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wso2/product-pc/statuses/{sha}","languages_url":"https://api.github.com/repos/wso2/product-pc/languages","stargazers_url":"https://api.github.com/repos/wso2/product-pc/stargazers","contributors_url":"https://api.github.com/repos/wso2/product-pc/contributors","subscribers_url":"https://api.github.com/repos/wso2/product-pc/subscribers","subscription_url":"https://api.github.com/repos/wso2/product-pc/subscription","commits_url":"https://api.github.com/repos/wso2/product-pc/commits{/sha}","git_commits_url":"https://api.github.com/repos/wso2/product-pc/git/commits{/sha}","comments_url":"https://api.github.com/repos/wso2/product-pc/comments{/number}","issue_comment_url":"https://api.github.com/repos/wso2/product-pc/issues/comments{/number}","contents_url":"https://api.github.com/repos/wso2/product-pc/contents/{+path}","compare_url":"https://api.github.com/repos/wso2/product-pc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wso2/product-pc/merges","archive_url":"https://api.github.com/repos/wso2/product-pc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wso2/product-pc/downloads","issues_url":"https://api.github.com/repos/wso2/product-pc/issues{/number}","pulls_url":"https://api.github.com/repos/wso2/product-pc/pulls{/number}","milestones_url":"https://api.github.com/repos/wso2/product-pc/milestones{/number}","notifications_url":"https://api.github.com/repos/wso2/product-pc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wso2/product-pc/labels{/name}","releases_url":"https://api.github.com/repos/wso2/product-pc/releases{/id}","deployments_url":"https://api.github.com/repos/wso2/product-pc/deployments","created_at":"2014-10-29T07:33:38Z","updated_at":"2016-08-02T08:28:42Z","pushed_at":"2016-09-07T08:30:14Z","git_url":"git://github.com/wso2/product-pc.git","ssh_url":"git@github.com:wso2/product-pc.git","clone_url":"https://github.com/wso2/product-pc.git","svn_url":"https://github.com/wso2/product-pc","homepage":"http://wso2.github.io/","size":21674,"stargazers_count":4,"watchers_count":4,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":19,"mirror_url":null,"open_issues_count":1,"forks":19,"open_issues":1,"watchers":4,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/wso2/product-pc/pulls/109"},"html":{"href":"https://github.com/wso2/product-pc/pull/109"},"issue":{"href":"https://api.github.com/repos/wso2/product-pc/issues/109"},"comments":{"href":"https://api.github.com/repos/wso2/product-pc/issues/109/comments"},"review_comments":{"href":"https://api.github.com/repos/wso2/product-pc/pulls/109/comments"},"review_comment":{"href":"https://api.github.com/repos/wso2/product-pc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/wso2/product-pc/pulls/109/commits"},"statuses":{"href":"https://api.github.com/repos/wso2/product-pc/statuses/96aff5c7767ab1ee63d3e1776870ebb8a4c4b9cc"}}}}
{"actor":{"display_login":"isurusuranga"}}