{"action":"created","comment":{"url":"https://api.github.com/repos/GluuFederation/oxTrust/pulls/comments/233980747","pull_request_review_id":175520015,"id":233980747,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMzk4MDc0Nw==","diff_hunk":"@@ -0,0 +1,400 @@\n+/*\n+ * oxTrust is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\n+ *\n+ * Copyright (c) 2014, Gluu\n+ */\n+\n+package org.gluu.oxtrust.api;\n+\n+import com.google.common.base.Optional;\n+import com.wordnik.swagger.annotations.ApiOperation;\n+import com.wordnik.swagger.annotations.ApiResponse;\n+import com.wordnik.swagger.annotations.ApiResponses;\n+import org.gluu.oxtrust.exception.InvalidScriptDataException;\n+import org.gluu.oxtrust.exception.ScriptNotFoundException;\n+import org.gluu.oxtrust.ldap.service.ApplianceService;\n+import org.gluu.oxtrust.ldap.service.OrganizationService;\n+import org.gluu.oxtrust.model.CustomScriptDTO;\n+import org.gluu.oxtrust.service.filter.ProtectedApi;\n+import org.gluu.oxtrust.util.OxTrustApiConstants;\n+import org.gluu.persist.exception.BasePersistenceException;\n+import org.slf4j.Logger;\n+import org.xdi.model.ScriptLocationType;\n+import org.xdi.model.custom.script.CustomScriptType;\n+import org.xdi.model.custom.script.model.CustomScript;\n+import org.xdi.model.custom.script.model.ScriptError;\n+import org.xdi.service.custom.script.AbstractCustomScriptService;\n+\n+import javax.inject.Inject;\n+import javax.ws.rs.Consumes;\n+import javax.ws.rs.DELETE;\n+import javax.ws.rs.GET;\n+import javax.ws.rs.PUT;\n+import javax.ws.rs.Path;\n+import javax.ws.rs.PathParam;\n+import javax.ws.rs.Produces;\n+import javax.ws.rs.core.MediaType;\n+import javax.ws.rs.core.Response;\n+import java.util.ArrayList;\n+import java.util.Arrays;\n+import java.util.Iterator;\n+import java.util.LinkedHashMap;\n+import java.util.List;\n+import java.util.Map;\n+\n+import static java.util.Collections.singletonList;\n+import static org.apache.commons.lang.StringUtils.isNotEmpty;\n+import static org.gluu.oxtrust.action.ManageCustomScriptAction.*;\n+import static org.gluu.oxtrust.model.CustomScriptDTO.toDTO;\n+\n+/**\n+ * Service for custom script management\n+ *\n+ * @author Shoeb Khan\n+ * @version October 24, 2018\n+ */\n+\n+\n+@Path(OxTrustApiConstants.BASE_API_URL + \"/configurations/scripts\")\n+@ProtectedApi\n+public class CustomScriptManagementService {\n+\n+    @Inject\n+    private Logger log;\n+\n+    @Inject\n+    private OrganizationService organizationService;\n+\n+    @Inject\n+    private ApplianceService applianceService;\n+\n+    @Inject\n+    private AbstractCustomScriptService customScriptService;\n+\n+    private static final String INVALID_SCRIPT_TYPE_ERROR = buildInvalidScriptTypeError();\n+\n+    private static final String INVALID_LOCATION_TYPE_ERROR = buildInvalidScriptLocationError();\n+\n+\n+    private static final String SERVER_DENIED_THE_REQUEST = \"access_denied\\n\" + \"Server denied the request.\";\n+\n+    /**\n+     * Returns all custom scripts by their types\n+     *\n+     * @returns HTTP Response\n+     */\n+    @GET\n+    @Produces({MediaType.APPLICATION_JSON})\n+    @ApiOperation(value = \"Returns all custom scripts by their types\")\n+    @ApiResponses({\n+            @ApiResponse(code = 200, message = \"Found custom scripts. Returning all of them\"),\n+            @ApiResponse(code = 403, message =  SERVER_DENIED_THE_REQUEST),\n+            @ApiResponse(code = 500, message = \"Failed to load custom scripts\")\n+    })\n+    public Response getCustomScriptsByTypes() {\n+\n+        final CustomScriptType[] allowedCustomScriptTypes = this.applianceService.getCustomScriptTypes();\n+\n+        final List<CustomScript> customScripts = customScriptService.findCustomScripts(Arrays.asList(allowedCustomScriptTypes));\n+\n+        final Map<CustomScriptType, List<CustomScript>> scriptsMap = loadScriptsMap(allowedCustomScriptTypes, customScripts);\n+\n+        return Response.ok(convertToDtoMap(scriptsMap)).build();\n+    }\n+\n+    /**\n+     * Saves the custom script\n+     *\n+     * @param customScriptDTO - the script to be saved\n+     *\n+     * @returns HTTP response\n+     */\n+    @PUT\n+    @Consumes(MediaType.APPLICATION_JSON)\n+    @Produces(MediaType.APPLICATION_JSON)\n+    @ApiOperation(value = \"Saves the script\")\n+    @ApiResponses({\n+            @ApiResponse(code = 200, message = \"Script saved.\"),\n+            @ApiResponse(code = 400, message = \"One or more of the input parameters are invalid.\"),\n+            @ApiResponse(code = 403, message =  SERVER_DENIED_THE_REQUEST),\n+            @ApiResponse(code = 500, message = \"Problem saving custom script\")\n+    })\n+    public Response save(final CustomScriptDTO customScriptDTO) {\n+\n+        try {\n+\n+            validate(customScriptDTO);\n+\n+            final CustomScript customScript = CustomScriptDTO.fromDTO(customScriptDTO);\n+\n+            final Map<CustomScriptType, List<CustomScript>> customScriptTypeListMap = new LinkedHashMap<CustomScriptType, List<CustomScript>>();\n+            customScriptTypeListMap.put(customScript.getScriptType(), singletonList(customScript));\n+\n+            saveCustomScriptList(customScriptTypeListMap.entrySet(), organizationService, customScriptService);\n+\n+            return Response.ok(toDTO(customScript)).build();\n+\n+        } catch (final BasePersistenceException ex) {\n+\n+            log.error(\"Failed to update custom scripts\", ex);\n+            throw ex;\n+\n+        }\n+\n+    }\n+\n+    /**\n+     * Deletes the script identified by the inum\n+     *\n+     * @param inum - INUM of the script\n+     *\n+     * @returns HTTP response\n+     */\n+    @DELETE\n+    @Path(\"/inum/{inum}\")","path":"server/src/main/java/org/gluu/oxtrust/api/CustomScriptManagementService.java","position":154,"original_position":154,"commit_id":"6484702356b550471cb44399bac758b0bf62d2ca","original_commit_id":"6484702356b550471cb44399bac758b0bf62d2ca","user":{"login":"earezki","id":11857979,"node_id":"MDQ6VXNlcjExODU3OTc5","avatar_url":"https://avatars3.githubusercontent.com/u/11857979?v=4","gravatar_id":"","url":"https://api.github.com/users/earezki","html_url":"https://github.com/earezki","followers_url":"https://api.github.com/users/earezki/followers","following_url":"https://api.github.com/users/earezki/following{/other_user}","gists_url":"https://api.github.com/users/earezki/gists{/gist_id}","starred_url":"https://api.github.com/users/earezki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/earezki/subscriptions","organizations_url":"https://api.github.com/users/earezki/orgs","repos_url":"https://api.github.com/users/earezki/repos","events_url":"https://api.github.com/users/earezki/events{/privacy}","received_events_url":"https://api.github.com/users/earezki/received_events","type":"User","site_admin":false},"body":"In my opinion, no need for /inum/{inum}, use only /{inum} or better yet, /{id}","created_at":"2018-11-15T19:36:28Z","updated_at":"2018-11-15T19:38:30Z","html_url":"https://github.com/GluuFederation/oxTrust/pull/1350#discussion_r233980747","pull_request_url":"https://api.github.com/repos/GluuFederation/oxTrust/pulls/1350","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/GluuFederation/oxTrust/pulls/comments/233980747"},"html":{"href":"https://github.com/GluuFederation/oxTrust/pull/1350#discussion_r233980747"},"pull_request":{"href":"https://api.github.com/repos/GluuFederation/oxTrust/pulls/1350"}}},"pull_request":{"url":"https://api.github.com/repos/GluuFederation/oxTrust/pulls/1350","id":231087411,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMxMDg3NDEx","html_url":"https://github.com/GluuFederation/oxTrust/pull/1350","diff_url":"https://github.com/GluuFederation/oxTrust/pull/1350.diff","patch_url":"https://github.com/GluuFederation/oxTrust/pull/1350.patch","issue_url":"https://api.github.com/repos/GluuFederation/oxTrust/issues/1350","number":1350,"state":"open","locked":false,"title":"CustomScript REST service #930","user":{"login":"shoebkhan09","id":17292532,"node_id":"MDQ6VXNlcjE3MjkyNTMy","avatar_url":"https://avatars2.githubusercontent.com/u/17292532?v=4","gravatar_id":"","url":"https://api.github.com/users/shoebkhan09","html_url":"https://github.com/shoebkhan09","followers_url":"https://api.github.com/users/shoebkhan09/followers","following_url":"https://api.github.com/users/shoebkhan09/following{/other_user}","gists_url":"https://api.github.com/users/shoebkhan09/gists{/gist_id}","starred_url":"https://api.github.com/users/shoebkhan09/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shoebkhan09/subscriptions","organizations_url":"https://api.github.com/users/shoebkhan09/orgs","repos_url":"https://api.github.com/users/shoebkhan09/repos","events_url":"https://api.github.com/users/shoebkhan09/events{/privacy}","received_events_url":"https://api.github.com/users/shoebkhan09/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-11-15T06:55:26Z","updated_at":"2018-11-15T19:38:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0109e83dcefd7acc53e8d4f6f44adf8731b3b161","assignee":null,"assignees":[],"requested_reviewers":[{"login":"yurem","id":6104200,"node_id":"MDQ6VXNlcjYxMDQyMDA=","avatar_url":"https://avatars1.githubusercontent.com/u/6104200?v=4","gravatar_id":"","url":"https://api.github.com/users/yurem","html_url":"https://github.com/yurem","followers_url":"https://api.github.com/users/yurem/followers","following_url":"https://api.github.com/users/yurem/following{/other_user}","gists_url":"https://api.github.com/users/yurem/gists{/gist_id}","starred_url":"https://api.github.com/users/yurem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yurem/subscriptions","organizations_url":"https://api.github.com/users/yurem/orgs","repos_url":"https://api.github.com/users/yurem/repos","events_url":"https://api.github.com/users/yurem/events{/privacy}","received_events_url":"https://api.github.com/users/yurem/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/GluuFederation/oxTrust/pulls/1350/commits","review_comments_url":"https://api.github.com/repos/GluuFederation/oxTrust/pulls/1350/comments","review_comment_url":"https://api.github.com/repos/GluuFederation/oxTrust/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GluuFederation/oxTrust/issues/1350/comments","statuses_url":"https://api.github.com/repos/GluuFederation/oxTrust/statuses/6484702356b550471cb44399bac758b0bf62d2ca","head":{"label":"shoebkhan09:oxTrust/issues/930","ref":"oxTrust/issues/930","sha":"6484702356b550471cb44399bac758b0bf62d2ca","user":{"login":"shoebkhan09","id":17292532,"node_id":"MDQ6VXNlcjE3MjkyNTMy","avatar_url":"https://avatars2.githubusercontent.com/u/17292532?v=4","gravatar_id":"","url":"https://api.github.com/users/shoebkhan09","html_url":"https://github.com/shoebkhan09","followers_url":"https://api.github.com/users/shoebkhan09/followers","following_url":"https://api.github.com/users/shoebkhan09/following{/other_user}","gists_url":"https://api.github.com/users/shoebkhan09/gists{/gist_id}","starred_url":"https://api.github.com/users/shoebkhan09/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shoebkhan09/subscriptions","organizations_url":"https://api.github.com/users/shoebkhan09/orgs","repos_url":"https://api.github.com/users/shoebkhan09/repos","events_url":"https://api.github.com/users/shoebkhan09/events{/privacy}","received_events_url":"https://api.github.com/users/shoebkhan09/received_events","type":"User","site_admin":false},"repo":{"id":141226599,"node_id":"MDEwOlJlcG9zaXRvcnkxNDEyMjY1OTk=","name":"oxTrust","full_name":"shoebkhan09/oxTrust","private":false,"owner":{"login":"shoebkhan09","id":17292532,"node_id":"MDQ6VXNlcjE3MjkyNTMy","avatar_url":"https://avatars2.githubusercontent.com/u/17292532?v=4","gravatar_id":"","url":"https://api.github.com/users/shoebkhan09","html_url":"https://github.com/shoebkhan09","followers_url":"https://api.github.com/users/shoebkhan09/followers","following_url":"https://api.github.com/users/shoebkhan09/following{/other_user}","gists_url":"https://api.github.com/users/shoebkhan09/gists{/gist_id}","starred_url":"https://api.github.com/users/shoebkhan09/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shoebkhan09/subscriptions","organizations_url":"https://api.github.com/users/shoebkhan09/orgs","repos_url":"https://api.github.com/users/shoebkhan09/repos","events_url":"https://api.github.com/users/shoebkhan09/events{/privacy}","received_events_url":"https://api.github.com/users/shoebkhan09/received_events","type":"User","site_admin":false},"html_url":"https://github.com/shoebkhan09/oxTrust","description":"Gluu Server UI for managing authentication, authorization and users.","fork":true,"url":"https://api.github.com/repos/shoebkhan09/oxTrust","forks_url":"https://api.github.com/repos/shoebkhan09/oxTrust/forks","keys_url":"https://api.github.com/repos/shoebkhan09/oxTrust/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shoebkhan09/oxTrust/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shoebkhan09/oxTrust/teams","hooks_url":"https://api.github.com/repos/shoebkhan09/oxTrust/hooks","issue_events_url":"https://api.github.com/repos/shoebkhan09/oxTrust/issues/events{/number}","events_url":"https://api.github.com/repos/shoebkhan09/oxTrust/events","assignees_url":"https://api.github.com/repos/shoebkhan09/oxTrust/assignees{/user}","branches_url":"https://api.github.com/repos/shoebkhan09/oxTrust/branches{/branch}","tags_url":"https://api.github.com/repos/shoebkhan09/oxTrust/tags","blobs_url":"https://api.github.com/repos/shoebkhan09/oxTrust/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shoebkhan09/oxTrust/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shoebkhan09/oxTrust/git/refs{/sha}","trees_url":"https://api.github.com/repos/shoebkhan09/oxTrust/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shoebkhan09/oxTrust/statuses/{sha}","languages_url":"https://api.github.com/repos/shoebkhan09/oxTrust/languages","stargazers_url":"https://api.github.com/repos/shoebkhan09/oxTrust/stargazers","contributors_url":"https://api.github.com/repos/shoebkhan09/oxTrust/contributors","subscribers_url":"https://api.github.com/repos/shoebkhan09/oxTrust/subscribers","subscription_url":"https://api.github.com/repos/shoebkhan09/oxTrust/subscription","commits_url":"https://api.github.com/repos/shoebkhan09/oxTrust/commits{/sha}","git_commits_url":"https://api.github.com/repos/shoebkhan09/oxTrust/git/commits{/sha}","comments_url":"https://api.github.com/repos/shoebkhan09/oxTrust/comments{/number}","issue_comment_url":"https://api.github.com/repos/shoebkhan09/oxTrust/issues/comments{/number}","contents_url":"https://api.github.com/repos/shoebkhan09/oxTrust/contents/{+path}","compare_url":"https://api.github.com/repos/shoebkhan09/oxTrust/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shoebkhan09/oxTrust/merges","archive_url":"https://api.github.com/repos/shoebkhan09/oxTrust/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shoebkhan09/oxTrust/downloads","issues_url":"https://api.github.com/repos/shoebkhan09/oxTrust/issues{/number}","pulls_url":"https://api.github.com/repos/shoebkhan09/oxTrust/pulls{/number}","milestones_url":"https://api.github.com/repos/shoebkhan09/oxTrust/milestones{/number}","notifications_url":"https://api.github.com/repos/shoebkhan09/oxTrust/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shoebkhan09/oxTrust/labels{/name}","releases_url":"https://api.github.com/repos/shoebkhan09/oxTrust/releases{/id}","deployments_url":"https://api.github.com/repos/shoebkhan09/oxTrust/deployments","created_at":"2018-07-17T03:32:09Z","updated_at":"2018-07-17T03:32:14Z","pushed_at":"2018-11-13T16:13:11Z","git_url":"git://github.com/shoebkhan09/oxTrust.git","ssh_url":"git@github.com:shoebkhan09/oxTrust.git","clone_url":"https://github.com/shoebkhan09/oxTrust.git","svn_url":"https://github.com/shoebkhan09/oxTrust","homepage":"https://gluu.org/docs/ce","size":20341,"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":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"GluuFederation:oxtrust_api","ref":"oxtrust_api","sha":"19bafd28adbd79e75d89184329a3cba28ad7e26f","user":{"login":"GluuFederation","id":3717106,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM3MTcxMDY=","avatar_url":"https://avatars1.githubusercontent.com/u/3717106?v=4","gravatar_id":"","url":"https://api.github.com/users/GluuFederation","html_url":"https://github.com/GluuFederation","followers_url":"https://api.github.com/users/GluuFederation/followers","following_url":"https://api.github.com/users/GluuFederation/following{/other_user}","gists_url":"https://api.github.com/users/GluuFederation/gists{/gist_id}","starred_url":"https://api.github.com/users/GluuFederation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GluuFederation/subscriptions","organizations_url":"https://api.github.com/users/GluuFederation/orgs","repos_url":"https://api.github.com/users/GluuFederation/repos","events_url":"https://api.github.com/users/GluuFederation/events{/privacy}","received_events_url":"https://api.github.com/users/GluuFederation/received_events","type":"Organization","site_admin":false},"repo":{"id":18222972,"node_id":"MDEwOlJlcG9zaXRvcnkxODIyMjk3Mg==","name":"oxTrust","full_name":"GluuFederation/oxTrust","private":false,"owner":{"login":"GluuFederation","id":3717106,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM3MTcxMDY=","avatar_url":"https://avatars1.githubusercontent.com/u/3717106?v=4","gravatar_id":"","url":"https://api.github.com/users/GluuFederation","html_url":"https://github.com/GluuFederation","followers_url":"https://api.github.com/users/GluuFederation/followers","following_url":"https://api.github.com/users/GluuFederation/following{/other_user}","gists_url":"https://api.github.com/users/GluuFederation/gists{/gist_id}","starred_url":"https://api.github.com/users/GluuFederation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GluuFederation/subscriptions","organizations_url":"https://api.github.com/users/GluuFederation/orgs","repos_url":"https://api.github.com/users/GluuFederation/repos","events_url":"https://api.github.com/users/GluuFederation/events{/privacy}","received_events_url":"https://api.github.com/users/GluuFederation/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/GluuFederation/oxTrust","description":"Gluu Server UI for managing authentication, authorization and users.","fork":false,"url":"https://api.github.com/repos/GluuFederation/oxTrust","forks_url":"https://api.github.com/repos/GluuFederation/oxTrust/forks","keys_url":"https://api.github.com/repos/GluuFederation/oxTrust/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GluuFederation/oxTrust/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GluuFederation/oxTrust/teams","hooks_url":"https://api.github.com/repos/GluuFederation/oxTrust/hooks","issue_events_url":"https://api.github.com/repos/GluuFederation/oxTrust/issues/events{/number}","events_url":"https://api.github.com/repos/GluuFederation/oxTrust/events","assignees_url":"https://api.github.com/repos/GluuFederation/oxTrust/assignees{/user}","branches_url":"https://api.github.com/repos/GluuFederation/oxTrust/branches{/branch}","tags_url":"https://api.github.com/repos/GluuFederation/oxTrust/tags","blobs_url":"https://api.github.com/repos/GluuFederation/oxTrust/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GluuFederation/oxTrust/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GluuFederation/oxTrust/git/refs{/sha}","trees_url":"https://api.github.com/repos/GluuFederation/oxTrust/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GluuFederation/oxTrust/statuses/{sha}","languages_url":"https://api.github.com/repos/GluuFederation/oxTrust/languages","stargazers_url":"https://api.github.com/repos/GluuFederation/oxTrust/stargazers","contributors_url":"https://api.github.com/repos/GluuFederation/oxTrust/contributors","subscribers_url":"https://api.github.com/repos/GluuFederation/oxTrust/subscribers","subscription_url":"https://api.github.com/repos/GluuFederation/oxTrust/subscription","commits_url":"https://api.github.com/repos/GluuFederation/oxTrust/commits{/sha}","git_commits_url":"https://api.github.com/repos/GluuFederation/oxTrust/git/commits{/sha}","comments_url":"https://api.github.com/repos/GluuFederation/oxTrust/comments{/number}","issue_comment_url":"https://api.github.com/repos/GluuFederation/oxTrust/issues/comments{/number}","contents_url":"https://api.github.com/repos/GluuFederation/oxTrust/contents/{+path}","compare_url":"https://api.github.com/repos/GluuFederation/oxTrust/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GluuFederation/oxTrust/merges","archive_url":"https://api.github.com/repos/GluuFederation/oxTrust/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GluuFederation/oxTrust/downloads","issues_url":"https://api.github.com/repos/GluuFederation/oxTrust/issues{/number}","pulls_url":"https://api.github.com/repos/GluuFederation/oxTrust/pulls{/number}","milestones_url":"https://api.github.com/repos/GluuFederation/oxTrust/milestones{/number}","notifications_url":"https://api.github.com/repos/GluuFederation/oxTrust/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GluuFederation/oxTrust/labels{/name}","releases_url":"https://api.github.com/repos/GluuFederation/oxTrust/releases{/id}","deployments_url":"https://api.github.com/repos/GluuFederation/oxTrust/deployments","created_at":"2014-03-28T18:53:26Z","updated_at":"2018-11-15T13:03:14Z","pushed_at":"2018-11-15T13:03:12Z","git_url":"git://github.com/GluuFederation/oxTrust.git","ssh_url":"git@github.com:GluuFederation/oxTrust.git","clone_url":"https://github.com/GluuFederation/oxTrust.git","svn_url":"https://github.com/GluuFederation/oxTrust","homepage":"https://gluu.org/docs/ce","size":20860,"stargazers_count":49,"watchers_count":49,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":38,"mirror_url":null,"archived":false,"open_issues_count":61,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":38,"open_issues":61,"watchers":49,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GluuFederation/oxTrust/pulls/1350"},"html":{"href":"https://github.com/GluuFederation/oxTrust/pull/1350"},"issue":{"href":"https://api.github.com/repos/GluuFederation/oxTrust/issues/1350"},"comments":{"href":"https://api.github.com/repos/GluuFederation/oxTrust/issues/1350/comments"},"review_comments":{"href":"https://api.github.com/repos/GluuFederation/oxTrust/pulls/1350/comments"},"review_comment":{"href":"https://api.github.com/repos/GluuFederation/oxTrust/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GluuFederation/oxTrust/pulls/1350/commits"},"statuses":{"href":"https://api.github.com/repos/GluuFederation/oxTrust/statuses/6484702356b550471cb44399bac758b0bf62d2ca"}},"author_association":"NONE"}}
{"actor":{"display_login":"earezki"}}