{"action":"created","comment":{"url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/pulls/comments/211831660","pull_request_review_id":148335239,"id":211831660,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMTgzMTY2MA==","diff_hunk":"@@ -0,0 +1,131 @@\n+/*\n+ *  Copyright (c) 2018, 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.  See the License for the\n+ *  specific language governing permissions and limitations\n+ *  under the License.\n+ */\n+\n+package org.wso2.carbon.identity.conditional.auth.functions.user;\n+\n+import org.apache.commons.lang.StringUtils;\n+import org.apache.commons.logging.Log;\n+import org.apache.commons.logging.LogFactory;\n+import org.wso2.carbon.CarbonException;\n+import org.wso2.carbon.core.util.AnonymousSessionUtil;\n+import org.wso2.carbon.identity.application.authentication.framework.config.model.graph.js.JsAuthenticatedUser;\n+import org.wso2.carbon.identity.application.authentication.framework.exception.FrameworkException;\n+import org.wso2.carbon.identity.conditional.auth.functions.user.internal.UserFunctionsServiceHolder;\n+import org.wso2.carbon.user.core.UserRealm;\n+import org.wso2.carbon.user.core.UserStoreException;\n+import org.wso2.carbon.user.core.UserStoreManager;\n+\n+import java.util.List;\n+\n+/**\n+ * Function to remove given roles from the a given user.\n+ * The purpose is to perform role removing during dynamic authentication.\n+ */\n+public class RemoveUserRolesFunctionImpl implements RemoveUserRolesFunction {\n+\n+    private static final Log LOG = LogFactory.getLog(RemoveUserRolesFunctionImpl.class);\n+\n+    /**\n+     * {@inheritDoc}\n+     *\n+     * @param user          Authenticated user.\n+     * @param removingRoles Roles to be removed.\n+     * @return <code>true</code> If the role assigning is successfully completed. <code>false</code> for any other case.\n+     */\n+    @Override\n+    public boolean removeUserRoles(JsAuthenticatedUser user, List<String> removingRoles) {\n+\n+        if (user != null && removingRoles != null) {\n+            try {\n+                if (user.getWrapped() != null) {\n+                    String tenantDomain = user.getWrapped().getTenantDomain();\n+                    String userStoreDomain = user.getWrapped().getUserStoreDomain();\n+                    String username = user.getWrapped().getUserName();\n+                    UserRealm userRealm = getUserRealm(tenantDomain);\n+                    if (userRealm != null) {\n+                        UserStoreManager userStore = getUserStoreManager(tenantDomain, userRealm, userStoreDomain);\n+                        if (userStore != null) {\n+                            userStore.updateRoleListOfUser(\n+                                    username,\n+                                    removingRoles.toArray(new String[0]),\n+                                    new String[0]\n+                            );\n+                            return true;\n+                        } else {\n+                            LOG.debug(\"Null value user store received for the user \"\n+                                    + user.getMember(\"username\"));\n+                        }\n+                    } else {\n+                        LOG.debug(\"Null value user realm received for the user \"\n+                                + user.getMember(\"username\"));\n+                    }\n+                } else {\n+                    LOG.debug(\"Null value received while getting wrapped content for the user\");\n+                }\n+            } catch (UserStoreException e) {\n+                LOG.error(\"Error in getting user from store at the function \", e);\n+            } catch (FrameworkException e) {\n+                LOG.error(\"Error in evaluating the function \", e);\n+            }\n+        } else {\n+            if (user == null) {\n+                LOG.error(\"Invalid value for the user\");\n+            } else {\n+                LOG.error(\"Invalid value for the new roles\");\n+            }\n+        }\n+        return false;\n+    }\n+\n+    private UserRealm getUserRealm(String tenantDomain) throws FrameworkException {\n+\n+        UserRealm realm;\n+        try {\n+            realm = AnonymousSessionUtil.getRealmByTenantDomain(UserFunctionsServiceHolder.getInstance()\n+                    .getRegistryService(), UserFunctionsServiceHolder.getInstance().getRealmService(), tenantDomain);\n+        } catch (CarbonException e) {\n+            throw new FrameworkException(\n+                    \"Error occurred while retrieving the Realm for \" + tenantDomain + \" to retrieve user roles\", e);\n+        }\n+        return realm;\n+    }\n+\n+    private UserStoreManager getUserStoreManager(String tenantDomain, UserRealm realm, String userDomain)","path":"components/org.wso2.carbon.identity.conditional.auth.functions.user/src/main/java/org/wso2/carbon/identity/conditional/auth/functions/user/RemoveUserRolesFunctionImpl.java","position":108,"original_position":108,"commit_id":"050b513295fe4e3908cb82c6a3bc6158a66c69a2","original_commit_id":"050b513295fe4e3908cb82c6a3bc6158a66c69a2","user":{"login":"denuwanthi","id":1377917,"node_id":"MDQ6VXNlcjEzNzc5MTc=","avatar_url":"https://avatars2.githubusercontent.com/u/1377917?v=4","gravatar_id":"","url":"https://api.github.com/users/denuwanthi","html_url":"https://github.com/denuwanthi","followers_url":"https://api.github.com/users/denuwanthi/followers","following_url":"https://api.github.com/users/denuwanthi/following{/other_user}","gists_url":"https://api.github.com/users/denuwanthi/gists{/gist_id}","starred_url":"https://api.github.com/users/denuwanthi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/denuwanthi/subscriptions","organizations_url":"https://api.github.com/users/denuwanthi/orgs","repos_url":"https://api.github.com/users/denuwanthi/repos","events_url":"https://api.github.com/users/denuwanthi/events{/privacy}","received_events_url":"https://api.github.com/users/denuwanthi/received_events","type":"User","site_admin":false},"body":"This method and method at [1] seems similar. Is it possible to move such methods to a util clas?\r\n\r\n\r\n[1]https://github.com/wso2-extensions/identity-conditional-auth-functions/pull/37/files#diff-8585d6d2c3d8a5529d73d9087ed7218fR108","created_at":"2018-08-22T05:17:51Z","updated_at":"2018-08-22T05:17:52Z","html_url":"https://github.com/wso2-extensions/identity-conditional-auth-functions/pull/37#discussion_r211831660","pull_request_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/pulls/37","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/pulls/comments/211831660"},"html":{"href":"https://github.com/wso2-extensions/identity-conditional-auth-functions/pull/37#discussion_r211831660"},"pull_request":{"href":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/pulls/37"}}},"pull_request":{"url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/pulls/37","id":210019664,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEwMDE5NjY0","html_url":"https://github.com/wso2-extensions/identity-conditional-auth-functions/pull/37","diff_url":"https://github.com/wso2-extensions/identity-conditional-auth-functions/pull/37.diff","patch_url":"https://github.com/wso2-extensions/identity-conditional-auth-functions/pull/37.patch","issue_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/issues/37","number":37,"state":"open","locked":false,"title":"Add functions to assign and remove user roles","user":{"login":"tharindu-bandara","id":22551445,"node_id":"MDQ6VXNlcjIyNTUxNDQ1","avatar_url":"https://avatars2.githubusercontent.com/u/22551445?v=4","gravatar_id":"","url":"https://api.github.com/users/tharindu-bandara","html_url":"https://github.com/tharindu-bandara","followers_url":"https://api.github.com/users/tharindu-bandara/followers","following_url":"https://api.github.com/users/tharindu-bandara/following{/other_user}","gists_url":"https://api.github.com/users/tharindu-bandara/gists{/gist_id}","starred_url":"https://api.github.com/users/tharindu-bandara/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tharindu-bandara/subscriptions","organizations_url":"https://api.github.com/users/tharindu-bandara/orgs","repos_url":"https://api.github.com/users/tharindu-bandara/repos","events_url":"https://api.github.com/users/tharindu-bandara/events{/privacy}","received_events_url":"https://api.github.com/users/tharindu-bandara/received_events","type":"User","site_admin":false},"body":"## Purpose\r\n> Add or remove roles assigned to the user during dynamic authentication.\r\n\r\n## Goals\r\n> Introduce two new custom functions, assignUserRoles() and removeUserRoles().\r\n\r\n## Documentation\r\n> [Adaptive Authentication JS API](https://docs.wso2.com/display/IS570/Adaptive+Authentication+JS+API+Reference).\r\n\r\n## Security checks\r\n - Followed secure coding standards in http://wso2.com/technical-reports/wso2-secure-engineering-guidelines? yes\r\n - Ran FindSecurityBugs plugin and verified report? yes\r\n - Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets? yes","created_at":"2018-08-22T04:53:03Z","updated_at":"2018-08-22T05:17:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a85adf4ec41b2d954b3bfefc7d7dd87ca5d9cd15","assignee":null,"assignees":[],"requested_reviewers":[{"login":"madurangasiriwardena","id":1332991,"node_id":"MDQ6VXNlcjEzMzI5OTE=","avatar_url":"https://avatars3.githubusercontent.com/u/1332991?v=4","gravatar_id":"","url":"https://api.github.com/users/madurangasiriwardena","html_url":"https://github.com/madurangasiriwardena","followers_url":"https://api.github.com/users/madurangasiriwardena/followers","following_url":"https://api.github.com/users/madurangasiriwardena/following{/other_user}","gists_url":"https://api.github.com/users/madurangasiriwardena/gists{/gist_id}","starred_url":"https://api.github.com/users/madurangasiriwardena/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madurangasiriwardena/subscriptions","organizations_url":"https://api.github.com/users/madurangasiriwardena/orgs","repos_url":"https://api.github.com/users/madurangasiriwardena/repos","events_url":"https://api.github.com/users/madurangasiriwardena/events{/privacy}","received_events_url":"https://api.github.com/users/madurangasiriwardena/received_events","type":"User","site_admin":false},{"login":"pulasthi7","id":1415573,"node_id":"MDQ6VXNlcjE0MTU1NzM=","avatar_url":"https://avatars1.githubusercontent.com/u/1415573?v=4","gravatar_id":"","url":"https://api.github.com/users/pulasthi7","html_url":"https://github.com/pulasthi7","followers_url":"https://api.github.com/users/pulasthi7/followers","following_url":"https://api.github.com/users/pulasthi7/following{/other_user}","gists_url":"https://api.github.com/users/pulasthi7/gists{/gist_id}","starred_url":"https://api.github.com/users/pulasthi7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pulasthi7/subscriptions","organizations_url":"https://api.github.com/users/pulasthi7/orgs","repos_url":"https://api.github.com/users/pulasthi7/repos","events_url":"https://api.github.com/users/pulasthi7/events{/privacy}","received_events_url":"https://api.github.com/users/pulasthi7/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/pulls/37/commits","review_comments_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/pulls/37/comments","review_comment_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/pulls/comments{/number}","comments_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/issues/37/comments","statuses_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/statuses/050b513295fe4e3908cb82c6a3bc6158a66c69a2","head":{"label":"tharindu-bandara:master","ref":"master","sha":"050b513295fe4e3908cb82c6a3bc6158a66c69a2","user":{"login":"tharindu-bandara","id":22551445,"node_id":"MDQ6VXNlcjIyNTUxNDQ1","avatar_url":"https://avatars2.githubusercontent.com/u/22551445?v=4","gravatar_id":"","url":"https://api.github.com/users/tharindu-bandara","html_url":"https://github.com/tharindu-bandara","followers_url":"https://api.github.com/users/tharindu-bandara/followers","following_url":"https://api.github.com/users/tharindu-bandara/following{/other_user}","gists_url":"https://api.github.com/users/tharindu-bandara/gists{/gist_id}","starred_url":"https://api.github.com/users/tharindu-bandara/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tharindu-bandara/subscriptions","organizations_url":"https://api.github.com/users/tharindu-bandara/orgs","repos_url":"https://api.github.com/users/tharindu-bandara/repos","events_url":"https://api.github.com/users/tharindu-bandara/events{/privacy}","received_events_url":"https://api.github.com/users/tharindu-bandara/received_events","type":"User","site_admin":false},"repo":{"id":144813343,"node_id":"MDEwOlJlcG9zaXRvcnkxNDQ4MTMzNDM=","name":"identity-conditional-auth-functions","full_name":"tharindu-bandara/identity-conditional-auth-functions","owner":{"login":"tharindu-bandara","id":22551445,"node_id":"MDQ6VXNlcjIyNTUxNDQ1","avatar_url":"https://avatars2.githubusercontent.com/u/22551445?v=4","gravatar_id":"","url":"https://api.github.com/users/tharindu-bandara","html_url":"https://github.com/tharindu-bandara","followers_url":"https://api.github.com/users/tharindu-bandara/followers","following_url":"https://api.github.com/users/tharindu-bandara/following{/other_user}","gists_url":"https://api.github.com/users/tharindu-bandara/gists{/gist_id}","starred_url":"https://api.github.com/users/tharindu-bandara/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tharindu-bandara/subscriptions","organizations_url":"https://api.github.com/users/tharindu-bandara/orgs","repos_url":"https://api.github.com/users/tharindu-bandara/repos","events_url":"https://api.github.com/users/tharindu-bandara/events{/privacy}","received_events_url":"https://api.github.com/users/tharindu-bandara/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tharindu-bandara/identity-conditional-auth-functions","description":null,"fork":true,"url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions","forks_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/forks","keys_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/teams","hooks_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/hooks","issue_events_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/issues/events{/number}","events_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/events","assignees_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/assignees{/user}","branches_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/branches{/branch}","tags_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/tags","blobs_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/git/refs{/sha}","trees_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/statuses/{sha}","languages_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/languages","stargazers_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/stargazers","contributors_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/contributors","subscribers_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/subscribers","subscription_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/subscription","commits_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/commits{/sha}","git_commits_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/git/commits{/sha}","comments_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/comments{/number}","issue_comment_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/issues/comments{/number}","contents_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/contents/{+path}","compare_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/merges","archive_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/downloads","issues_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/issues{/number}","pulls_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/pulls{/number}","milestones_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/milestones{/number}","notifications_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/labels{/name}","releases_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/releases{/id}","deployments_url":"https://api.github.com/repos/tharindu-bandara/identity-conditional-auth-functions/deployments","created_at":"2018-08-15T06:16:15Z","updated_at":"2018-08-22T04:45:54Z","pushed_at":"2018-08-22T04:45:52Z","git_url":"git://github.com/tharindu-bandara/identity-conditional-auth-functions.git","ssh_url":"git@github.com:tharindu-bandara/identity-conditional-auth-functions.git","clone_url":"https://github.com/tharindu-bandara/identity-conditional-auth-functions.git","svn_url":"https://github.com/tharindu-bandara/identity-conditional-auth-functions","homepage":null,"size":311,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"wso2-extensions:master","ref":"master","sha":"14bd73d66e1cbe3ea4e75e4513f3f79f941ad43f","user":{"login":"wso2-extensions","id":17171218,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3MTcxMjE4","avatar_url":"https://avatars0.githubusercontent.com/u/17171218?v=4","gravatar_id":"","url":"https://api.github.com/users/wso2-extensions","html_url":"https://github.com/wso2-extensions","followers_url":"https://api.github.com/users/wso2-extensions/followers","following_url":"https://api.github.com/users/wso2-extensions/following{/other_user}","gists_url":"https://api.github.com/users/wso2-extensions/gists{/gist_id}","starred_url":"https://api.github.com/users/wso2-extensions/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wso2-extensions/subscriptions","organizations_url":"https://api.github.com/users/wso2-extensions/orgs","repos_url":"https://api.github.com/users/wso2-extensions/repos","events_url":"https://api.github.com/users/wso2-extensions/events{/privacy}","received_events_url":"https://api.github.com/users/wso2-extensions/received_events","type":"Organization","site_admin":false},"repo":{"id":132998967,"node_id":"MDEwOlJlcG9zaXRvcnkxMzI5OTg5Njc=","name":"identity-conditional-auth-functions","full_name":"wso2-extensions/identity-conditional-auth-functions","owner":{"login":"wso2-extensions","id":17171218,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3MTcxMjE4","avatar_url":"https://avatars0.githubusercontent.com/u/17171218?v=4","gravatar_id":"","url":"https://api.github.com/users/wso2-extensions","html_url":"https://github.com/wso2-extensions","followers_url":"https://api.github.com/users/wso2-extensions/followers","following_url":"https://api.github.com/users/wso2-extensions/following{/other_user}","gists_url":"https://api.github.com/users/wso2-extensions/gists{/gist_id}","starred_url":"https://api.github.com/users/wso2-extensions/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wso2-extensions/subscriptions","organizations_url":"https://api.github.com/users/wso2-extensions/orgs","repos_url":"https://api.github.com/users/wso2-extensions/repos","events_url":"https://api.github.com/users/wso2-extensions/events{/privacy}","received_events_url":"https://api.github.com/users/wso2-extensions/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/wso2-extensions/identity-conditional-auth-functions","description":null,"fork":false,"url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions","forks_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/forks","keys_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/teams","hooks_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/hooks","issue_events_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/issues/events{/number}","events_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/events","assignees_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/assignees{/user}","branches_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/branches{/branch}","tags_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/tags","blobs_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/git/refs{/sha}","trees_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/statuses/{sha}","languages_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/languages","stargazers_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/stargazers","contributors_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/contributors","subscribers_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/subscribers","subscription_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/subscription","commits_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/commits{/sha}","git_commits_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/git/commits{/sha}","comments_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/comments{/number}","issue_comment_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/issues/comments{/number}","contents_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/contents/{+path}","compare_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/merges","archive_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/downloads","issues_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/issues{/number}","pulls_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/pulls{/number}","milestones_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/milestones{/number}","notifications_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/labels{/name}","releases_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/releases{/id}","deployments_url":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/deployments","created_at":"2018-05-11T06:31:45Z","updated_at":"2018-08-19T07:30:01Z","pushed_at":"2018-08-22T04:53:03Z","git_url":"git://github.com/wso2-extensions/identity-conditional-auth-functions.git","ssh_url":"git@github.com:wso2-extensions/identity-conditional-auth-functions.git","clone_url":"https://github.com/wso2-extensions/identity-conditional-auth-functions.git","svn_url":"https://github.com/wso2-extensions/identity-conditional-auth-functions","homepage":null,"size":307,"stargazers_count":2,"watchers_count":2,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":13,"mirror_url":null,"archived":false,"open_issues_count":3,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":13,"open_issues":3,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/pulls/37"},"html":{"href":"https://github.com/wso2-extensions/identity-conditional-auth-functions/pull/37"},"issue":{"href":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/issues/37"},"comments":{"href":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/issues/37/comments"},"review_comments":{"href":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/pulls/37/comments"},"review_comment":{"href":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/pulls/37/commits"},"statuses":{"href":"https://api.github.com/repos/wso2-extensions/identity-conditional-auth-functions/statuses/050b513295fe4e3908cb82c6a3bc6158a66c69a2"}},"author_association":"NONE"}}
{"actor":{"display_login":"denuwanthi"}}