{"action":"created","comment":{"url":"https://api.github.com/repos/dotCMS/core/pulls/comments/156721131","pull_request_review_id":83245698,"id":156721131,"diff_hunk":"@@ -92,24 +120,318 @@ public ContainerResource(final WebResource webResource,\n     @Consumes(MediaType.APPLICATION_JSON)\n     @Produces({MediaType.APPLICATION_JSON, \"application/javascript\"})\n     public final Response getContainers(@Context final HttpServletRequest request,\n-                                          @QueryParam(PaginationUtil.FILTER)   final String filter,\n-                                          @QueryParam(PaginationUtil.PAGE) final int page,\n-                                          @QueryParam(PaginationUtil.PER_PAGE) final int perPage,\n-                                          @DefaultValue(\"title\") @QueryParam(PaginationUtil.ORDER_BY) final String orderBy,\n-                                          @DefaultValue(\"ASC\") @QueryParam(PaginationUtil.DIRECTION) final String direction,\n-                                          @QueryParam(ContainerPaginator.HOST_PARAMETER_ID) final String hostId) {\n+            @QueryParam(PaginationUtil.FILTER) final String filter, @QueryParam(PaginationUtil.PAGE) final int page,\n+            @QueryParam(PaginationUtil.PER_PAGE) final int perPage,\n+            @DefaultValue(\"title\") @QueryParam(PaginationUtil.ORDER_BY) final String orderBy,\n+            @DefaultValue(\"ASC\") @QueryParam(PaginationUtil.DIRECTION) final String direction,\n+            @QueryParam(ContainerPaginator.HOST_PARAMETER_ID) final String hostId) {\n \n         final InitDataObject initData = webResource.init(null, true, request, true, null);\n         final User user = initData.getUser();\n \n         try {\n-            final Map<String, Object> extraParams = map(ContainerPaginator.HOST_PARAMETER_ID, hostId);\n-            return this.paginationUtil.getPage(request, user, filter, page, perPage, orderBy,\n-                    OrderDirection.valueOf(direction), extraParams);\n+            final Map<String, Object> extraParams = Maps.newHashMap();\n+            extraParams.put(ContainerPaginator.HOST_PARAMETER_ID, (Object) hostId);\n+            return this.paginationUtil.getPage(request, user, filter, page, perPage, orderBy, OrderDirection.valueOf(direction),\n+                    extraParams);\n         } catch (Exception e) {\n             Logger.error(this, e.getMessage(), e);\n             return ExceptionMapperUtil.createResponse(e, Response.Status.INTERNAL_SERVER_ERROR);\n \n         }\n     }\n-}\n\\ No newline at end of file\n+\n+    @GET\n+    @JSONP\n+    @NoCache\n+    @Consumes(MediaType.APPLICATION_JSON)\n+    @Produces({MediaType.APPLICATION_JSON, \"application/javascript\"})\n+    @Path(\"/{containerId}/content/{contentletId}\")\n+    public final Response containerContent(@Context final HttpServletRequest req, @Context final HttpServletResponse res,\n+            @PathParam(\"containerId\") final String containerId, @PathParam(\"contentletId\") final String contentletId)\n+            throws DotDataException, DotSecurityException, ParseErrorException, MethodInvocationException,\n+            ResourceNotFoundException, IOException, IllegalAccessException, InstantiationException, InvocationTargetException,\n+            NoSuchMethodException {\n+\n+        final InitDataObject initData = webResource.init(true, req, true);\n+        final User user = initData.getUser();\n+        PageMode mode = PageMode.get(req);\n+        Language id = WebAPILocator.getLanguageWebAPI()\n+            .getLanguage(req);\n+\n+\n+        ShortyId contentShorty = APILocator.getShortyAPI()\n+            .getShorty(contentletId)\n+            .orElseGet(() -> {\n+                throw new ResourceNotFoundException(\"Can't find contentlet:\" + contentletId);\n+            });\n+\n+\n+\n+        final Contentlet contentlet = (contentShorty.subType == ShortType.CONTENTLET) ? APILocator.getContentletAPI()\n+            .find(contentShorty.longId, user, mode.showLive)\n+                : APILocator.getContentletAPI()\n+                    .findContentletByIdentifier(contentShorty.longId, mode == PageMode.ANON, id.getId(), user,\n+                            mode == PageMode.ANON);\n+\n+        if (contentlet.getContentType()\n+            .baseType() == BaseContentType.WIDGET) {\n+            Map<String, String> response = new HashMap<>();\n+            response.put(\"render\", WidgetResource.parseWidget(req, res, contentlet));\n+\n+            return Response.ok(response)\n+                .build();\n+\n+\n+        }\n+\n+        ShortyId containerShorty = APILocator.getShortyAPI()\n+            .getShorty(containerId)\n+            .orElseGet(() -> {\n+                throw new ResourceNotFoundException(\"Can't find Container:\" + containerId);\n+            });\n+\n+        Container container = (containerShorty.subType == ShortType.CONTAINER) ? APILocator.getContainerAPI()\n+            .find(containerId, user, mode == PageMode.ANON)\n+                : (mode.showLive) ? (Container) APILocator.getVersionableAPI()\n+                    .findLiveVersion(containerShorty.longId, user, mode == PageMode.ANON)\n+                        : (Container) APILocator.getVersionableAPI()\n+                            .findWorkingVersion(containerShorty.longId, user, mode == PageMode.ANON);\n+\n+\n+        Identifier containerIdentifier = APILocator.getIdentifierAPI()\n+            .find(container);\n+\n+        org.apache.velocity.context.Context context = VelocityUtil.getWebContext(req, res);\n+        context.remove(\"EDIT_MODE\");\n+\n+\n+\n+        context.put(\"contentletList\" + container.getIdentifier(), Lists.newArrayList(contentlet.getIdentifier()));\n+        StringWriter out = new StringWriter();\n+\n+        final ContainerStructure cStruct = APILocator.getContainerAPI()\n+            .getContainerStructures(container)\n+            .stream()\n+            .filter(cs -> contentlet.getStructureInode()\n+                .equals(cs.getStructureId()))\n+            .findFirst()\n+            .orElseGet(() -> {\n+                throw new ResourceNotFoundException(\"Can't find container structure template:\" + contentletId);\n+            });\n+\n+\n+\n+        // defensive copy\n+        container = (Container) BeanUtils.cloneBean(container);\n+        container.setPreLoop(null);\n+        container.setPostLoop(null);\n+\n+\n+        VelocityUtil.getEngine()\n+            .evaluate(context, out, this.getClass()\n+                .getName(), ContainerServices.buildVelocity(container, containerIdentifier, false));\n+\n+        Map<String, String> response = new HashMap<>();\n+        response.put(\"render\", out.toString());\n+\n+        return Response.ok(response)\n+            .build();\n+\n+    }\n+\n+\n+\n+    @POST\n+    @JSONP\n+    @NoCache\n+    @Consumes(MediaType.APPLICATION_JSON)\n+    @Produces({MediaType.APPLICATION_JSON, \"application/javascript\"})\n+    @Path(\"add/{containerId}/content/{contentletId}/uid/{uid}/order/{order}\")\n+    public final Response addContentToContainer(@Context final HttpServletRequest req, @Context final HttpServletResponse res,\n+            @PathParam(\"containerId\") final String containerId, @PathParam(\"contentletId\") final String contentletId,\n+            @QueryParam(\"order\") final int order, @PathParam(\"uid\") final String uid) throws DotDataException,\n+            DotSecurityException, ParseErrorException, MethodInvocationException, ResourceNotFoundException, IOException,\n+            IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException {\n+\n+\n+        final InitDataObject initData = webResource.init(true, req, true);\n+        final User user = initData.getUser();\n+        final PageMode mode = PageMode.get(req);\n+        final Language id = WebAPILocator.getLanguageWebAPI()\n+            .getLanguage(req);\n+\n+        ShortyId contentShorty = APILocator.getShortyAPI()\n+            .getShorty(contentletId)\n+            .orElseGet(() -> {\n+                throw new ResourceNotFoundException(\"Can't find contentlet:\" + contentletId);\n+            });\n+        final Contentlet contentlet = (contentShorty.subType == ShortType.CONTENTLET) ? APILocator.getContentletAPI()\n+            .find(contentShorty.longId, user, mode.showLive)\n+                : APILocator.getContentletAPI()\n+                    .findContentletByIdentifier(contentShorty.longId, mode == PageMode.ANON, id.getId(), user,\n+                            mode == PageMode.ANON);\n+\n+\n+\n+        ShortyId containerShorty = APILocator.getShortyAPI()\n+            .getShorty(containerId)\n+            .orElseGet(() -> {\n+                throw new ResourceNotFoundException(\"Can't find Container:\" + containerId);\n+            });\n+        Container container = (containerShorty.subType == ShortType.CONTAINER) ? APILocator.getContainerAPI()\n+            .find(containerId, user, mode == PageMode.ANON)\n+                : (mode.showLive) ? (Container) APILocator.getVersionableAPI()\n+                    .findLiveVersion(containerShorty.longId, user, mode == PageMode.ANON)\n+                        : (Container) APILocator.getVersionableAPI()\n+                            .findWorkingVersion(containerShorty.longId, user, mode == PageMode.ANON);\n+\n+\n+        APILocator.getPermissionAPI()\n+            .checkPermission(contentlet, PermissionLevel.READ, user);\n+        APILocator.getPermissionAPI()\n+            .checkPermission(container, PermissionLevel.EDIT, user);\n+\n+\n+\n+        MultiTree mt = new MultiTree().setContainer(containerId)\n+            .setContentlet(contentletId)\n+            .setRelationType(uid)\n+            .setTreeOrder(order);\n+\n+        MultiTreeFactory.saveMultiTree(mt);\n+\n+\n+        return Response.ok(\"ok\")\n+            .build();\n+    }\n+\n+\n+    @DELETE\n+    @JSONP\n+    @NoCache\n+    @Consumes(MediaType.APPLICATION_JSON)\n+    @Produces({MediaType.APPLICATION_JSON, \"application/javascript\"})\n+    @Path(\"delete/{containerId}/content/{contentletId}/uid/{uid}\")\n+    public final Response removeContentletFromContainer(@Context final HttpServletRequest req,\n+            @Context final HttpServletResponse res, @PathParam(\"containerId\") final String containerId,\n+            @PathParam(\"contentletId\") final String contentletId, @QueryParam(\"order\") final long order,\n+            @PathParam(\"uid\") final String uid) throws DotDataException, DotSecurityException, ParseErrorException,\n+            MethodInvocationException, ResourceNotFoundException, IOException, IllegalAccessException, InstantiationException,\n+            InvocationTargetException, NoSuchMethodException {\n+\n+        final InitDataObject initData = webResource.init(true, req, true);\n+        final User user = initData.getUser();\n+        final PageMode mode = PageMode.get(req);\n+        final Language id = WebAPILocator.getLanguageWebAPI()\n+            .getLanguage(req);\n+\n+        ShortyId contentShorty = APILocator.getShortyAPI()\n+            .getShorty(contentletId)\n+            .orElseGet(() -> {\n+                throw new ResourceNotFoundException(\"Can't find contentlet:\" + contentletId);\n+            });\n+        final Contentlet contentlet = (contentShorty.subType == ShortType.CONTENTLET) ? APILocator.getContentletAPI()\n+            .find(contentShorty.longId, user, mode.showLive)\n+                : APILocator.getContentletAPI()\n+                    .findContentletByIdentifier(contentShorty.longId, mode == PageMode.ANON, id.getId(), user,\n+                            mode == PageMode.ANON);\n+\n+\n+\n+        ShortyId containerShorty = APILocator.getShortyAPI()\n+            .getShorty(containerId)\n+            .orElseGet(() -> {\n+                throw new ResourceNotFoundException(\"Can't find Container:\" + containerId);\n+            });\n+        Container container = (containerShorty.subType == ShortType.CONTAINER) ? APILocator.getContainerAPI()\n+            .find(containerId, user, mode == PageMode.ANON)\n+                : (mode.showLive) ? (Container) APILocator.getVersionableAPI()\n+                    .findLiveVersion(containerShorty.longId, user, mode == PageMode.ANON)\n+                        : (Container) APILocator.getVersionableAPI()\n+                            .findWorkingVersion(containerShorty.longId, user, mode == PageMode.ANON);\n+\n+\n+        APILocator.getPermissionAPI()\n+            .checkPermission(contentlet, PermissionLevel.READ, user);\n+        APILocator.getPermissionAPI()\n+            .checkPermission(container, PermissionLevel.EDIT, user);\n+\n+        MultiTree mt = new MultiTree().setContainer(containerId)\n+                .setContentlet(contentletId)\n+                .setRelationType(uid);\n+\n+        \n+        MultiTreeFactory.deleteMultiTree(mt);\n+        \n+        return Response.ok(\"ok\")\n+                .build();\n+    }\n+\n+\n+\n+    @Path(\"/containerContent/{params:.*}\")\n+    public final Response containerContents(@Context final HttpServletRequest req, @Context final HttpServletResponse res,\n+            @QueryParam(\"containerId\") final String containerId, @QueryParam(\"contentInode\") final String contentInode)\n+            throws DotDataException, DotSecurityException, ParseErrorException, MethodInvocationException,\n+            ResourceNotFoundException, IOException {\n+\n+        final InitDataObject initData = webResource.init(true, req, true);\n+        final User user = initData.getUser();\n+\n+        Language id = WebAPILocator.getLanguageWebAPI()\n+            .getLanguage(req);\n+\n+        PageMode mode = PageMode.get(req);\n+\n+        Container container = APILocator.getContainerAPI()\n+            .find(containerId, user, mode == PageMode.ANON);\n+\n+        org.apache.velocity.context.Context context = VelocityUtil.getWebContext(req, res);\n+        Contentlet contentlet = APILocator.getContentletAPI()\n+            .find(contentInode, user, mode == PageMode.ANON);\n+        ContainerStructure cStruct = APILocator.getContainerAPI()\n+            .getContainerStructures(container)\n+            .stream()\n+            .filter(cs -> contentlet.getStructureInode()","path":"dotCMS/src/main/java/com/dotcms/rest/api/v1/container/ContainerResource.java","position":433,"original_position":433,"commit_id":"3305052f94a84853c829acdfb4063826197d7285","original_commit_id":"3305052f94a84853c829acdfb4063826197d7285","user":{"login":"jenkins-dotcms","id":29232833,"avatar_url":"https://avatars2.githubusercontent.com/u/29232833?v=4","gravatar_id":"","url":"https://api.github.com/users/jenkins-dotcms","html_url":"https://github.com/jenkins-dotcms","followers_url":"https://api.github.com/users/jenkins-dotcms/followers","following_url":"https://api.github.com/users/jenkins-dotcms/following{/other_user}","gists_url":"https://api.github.com/users/jenkins-dotcms/gists{/gist_id}","starred_url":"https://api.github.com/users/jenkins-dotcms/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenkins-dotcms/subscriptions","organizations_url":"https://api.github.com/users/jenkins-dotcms/orgs","repos_url":"https://api.github.com/users/jenkins-dotcms/repos","events_url":"https://api.github.com/users/jenkins-dotcms/events{/privacy}","received_events_url":"https://api.github.com/users/jenkins-dotcms/received_events","type":"User","site_admin":false},"body":"![MINOR](https://sonarsource.github.io/sonar-github/severity-minor.png 'Severity: MINOR') Specify a type for: 'cs' [![rule](https://sonarsource.github.io/sonar-github/rule.png)](https://sonarcloud.io/coding_rules#rule_key=squid%3AS2211)\n![MINOR](https://sonarsource.github.io/sonar-github/severity-minor.png 'Severity: MINOR') Remove this use of \"getStructureInode\"; it is deprecated. [![rule](https://sonarsource.github.io/sonar-github/rule.png)](https://sonarcloud.io/coding_rules#rule_key=squid%3ACallToDeprecatedMethod)\n","created_at":"2017-12-13T17:06:08Z","updated_at":"2017-12-13T17:06:08Z","html_url":"https://github.com/dotCMS/core/pull/13193#discussion_r156721131","pull_request_url":"https://api.github.com/repos/dotCMS/core/pulls/13193","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/dotCMS/core/pulls/comments/156721131"},"html":{"href":"https://github.com/dotCMS/core/pull/13193#discussion_r156721131"},"pull_request":{"href":"https://api.github.com/repos/dotCMS/core/pulls/13193"}}},"pull_request":{"url":"https://api.github.com/repos/dotCMS/core/pulls/13193","id":157140265,"html_url":"https://github.com/dotCMS/core/pull/13193","diff_url":"https://github.com/dotCMS/core/pull/13193.diff","patch_url":"https://github.com/dotCMS/core/pull/13193.patch","issue_url":"https://api.github.com/repos/dotCMS/core/issues/13193","number":13193,"state":"open","locked":false,"title":"Issue 13192 edit mode cleanup","user":{"login":"wezell","id":934364,"avatar_url":"https://avatars2.githubusercontent.com/u/934364?v=4","gravatar_id":"","url":"https://api.github.com/users/wezell","html_url":"https://github.com/wezell","followers_url":"https://api.github.com/users/wezell/followers","following_url":"https://api.github.com/users/wezell/following{/other_user}","gists_url":"https://api.github.com/users/wezell/gists{/gist_id}","starred_url":"https://api.github.com/users/wezell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wezell/subscriptions","organizations_url":"https://api.github.com/users/wezell/orgs","repos_url":"https://api.github.com/users/wezell/repos","events_url":"https://api.github.com/users/wezell/events{/privacy}","received_events_url":"https://api.github.com/users/wezell/received_events","type":"User","site_admin":false},"body":"This replaced the nasty code we have everywhere\r\n```\r\nboolean live = true;\r\nboolean ADMIN_MODE = (session.getAttribute(com.dotmarketing.util.WebKeys.ADMIN_MODE_SESSION) != null);\r\nboolean PREVIEW_MODE = ((session.getAttribute(com.dotmarketing.util.WebKeys.PREVIEW_MODE_SESSION) != null) && ADMIN_MODE);\r\nboolean EDIT_MODE = ((session.getAttribute(com.dotmarketing.util.WebKeys.EDIT_MODE_SESSION) != null) && ADMIN_MODE);\r\nif (EDIT_MODE || PREVIEW_MODE) {\r\n\tlive = false;\r\n}\r\n```\r\nwith\r\n```\r\nboolean admin = PageMode.get(request).isAdmin;\r\nboolean admin = PageMode.get(request).showLive;\r\n\r\nif(PageMode.get(request) == PageMode.EDIT){\r\n\r\n}\r\n\r\n```\r\netc....\r\n\r\n","created_at":"2017-12-08T00:56:47Z","updated_at":"2017-12-13T17:06:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"855d318a7a7d4af394eb6f6574c6fe32365d1c36","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/dotCMS/core/pulls/13193/commits","review_comments_url":"https://api.github.com/repos/dotCMS/core/pulls/13193/comments","review_comment_url":"https://api.github.com/repos/dotCMS/core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotCMS/core/issues/13193/comments","statuses_url":"https://api.github.com/repos/dotCMS/core/statuses/3305052f94a84853c829acdfb4063826197d7285","head":{"label":"dotCMS:issue-13192-edit-mode-cleanup","ref":"issue-13192-edit-mode-cleanup","sha":"3305052f94a84853c829acdfb4063826197d7285","user":{"login":"dotCMS","id":1005263,"avatar_url":"https://avatars3.githubusercontent.com/u/1005263?v=4","gravatar_id":"","url":"https://api.github.com/users/dotCMS","html_url":"https://github.com/dotCMS","followers_url":"https://api.github.com/users/dotCMS/followers","following_url":"https://api.github.com/users/dotCMS/following{/other_user}","gists_url":"https://api.github.com/users/dotCMS/gists{/gist_id}","starred_url":"https://api.github.com/users/dotCMS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotCMS/subscriptions","organizations_url":"https://api.github.com/users/dotCMS/orgs","repos_url":"https://api.github.com/users/dotCMS/repos","events_url":"https://api.github.com/users/dotCMS/events{/privacy}","received_events_url":"https://api.github.com/users/dotCMS/received_events","type":"Organization","site_admin":false},"repo":{"id":3729629,"name":"core","full_name":"dotCMS/core","owner":{"login":"dotCMS","id":1005263,"avatar_url":"https://avatars3.githubusercontent.com/u/1005263?v=4","gravatar_id":"","url":"https://api.github.com/users/dotCMS","html_url":"https://github.com/dotCMS","followers_url":"https://api.github.com/users/dotCMS/followers","following_url":"https://api.github.com/users/dotCMS/following{/other_user}","gists_url":"https://api.github.com/users/dotCMS/gists{/gist_id}","starred_url":"https://api.github.com/users/dotCMS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotCMS/subscriptions","organizations_url":"https://api.github.com/users/dotCMS/orgs","repos_url":"https://api.github.com/users/dotCMS/repos","events_url":"https://api.github.com/users/dotCMS/events{/privacy}","received_events_url":"https://api.github.com/users/dotCMS/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotCMS/core","description":"Source Code for dotCMS Java Enterprise Content Management System","fork":false,"url":"https://api.github.com/repos/dotCMS/core","forks_url":"https://api.github.com/repos/dotCMS/core/forks","keys_url":"https://api.github.com/repos/dotCMS/core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotCMS/core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotCMS/core/teams","hooks_url":"https://api.github.com/repos/dotCMS/core/hooks","issue_events_url":"https://api.github.com/repos/dotCMS/core/issues/events{/number}","events_url":"https://api.github.com/repos/dotCMS/core/events","assignees_url":"https://api.github.com/repos/dotCMS/core/assignees{/user}","branches_url":"https://api.github.com/repos/dotCMS/core/branches{/branch}","tags_url":"https://api.github.com/repos/dotCMS/core/tags","blobs_url":"https://api.github.com/repos/dotCMS/core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotCMS/core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotCMS/core/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotCMS/core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotCMS/core/statuses/{sha}","languages_url":"https://api.github.com/repos/dotCMS/core/languages","stargazers_url":"https://api.github.com/repos/dotCMS/core/stargazers","contributors_url":"https://api.github.com/repos/dotCMS/core/contributors","subscribers_url":"https://api.github.com/repos/dotCMS/core/subscribers","subscription_url":"https://api.github.com/repos/dotCMS/core/subscription","commits_url":"https://api.github.com/repos/dotCMS/core/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotCMS/core/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotCMS/core/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotCMS/core/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotCMS/core/contents/{+path}","compare_url":"https://api.github.com/repos/dotCMS/core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotCMS/core/merges","archive_url":"https://api.github.com/repos/dotCMS/core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotCMS/core/downloads","issues_url":"https://api.github.com/repos/dotCMS/core/issues{/number}","pulls_url":"https://api.github.com/repos/dotCMS/core/pulls{/number}","milestones_url":"https://api.github.com/repos/dotCMS/core/milestones{/number}","notifications_url":"https://api.github.com/repos/dotCMS/core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotCMS/core/labels{/name}","releases_url":"https://api.github.com/repos/dotCMS/core/releases{/id}","deployments_url":"https://api.github.com/repos/dotCMS/core/deployments","created_at":"2012-03-15T15:24:14Z","updated_at":"2017-12-11T18:30:53Z","pushed_at":"2017-12-13T16:59:31Z","git_url":"git://github.com/dotCMS/core.git","ssh_url":"git@github.com:dotCMS/core.git","clone_url":"https://github.com/dotCMS/core.git","svn_url":"https://github.com/dotCMS/core","homepage":"http://dotcms.com","size":288495,"stargazers_count":345,"watchers_count":345,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":302,"mirror_url":null,"archived":false,"open_issues_count":1736,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0"},"forks":302,"open_issues":1736,"watchers":345,"default_branch":"master"}},"base":{"label":"dotCMS:master","ref":"master","sha":"4c11cc58dd556e4f7a140c488fc7b76e6479ec3d","user":{"login":"dotCMS","id":1005263,"avatar_url":"https://avatars3.githubusercontent.com/u/1005263?v=4","gravatar_id":"","url":"https://api.github.com/users/dotCMS","html_url":"https://github.com/dotCMS","followers_url":"https://api.github.com/users/dotCMS/followers","following_url":"https://api.github.com/users/dotCMS/following{/other_user}","gists_url":"https://api.github.com/users/dotCMS/gists{/gist_id}","starred_url":"https://api.github.com/users/dotCMS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotCMS/subscriptions","organizations_url":"https://api.github.com/users/dotCMS/orgs","repos_url":"https://api.github.com/users/dotCMS/repos","events_url":"https://api.github.com/users/dotCMS/events{/privacy}","received_events_url":"https://api.github.com/users/dotCMS/received_events","type":"Organization","site_admin":false},"repo":{"id":3729629,"name":"core","full_name":"dotCMS/core","owner":{"login":"dotCMS","id":1005263,"avatar_url":"https://avatars3.githubusercontent.com/u/1005263?v=4","gravatar_id":"","url":"https://api.github.com/users/dotCMS","html_url":"https://github.com/dotCMS","followers_url":"https://api.github.com/users/dotCMS/followers","following_url":"https://api.github.com/users/dotCMS/following{/other_user}","gists_url":"https://api.github.com/users/dotCMS/gists{/gist_id}","starred_url":"https://api.github.com/users/dotCMS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotCMS/subscriptions","organizations_url":"https://api.github.com/users/dotCMS/orgs","repos_url":"https://api.github.com/users/dotCMS/repos","events_url":"https://api.github.com/users/dotCMS/events{/privacy}","received_events_url":"https://api.github.com/users/dotCMS/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotCMS/core","description":"Source Code for dotCMS Java Enterprise Content Management System","fork":false,"url":"https://api.github.com/repos/dotCMS/core","forks_url":"https://api.github.com/repos/dotCMS/core/forks","keys_url":"https://api.github.com/repos/dotCMS/core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotCMS/core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotCMS/core/teams","hooks_url":"https://api.github.com/repos/dotCMS/core/hooks","issue_events_url":"https://api.github.com/repos/dotCMS/core/issues/events{/number}","events_url":"https://api.github.com/repos/dotCMS/core/events","assignees_url":"https://api.github.com/repos/dotCMS/core/assignees{/user}","branches_url":"https://api.github.com/repos/dotCMS/core/branches{/branch}","tags_url":"https://api.github.com/repos/dotCMS/core/tags","blobs_url":"https://api.github.com/repos/dotCMS/core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotCMS/core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotCMS/core/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotCMS/core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotCMS/core/statuses/{sha}","languages_url":"https://api.github.com/repos/dotCMS/core/languages","stargazers_url":"https://api.github.com/repos/dotCMS/core/stargazers","contributors_url":"https://api.github.com/repos/dotCMS/core/contributors","subscribers_url":"https://api.github.com/repos/dotCMS/core/subscribers","subscription_url":"https://api.github.com/repos/dotCMS/core/subscription","commits_url":"https://api.github.com/repos/dotCMS/core/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotCMS/core/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotCMS/core/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotCMS/core/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotCMS/core/contents/{+path}","compare_url":"https://api.github.com/repos/dotCMS/core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotCMS/core/merges","archive_url":"https://api.github.com/repos/dotCMS/core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotCMS/core/downloads","issues_url":"https://api.github.com/repos/dotCMS/core/issues{/number}","pulls_url":"https://api.github.com/repos/dotCMS/core/pulls{/number}","milestones_url":"https://api.github.com/repos/dotCMS/core/milestones{/number}","notifications_url":"https://api.github.com/repos/dotCMS/core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotCMS/core/labels{/name}","releases_url":"https://api.github.com/repos/dotCMS/core/releases{/id}","deployments_url":"https://api.github.com/repos/dotCMS/core/deployments","created_at":"2012-03-15T15:24:14Z","updated_at":"2017-12-11T18:30:53Z","pushed_at":"2017-12-13T16:59:31Z","git_url":"git://github.com/dotCMS/core.git","ssh_url":"git@github.com:dotCMS/core.git","clone_url":"https://github.com/dotCMS/core.git","svn_url":"https://github.com/dotCMS/core","homepage":"http://dotcms.com","size":288495,"stargazers_count":345,"watchers_count":345,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":302,"mirror_url":null,"archived":false,"open_issues_count":1736,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0"},"forks":302,"open_issues":1736,"watchers":345,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotCMS/core/pulls/13193"},"html":{"href":"https://github.com/dotCMS/core/pull/13193"},"issue":{"href":"https://api.github.com/repos/dotCMS/core/issues/13193"},"comments":{"href":"https://api.github.com/repos/dotCMS/core/issues/13193/comments"},"review_comments":{"href":"https://api.github.com/repos/dotCMS/core/pulls/13193/comments"},"review_comment":{"href":"https://api.github.com/repos/dotCMS/core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotCMS/core/pulls/13193/commits"},"statuses":{"href":"https://api.github.com/repos/dotCMS/core/statuses/3305052f94a84853c829acdfb4063826197d7285"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"jenkins-dotcms"}}