{"action":"created","comment":{"url":"https://api.github.com/repos/wso2/carbon-appmgt/pulls/comments/57708944","id":57708944,"diff_hunk":"@@ -0,0 +1,211 @@\n+/*\n+ *  Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n+ *\n+ *  Licensed under the Apache License, Version 2.0 (the \"License\");\n+ *  you may not use this file except 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, software\n+ *  distributed under the License is distributed on an \"AS IS\" BASIS,\n+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ *  See the License for the specific language governing permissions and\n+ *  limitations under the License.\n+ */\n+package org.wso2.carbon.appmgt.internalconnector.mdm.wso2mdm;\n+\n+import org.apache.commons.logging.Log;\n+import org.apache.commons.logging.LogFactory;\n+import org.wso2.carbon.appmgt.internalconnector.mdm.wso2mdm.mdmmgt.beans.MobileApp;\n+import org.wso2.carbon.appmgt.internalconnector.mdm.wso2mdm.mdmmgt.beans.MobileAppTypes;\n+import org.wso2.carbon.appmgt.internalconnector.mdm.wso2mdm.mdmmgt.common.MDMException;\n+import org.wso2.carbon.appmgt.internalconnector.mdm.wso2mdm.mdmmgt.util.MDMAndroidOperationUtil;\n+import org.wso2.carbon.appmgt.internalconnector.mdm.wso2mdm.mdmmgt.util.MDMIOSOperationUtil;\n+import org.wso2.carbon.appmgt.internalconnector.mdm.wso2mdm.mdmmgt.util.MDMServiceAPIUtils;\n+import org.wso2.carbon.appmgt.mobile.interfaces.MDMOperations;\n+import org.wso2.carbon.appmgt.mobile.mdm.App;\n+import org.wso2.carbon.appmgt.mobile.mdm.Device;\n+import org.wso2.carbon.appmgt.mobile.utils.User;\n+import org.wso2.carbon.device.mgt.common.DeviceIdentifier;\n+import org.wso2.carbon.device.mgt.common.DeviceManagementException;\n+import org.wso2.carbon.device.mgt.common.Platform;\n+import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;\n+\n+import java.util.ArrayList;\n+import java.util.HashMap;\n+import java.util.List;\n+import java.util.Properties;\n+\n+public class MDMOperationsImpl implements MDMOperations {\n+\n+\tprivate static final Log log = LogFactory.getLog(MDMOperationsImpl.class);\n+\n+\t/**\n+\t * @param action   action of the operation. Eg. install, uninstall, update\n+\t * @param app      application object\n+\t * @param tenantId tenantId\n+\t * @param type     type of the resource. Eg: role, user, device\n+\t * @param params   ids of the resources which belong to type\n+\t */\n+\n+\tpublic void performAction(User currentUser, String action, App app, int tenantId, String type,\n+\t                          String[] params, HashMap<String, String> configProperties) {\n+\n+\t\torg.wso2.carbon.device.mgt.common.operation.mgt.Operation operation = null;\n+\t\tList<DeviceIdentifier> deviceIdentifiers = new ArrayList<>();\n+\t\tList<org.wso2.carbon.device.mgt.common.Device> deviceList = null;\n+\t\tif (\"user\".equals(type)) {\n+\t\t\tString userName;\n+\t\t\tfor (String param : params) {\n+\t\t\t\tuserName = param;\n+\t\t\t\ttry {\n+\t\t\t\t\tdeviceList = MDMServiceAPIUtils.getDeviceManagementService(tenantId).\n+\t\t\t\t\t\t\tgetDevicesOfUser(userName);\n+\t\t\t\t} catch (DeviceManagementException devEx) {\n+\t\t\t\t\tString errorMsg = \"Error occurred fetch device for user \" + userName +\n+\t\t\t\t\t                  devEx.getErrorMessage() + \" \" + \"at app installation\";\n+\t\t\t\t\tlog.error(errorMsg, devEx);\n+\t\t\t\t}\n+\t\t\t\tfor (org.wso2.carbon.device.mgt.common.Device device : deviceList) {\n+\t\t\t\t\tdeviceIdentifiers.add(getDeviceIdentifierByDevice(device));\n+\t\t\t\t}\n+\t\t\t}\n+\t\t} else if (\"role\".equals(type)) {\n+\t\t\tString userRole;\n+\t\t\tfor (String param : params) {\n+\t\t\t\tuserRole = param;\n+\t\t\t\ttry {\n+\t\t\t\t\tdeviceList = MDMServiceAPIUtils.getDeviceManagementService(tenantId).\n+\t\t\t\t\t\t\tgetAllDevices();\n+\t\t\t\t} catch (DeviceManagementException devMgtEx) {\n+\t\t\t\t\tString errorMsg = \"Error occurred fetch device for user role \" + userRole +\n+\t\t\t\t\t                  devMgtEx.getErrorMessage() + \" \" +\n+\t\t\t\t\t                  \"at app installation\";\n+\t\t\t\t\tlog.error(errorMsg, devMgtEx);\n+\t\t\t\t}\n+\t\t\t\tfor (org.wso2.carbon.device.mgt.common.Device device : deviceList) {\n+\t\t\t\t\tdeviceIdentifiers.add(getDeviceIdentifierByDevice(device));\n+\t\t\t\t}\n+\t\t\t}\n+\t\t} else {\n+\t\t\tdeviceIdentifiers = new ArrayList<>();\n+\t\t\tDeviceIdentifier deviceIdentifier;\n+\t\t\tfor (String param : params) {\n+\t\t\t\tdeviceIdentifier = new DeviceIdentifier();\n+\t\t\t\tString[] paramDevices = param.split(\"---\");\n+\t\t\t\tdeviceIdentifier.setId(paramDevices[0]);\n+\t\t\t\tdeviceIdentifier.setType(paramDevices[1]);\n+\t\t\t\tdeviceIdentifiers.add(deviceIdentifier);\n+\t\t\t}\n+\t\t}\n+\t\tMobileApp mobileApp = new MobileApp();\n+\t\tmobileApp.setId(app.getId());\n+\t\tmobileApp.setType(MobileAppTypes.valueOf(app.getType().toUpperCase()));\n+\t\tmobileApp.setAppIdentifier(app.getAppIdentifier());\n+\t\tmobileApp.setIconImage(app.getIconImage());\n+\t\tmobileApp.setIdentifier(app.getIdentifier());\n+\t\tmobileApp.setLocation(app.getLocation());\n+\t\tmobileApp.setName(app.getName());\n+\t\tmobileApp.setPackageName(app.getPackageName());\n+\t\tmobileApp.setPlatform(app.getPlatform());\n+\t\tmobileApp.setVersion(app.getVersion());\n+\t\tProperties properties = new Properties();\n+\n+\t\tif (\"ios\".equals(app.getPlatform())) {\n+\t\t\tif (\"enterprise\".equals(app.getType())) {\n+\t\t\t\tproperties.put(\"isRemoveApp\", true);\n+\t\t\t\tproperties.put(\"isPreventBackup\", true);\n+\t\t\t} else if (\"public\".equals(app.getType())) {\n+\t\t\t\tproperties.put(\"iTunesId\", Integer.parseInt(app.getIdentifier()));\n+\t\t\t\tproperties.put(\"isRemoveApp\", true);\n+\t\t\t\tproperties.put(\"isPreventBackup\", true);\n+\t\t\t} else if (\"webapp\".equals(app.getType())) {\n+\t\t\t\tproperties.put(\"label\", app.getName());\n+\t\t\t\tproperties.put(\"isRemoveApp\", true);\n+\t\t\t}\n+\t\t} else if (\"webapp\".equals(app.getPlatform())) {\n+\t\t\tproperties.put(\"label\", app.getName());\n+\t\t\tproperties.put(\"isRemoveApp\", true);\n+\t\t}\n+\t\tmobileApp.setProperties(properties);\n+\t\ttry {\n+\t\t\tfor (DeviceIdentifier deviceIdentifier : deviceIdentifiers) {\n+\t\t\t\tif (deviceIdentifier.getType().equals(Platform.android.toString())) {\n+\t\t\t\t\tif (\"install\".equals(action)) {\n+\t\t\t\t\t\toperation = MDMAndroidOperationUtil.createInstallAppOperation(mobileApp);\n+\t\t\t\t\t} else {\n+\t\t\t\t\t\toperation = MDMAndroidOperationUtil.createAppUninstallOperation(mobileApp);\n+\t\t\t\t\t}\n+\t\t\t\t} else if (deviceIdentifier.getType().equals(Platform.ios.toString())) {\n+\t\t\t\t\tif (\"install\".equals(action)) {\n+\t\t\t\t\t\toperation = MDMIOSOperationUtil.createInstallAppOperation(mobileApp);\n+\t\t\t\t\t} else {\n+\t\t\t\t\t\toperation = MDMIOSOperationUtil.createAppUninstallOperation(mobileApp);\n+\t\t\t\t\t}\n+\t\t\t\t}\n+\t\t\t\tMDMServiceAPIUtils.getAppManagementService(tenantId).\n+\t\t\t\t\t\tinstallApplicationForDevices(operation, deviceIdentifiers);\n+\t\t\t}\n+\t\t} catch (MDMException mdmExce) {\n+\t\t\tlog.error(\"Error in creating operation object using app\", mdmExce);\n+\t\t} catch (ApplicationManagementException appMgtExce) {\n+\t\t\tlog.error(\"Error in app installation\", appMgtExce);\n+\t\t}\n+\n+\t}\n+\n+\tprivate static DeviceIdentifier getDeviceIdentifierByDevice(\n+\t\t\torg.wso2.carbon.device.mgt.common.Device device) {\n+\t\tDeviceIdentifier deviceIdentifier = new DeviceIdentifier();\n+\t\tdeviceIdentifier.setId(device.getDeviceIdentifier());\n+\t\tdeviceIdentifier.setType(device.getType());\n+\n+\t\treturn deviceIdentifier;\n+\t}\n+\n+\t/**\n+\t * @param tenantId               tenantId\n+\t * @param type                   type of the resource. Eg: role, user, device\n+\t * @param params                 ids of the resources which belong to type\n+\t * @param platform               platform of the devices\n+\t * @param platformVersion        platform version of the devices\n+\t * @param isSampleDevicesEnabled if MDM is not connected, enable this to display sample devices.\n+\t * @return list of Devices\n+\t */\n+\n+\tpublic List<Device> getDevices(User currentUser, int tenantId, String type, String[] params,\n+\t                               String platform, String platformVersion,\n+\t                               boolean isSampleDevicesEnabled,\n+\t                               HashMap<String, String> configProperties) {\n+\n+\t\tList<Device> devices = null;\n+\t\tDevice device;","path":"components/org.wso2.carbon.appmgt.internalconnector.mdm.wso2mdm/src/main/java/org/wso2/carbon/appmgt/internalconnector/mdm/wso2mdm/MDMOperationsImpl.java","position":null,"original_position":183,"commit_id":"706de8c331fd9816537ead59d289dde79c347d70","original_commit_id":"1740b3359bfc47297200b4da9311e5c084f7bd3a","user":{"login":"laki88","id":1938964,"avatar_url":"https://avatars.githubusercontent.com/u/1938964?v=3","gravatar_id":"","url":"https://api.github.com/users/laki88","html_url":"https://github.com/laki88","followers_url":"https://api.github.com/users/laki88/followers","following_url":"https://api.github.com/users/laki88/following{/other_user}","gists_url":"https://api.github.com/users/laki88/gists{/gist_id}","starred_url":"https://api.github.com/users/laki88/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laki88/subscriptions","organizations_url":"https://api.github.com/users/laki88/orgs","repos_url":"https://api.github.com/users/laki88/repos","events_url":"https://api.github.com/users/laki88/events{/privacy}","received_events_url":"https://api.github.com/users/laki88/received_events","type":"User","site_admin":false},"body":"fixed in f0c8f47b99b00f968298944aaa06f9d4bdb87000","created_at":"2016-03-29T11:38:11Z","updated_at":"2016-03-29T11:38:11Z","html_url":"https://github.com/wso2/carbon-appmgt/pull/250#discussion_r57708944","pull_request_url":"https://api.github.com/repos/wso2/carbon-appmgt/pulls/250","_links":{"self":{"href":"https://api.github.com/repos/wso2/carbon-appmgt/pulls/comments/57708944"},"html":{"href":"https://github.com/wso2/carbon-appmgt/pull/250#discussion_r57708944"},"pull_request":{"href":"https://api.github.com/repos/wso2/carbon-appmgt/pulls/250"}}},"pull_request":{"url":"https://api.github.com/repos/wso2/carbon-appmgt/pulls/250","id":64291798,"html_url":"https://github.com/wso2/carbon-appmgt/pull/250","diff_url":"https://github.com/wso2/carbon-appmgt/pull/250.diff","patch_url":"https://github.com/wso2/carbon-appmgt/pull/250.patch","issue_url":"https://api.github.com/repos/wso2/carbon-appmgt/issues/250","number":250,"state":"open","locked":false,"title":"added mdm internal connector and added support for integration with mdm","user":{"login":"laki88","id":1938964,"avatar_url":"https://avatars.githubusercontent.com/u/1938964?v=3","gravatar_id":"","url":"https://api.github.com/users/laki88","html_url":"https://github.com/laki88","followers_url":"https://api.github.com/users/laki88/followers","following_url":"https://api.github.com/users/laki88/following{/other_user}","gists_url":"https://api.github.com/users/laki88/gists{/gist_id}","starred_url":"https://api.github.com/users/laki88/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laki88/subscriptions","organizations_url":"https://api.github.com/users/laki88/orgs","repos_url":"https://api.github.com/users/laki88/repos","events_url":"https://api.github.com/users/laki88/events{/privacy}","received_events_url":"https://api.github.com/users/laki88/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-03-28T05:54:15Z","updated_at":"2016-03-29T11:38:11Z","closed_at":null,"merged_at":null,"merge_commit_sha":"19cc7e495f90e9f1ceb210a31ddd57f6d9da0e70","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/wso2/carbon-appmgt/pulls/250/commits","review_comments_url":"https://api.github.com/repos/wso2/carbon-appmgt/pulls/250/comments","review_comment_url":"https://api.github.com/repos/wso2/carbon-appmgt/pulls/comments{/number}","comments_url":"https://api.github.com/repos/wso2/carbon-appmgt/issues/250/comments","statuses_url":"https://api.github.com/repos/wso2/carbon-appmgt/statuses/706de8c331fd9816537ead59d289dde79c347d70","head":{"label":"laki88:master","ref":"master","sha":"706de8c331fd9816537ead59d289dde79c347d70","user":{"login":"laki88","id":1938964,"avatar_url":"https://avatars.githubusercontent.com/u/1938964?v=3","gravatar_id":"","url":"https://api.github.com/users/laki88","html_url":"https://github.com/laki88","followers_url":"https://api.github.com/users/laki88/followers","following_url":"https://api.github.com/users/laki88/following{/other_user}","gists_url":"https://api.github.com/users/laki88/gists{/gist_id}","starred_url":"https://api.github.com/users/laki88/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laki88/subscriptions","organizations_url":"https://api.github.com/users/laki88/orgs","repos_url":"https://api.github.com/users/laki88/repos","events_url":"https://api.github.com/users/laki88/events{/privacy}","received_events_url":"https://api.github.com/users/laki88/received_events","type":"User","site_admin":false},"repo":{"id":50919092,"name":"carbon-appmgt","full_name":"laki88/carbon-appmgt","owner":{"login":"laki88","id":1938964,"avatar_url":"https://avatars.githubusercontent.com/u/1938964?v=3","gravatar_id":"","url":"https://api.github.com/users/laki88","html_url":"https://github.com/laki88","followers_url":"https://api.github.com/users/laki88/followers","following_url":"https://api.github.com/users/laki88/following{/other_user}","gists_url":"https://api.github.com/users/laki88/gists{/gist_id}","starred_url":"https://api.github.com/users/laki88/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laki88/subscriptions","organizations_url":"https://api.github.com/users/laki88/orgs","repos_url":"https://api.github.com/users/laki88/repos","events_url":"https://api.github.com/users/laki88/events{/privacy}","received_events_url":"https://api.github.com/users/laki88/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/laki88/carbon-appmgt","description":"","fork":true,"url":"https://api.github.com/repos/laki88/carbon-appmgt","forks_url":"https://api.github.com/repos/laki88/carbon-appmgt/forks","keys_url":"https://api.github.com/repos/laki88/carbon-appmgt/keys{/key_id}","collaborators_url":"https://api.github.com/repos/laki88/carbon-appmgt/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/laki88/carbon-appmgt/teams","hooks_url":"https://api.github.com/repos/laki88/carbon-appmgt/hooks","issue_events_url":"https://api.github.com/repos/laki88/carbon-appmgt/issues/events{/number}","events_url":"https://api.github.com/repos/laki88/carbon-appmgt/events","assignees_url":"https://api.github.com/repos/laki88/carbon-appmgt/assignees{/user}","branches_url":"https://api.github.com/repos/laki88/carbon-appmgt/branches{/branch}","tags_url":"https://api.github.com/repos/laki88/carbon-appmgt/tags","blobs_url":"https://api.github.com/repos/laki88/carbon-appmgt/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/laki88/carbon-appmgt/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/laki88/carbon-appmgt/git/refs{/sha}","trees_url":"https://api.github.com/repos/laki88/carbon-appmgt/git/trees{/sha}","statuses_url":"https://api.github.com/repos/laki88/carbon-appmgt/statuses/{sha}","languages_url":"https://api.github.com/repos/laki88/carbon-appmgt/languages","stargazers_url":"https://api.github.com/repos/laki88/carbon-appmgt/stargazers","contributors_url":"https://api.github.com/repos/laki88/carbon-appmgt/contributors","subscribers_url":"https://api.github.com/repos/laki88/carbon-appmgt/subscribers","subscription_url":"https://api.github.com/repos/laki88/carbon-appmgt/subscription","commits_url":"https://api.github.com/repos/laki88/carbon-appmgt/commits{/sha}","git_commits_url":"https://api.github.com/repos/laki88/carbon-appmgt/git/commits{/sha}","comments_url":"https://api.github.com/repos/laki88/carbon-appmgt/comments{/number}","issue_comment_url":"https://api.github.com/repos/laki88/carbon-appmgt/issues/comments{/number}","contents_url":"https://api.github.com/repos/laki88/carbon-appmgt/contents/{+path}","compare_url":"https://api.github.com/repos/laki88/carbon-appmgt/compare/{base}...{head}","merges_url":"https://api.github.com/repos/laki88/carbon-appmgt/merges","archive_url":"https://api.github.com/repos/laki88/carbon-appmgt/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/laki88/carbon-appmgt/downloads","issues_url":"https://api.github.com/repos/laki88/carbon-appmgt/issues{/number}","pulls_url":"https://api.github.com/repos/laki88/carbon-appmgt/pulls{/number}","milestones_url":"https://api.github.com/repos/laki88/carbon-appmgt/milestones{/number}","notifications_url":"https://api.github.com/repos/laki88/carbon-appmgt/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/laki88/carbon-appmgt/labels{/name}","releases_url":"https://api.github.com/repos/laki88/carbon-appmgt/releases{/id}","deployments_url":"https://api.github.com/repos/laki88/carbon-appmgt/deployments","created_at":"2016-02-02T12:29:19Z","updated_at":"2016-02-02T12:29:26Z","pushed_at":"2016-03-29T11:33:34Z","git_url":"git://github.com/laki88/carbon-appmgt.git","ssh_url":"git@github.com:laki88/carbon-appmgt.git","clone_url":"https://github.com/laki88/carbon-appmgt.git","svn_url":"https://github.com/laki88/carbon-appmgt","homepage":null,"size":26168,"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":"aa52b8b7f7df1f6a87bd1bb0a99d3b252bbce893","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":17201753,"name":"carbon-appmgt","full_name":"wso2/carbon-appmgt","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/carbon-appmgt","description":"","fork":false,"url":"https://api.github.com/repos/wso2/carbon-appmgt","forks_url":"https://api.github.com/repos/wso2/carbon-appmgt/forks","keys_url":"https://api.github.com/repos/wso2/carbon-appmgt/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wso2/carbon-appmgt/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wso2/carbon-appmgt/teams","hooks_url":"https://api.github.com/repos/wso2/carbon-appmgt/hooks","issue_events_url":"https://api.github.com/repos/wso2/carbon-appmgt/issues/events{/number}","events_url":"https://api.github.com/repos/wso2/carbon-appmgt/events","assignees_url":"https://api.github.com/repos/wso2/carbon-appmgt/assignees{/user}","branches_url":"https://api.github.com/repos/wso2/carbon-appmgt/branches{/branch}","tags_url":"https://api.github.com/repos/wso2/carbon-appmgt/tags","blobs_url":"https://api.github.com/repos/wso2/carbon-appmgt/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wso2/carbon-appmgt/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wso2/carbon-appmgt/git/refs{/sha}","trees_url":"https://api.github.com/repos/wso2/carbon-appmgt/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wso2/carbon-appmgt/statuses/{sha}","languages_url":"https://api.github.com/repos/wso2/carbon-appmgt/languages","stargazers_url":"https://api.github.com/repos/wso2/carbon-appmgt/stargazers","contributors_url":"https://api.github.com/repos/wso2/carbon-appmgt/contributors","subscribers_url":"https://api.github.com/repos/wso2/carbon-appmgt/subscribers","subscription_url":"https://api.github.com/repos/wso2/carbon-appmgt/subscription","commits_url":"https://api.github.com/repos/wso2/carbon-appmgt/commits{/sha}","git_commits_url":"https://api.github.com/repos/wso2/carbon-appmgt/git/commits{/sha}","comments_url":"https://api.github.com/repos/wso2/carbon-appmgt/comments{/number}","issue_comment_url":"https://api.github.com/repos/wso2/carbon-appmgt/issues/comments{/number}","contents_url":"https://api.github.com/repos/wso2/carbon-appmgt/contents/{+path}","compare_url":"https://api.github.com/repos/wso2/carbon-appmgt/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wso2/carbon-appmgt/merges","archive_url":"https://api.github.com/repos/wso2/carbon-appmgt/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wso2/carbon-appmgt/downloads","issues_url":"https://api.github.com/repos/wso2/carbon-appmgt/issues{/number}","pulls_url":"https://api.github.com/repos/wso2/carbon-appmgt/pulls{/number}","milestones_url":"https://api.github.com/repos/wso2/carbon-appmgt/milestones{/number}","notifications_url":"https://api.github.com/repos/wso2/carbon-appmgt/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wso2/carbon-appmgt/labels{/name}","releases_url":"https://api.github.com/repos/wso2/carbon-appmgt/releases{/id}","deployments_url":"https://api.github.com/repos/wso2/carbon-appmgt/deployments","created_at":"2014-02-26T06:47:05Z","updated_at":"2016-03-17T04:37:35Z","pushed_at":"2016-03-29T11:33:35Z","git_url":"git://github.com/wso2/carbon-appmgt.git","ssh_url":"git@github.com:wso2/carbon-appmgt.git","clone_url":"https://github.com/wso2/carbon-appmgt.git","svn_url":"https://github.com/wso2/carbon-appmgt","homepage":null,"size":26827,"stargazers_count":4,"watchers_count":4,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":26,"mirror_url":null,"open_issues_count":6,"forks":26,"open_issues":6,"watchers":4,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/wso2/carbon-appmgt/pulls/250"},"html":{"href":"https://github.com/wso2/carbon-appmgt/pull/250"},"issue":{"href":"https://api.github.com/repos/wso2/carbon-appmgt/issues/250"},"comments":{"href":"https://api.github.com/repos/wso2/carbon-appmgt/issues/250/comments"},"review_comments":{"href":"https://api.github.com/repos/wso2/carbon-appmgt/pulls/250/comments"},"review_comment":{"href":"https://api.github.com/repos/wso2/carbon-appmgt/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/wso2/carbon-appmgt/pulls/250/commits"},"statuses":{"href":"https://api.github.com/repos/wso2/carbon-appmgt/statuses/706de8c331fd9816537ead59d289dde79c347d70"}}}}