{"action":"created","comment":{"url":"https://api.github.com/repos/h2oai/h2o-3/pulls/comments/208082880","pull_request_review_id":143822251,"id":208082880,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwODA4Mjg4MA==","diff_hunk":"@@ -0,0 +1,161 @@\n+package hex.tree;\n+\n+import hex.genmodel.algos.tree.SharedTreeNode;\n+import hex.genmodel.algos.tree.SharedTreeSubgraph;\n+import hex.schemas.TreeV3;\n+import water.MemoryManager;\n+import water.api.Handler;\n+\n+import java.util.*;\n+\n+/**\n+ * Handling requests for various model trees\n+ */\n+public class TreeHandler extends Handler {\n+    private static final int NO_CHILD = -1;\n+\n+    public TreeV3 getTree(final int version, final TreeV3 args) {\n+        final SharedTreeModel model = (SharedTreeModel) args.model.key().get();\n+        if (model == null) throw new IllegalArgumentException(\"Unknown tree key: \" + args.model.toString());\n+        final SharedTreeModel.SharedTreeOutput sharedTreeOutput = (SharedTreeModel.SharedTreeOutput) model._output;\n+        validateArgs(args, sharedTreeOutput);\n+\n+        final CompressedTree auxCompressedTree = sharedTreeOutput._treeKeysAux[args.tree_number][args.tree_class].get();\n+        final SharedTreeSubgraph sharedTreeSubgraph = sharedTreeOutput._treeKeys[args.tree_number][args.tree_class].get()\n+                .toSharedTreeSubgraph(auxCompressedTree, sharedTreeOutput._names, sharedTreeOutput._domains);\n+\n+        final TreeProperties treeProperties = convertSharedTreeSubgraph(sharedTreeSubgraph);\n+\n+        args.left_children = treeProperties.leftChildren;\n+        args.right_children = treeProperties.rightChildren;\n+        args.descriptions = treeProperties.descriptions;\n+\n+        return args;\n+    }\n+\n+\n+    /**\n+     * @param args An instance of {@link TreeV3} input arguments to validate\n+     * @param output An instance of {@link hex.tree.SharedTreeModel.SharedTreeOutput} to validate input arguments against\n+     */\n+    private void validateArgs(TreeV3 args, SharedTreeModel.SharedTreeOutput output) {\n+        if (args.tree_number < 0) throw new IllegalArgumentException(\"Tree number must be greater than 0.\");\n+        if (args.tree_class < 0) throw new IllegalArgumentException(\"Tree class must be greater than 0.\");\n+\n+        if (args.tree_number > output._treeKeys.length - 1)\n+            throw new IllegalArgumentException(\"There is no such tree.\");\n+        if (args.tree_class > output._treeKeys[args.tree_number].length - 1)\n+            throw new IllegalArgumentException(\"There is no tree class.\");\n+    }\n+\n+\n+    /**\n+     * Convers H2O-3's internal representation of a boosted tree in a form of {@link SharedTreeSubgraph} to a compressed format.\n+     *\n+     * @param sharedTreeSubgraph An instance of {@link SharedTreeSubgraph} to convert\n+     * @return An instance of {@link TreeProperties} with some attributes possibly empty if suitable. Never null.\n+     */\n+    static TreeProperties convertSharedTreeSubgraph(final SharedTreeSubgraph sharedTreeSubgraph) {\n+        Objects.requireNonNull(sharedTreeSubgraph);\n+\n+        final TreeProperties stf = new TreeProperties();\n+\n+        stf.leftChildren = MemoryManager.malloc4(sharedTreeSubgraph.nodesArray.size());\n+        stf.rightChildren = MemoryManager.malloc4(sharedTreeSubgraph.nodesArray.size());\n+        stf.descriptions = new String[sharedTreeSubgraph.nodesArray.size()];\n+\n+        // Set root node's children, there is no guarantee the root node will be number 0\n+        stf.rightChildren[0] = sharedTreeSubgraph.rootNode.getRightChild() != null ? sharedTreeSubgraph.rootNode.getRightChild().getNodeNumber() : -1;\n+        stf.leftChildren[0] = sharedTreeSubgraph.rootNode.getLeftChild() != null ? sharedTreeSubgraph.rootNode.getLeftChild().getNodeNumber() : -1;\n+\n+        List<SharedTreeNode> nodesToTraverse = new ArrayList<>();\n+        nodesToTraverse.add(sharedTreeSubgraph.rootNode);\n+        append(stf.rightChildren, stf.leftChildren,\n+                stf.descriptions, nodesToTraverse, -1, false);\n+\n+        return stf;\n+    }\n+\n+    private static void append(final int[] rightChildren, final int[] leftChildren, final String[] nodesDescriptions,\n+                               List<SharedTreeNode> nodesToTraverse, int pointer, boolean visitedRoot) {\n+        if(nodesToTraverse.isEmpty()) return;\n+\n+        List<SharedTreeNode> discoveredNodes = new ArrayList<>();\n+\n+        for (SharedTreeNode node : nodesToTraverse) {\n+            pointer++;\n+            final SharedTreeNode leftChild = node.getLeftChild();\n+            final SharedTreeNode rightChild = node.getRightChild();\n+            if(visitedRoot){\n+                nodesDescriptions[pointer] = serializeNodeDescription(node);\n+            } else {\n+                nodesDescriptions[pointer] = \"Root node\";\n+                visitedRoot = true;\n+            }\n+\n+            if (leftChild != null) {\n+                discoveredNodes.add(leftChild);\n+                leftChildren[pointer] = leftChild.getNodeNumber();\n+            } else {\n+                leftChildren[pointer] = NO_CHILD;\n+            }\n+\n+            if (rightChild != null) {\n+                discoveredNodes.add(rightChild);\n+                rightChildren[pointer] = rightChild.getNodeNumber();\n+            } else {\n+                rightChildren[pointer] = NO_CHILD;\n+            }\n+        }\n+\n+        append(rightChildren, leftChildren, nodesDescriptions, discoveredNodes, pointer, true);\n+    }\n+\n+    private static String serializeNodeDescription(final SharedTreeNode node) {\n+        final StringBuffer nodeDescriptionBuffer = new StringBuffer();","path":"h2o-algos/src/main/java/hex/tree/TreeHandler.java","position":null,"original_position":115,"commit_id":"b32e92b1f9c62c2b001fe44ae7bb4a8004a3e6b6","original_commit_id":"8dee33431d236290d826ec1e7c312ebe68cb17ad","user":{"login":"Pscheidl","id":8769110,"node_id":"MDQ6VXNlcjg3NjkxMTA=","avatar_url":"https://avatars3.githubusercontent.com/u/8769110?v=4","gravatar_id":"","url":"https://api.github.com/users/Pscheidl","html_url":"https://github.com/Pscheidl","followers_url":"https://api.github.com/users/Pscheidl/followers","following_url":"https://api.github.com/users/Pscheidl/following{/other_user}","gists_url":"https://api.github.com/users/Pscheidl/gists{/gist_id}","starred_url":"https://api.github.com/users/Pscheidl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Pscheidl/subscriptions","organizations_url":"https://api.github.com/users/Pscheidl/orgs","repos_url":"https://api.github.com/users/Pscheidl/repos","events_url":"https://api.github.com/users/Pscheidl/events{/privacy}","received_events_url":"https://api.github.com/users/Pscheidl/received_events","type":"User","site_admin":false},"body":"Done.","created_at":"2018-08-07T02:35:22Z","updated_at":"2018-08-07T02:35:22Z","html_url":"https://github.com/h2oai/h2o-3/pull/2702#discussion_r208082880","pull_request_url":"https://api.github.com/repos/h2oai/h2o-3/pulls/2702","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/h2oai/h2o-3/pulls/comments/208082880"},"html":{"href":"https://github.com/h2oai/h2o-3/pull/2702#discussion_r208082880"},"pull_request":{"href":"https://api.github.com/repos/h2oai/h2o-3/pulls/2702"}},"in_reply_to_id":208073455},"pull_request":{"url":"https://api.github.com/repos/h2oai/h2o-3/pulls/2702","id":205249631,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA1MjQ5NjMx","html_url":"https://github.com/h2oai/h2o-3/pull/2702","diff_url":"https://github.com/h2oai/h2o-3/pull/2702.diff","patch_url":"https://github.com/h2oai/h2o-3/pull/2702.patch","issue_url":"https://api.github.com/repos/h2oai/h2o-3/issues/2702","number":2702,"state":"open","locked":false,"title":"PUBDEV-5735 Tree traversal API","user":{"login":"Pscheidl","id":8769110,"node_id":"MDQ6VXNlcjg3NjkxMTA=","avatar_url":"https://avatars3.githubusercontent.com/u/8769110?v=4","gravatar_id":"","url":"https://api.github.com/users/Pscheidl","html_url":"https://github.com/Pscheidl","followers_url":"https://api.github.com/users/Pscheidl/followers","following_url":"https://api.github.com/users/Pscheidl/following{/other_user}","gists_url":"https://api.github.com/users/Pscheidl/gists{/gist_id}","starred_url":"https://api.github.com/users/Pscheidl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Pscheidl/subscriptions","organizations_url":"https://api.github.com/users/Pscheidl/orgs","repos_url":"https://api.github.com/users/Pscheidl/repos","events_url":"https://api.github.com/users/Pscheidl/events{/privacy}","received_events_url":"https://api.github.com/users/Pscheidl/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-07-31T21:36:55Z","updated_at":"2018-08-07T02:35:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5ff8374ddcb8bc22a6ba31777801389274215612","assignee":{"login":"Pscheidl","id":8769110,"node_id":"MDQ6VXNlcjg3NjkxMTA=","avatar_url":"https://avatars3.githubusercontent.com/u/8769110?v=4","gravatar_id":"","url":"https://api.github.com/users/Pscheidl","html_url":"https://github.com/Pscheidl","followers_url":"https://api.github.com/users/Pscheidl/followers","following_url":"https://api.github.com/users/Pscheidl/following{/other_user}","gists_url":"https://api.github.com/users/Pscheidl/gists{/gist_id}","starred_url":"https://api.github.com/users/Pscheidl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Pscheidl/subscriptions","organizations_url":"https://api.github.com/users/Pscheidl/orgs","repos_url":"https://api.github.com/users/Pscheidl/repos","events_url":"https://api.github.com/users/Pscheidl/events{/privacy}","received_events_url":"https://api.github.com/users/Pscheidl/received_events","type":"User","site_admin":false},"assignees":[{"login":"Pscheidl","id":8769110,"node_id":"MDQ6VXNlcjg3NjkxMTA=","avatar_url":"https://avatars3.githubusercontent.com/u/8769110?v=4","gravatar_id":"","url":"https://api.github.com/users/Pscheidl","html_url":"https://github.com/Pscheidl","followers_url":"https://api.github.com/users/Pscheidl/followers","following_url":"https://api.github.com/users/Pscheidl/following{/other_user}","gists_url":"https://api.github.com/users/Pscheidl/gists{/gist_id}","starred_url":"https://api.github.com/users/Pscheidl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Pscheidl/subscriptions","organizations_url":"https://api.github.com/users/Pscheidl/orgs","repos_url":"https://api.github.com/users/Pscheidl/repos","events_url":"https://api.github.com/users/Pscheidl/events{/privacy}","received_events_url":"https://api.github.com/users/Pscheidl/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":472606676,"node_id":"MDU6TGFiZWw0NzI2MDY2NzY=","url":"https://api.github.com/repos/h2oai/h2o-3/labels/WIP","name":"WIP","color":"cccccc","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/h2oai/h2o-3/pulls/2702/commits","review_comments_url":"https://api.github.com/repos/h2oai/h2o-3/pulls/2702/comments","review_comment_url":"https://api.github.com/repos/h2oai/h2o-3/pulls/comments{/number}","comments_url":"https://api.github.com/repos/h2oai/h2o-3/issues/2702/comments","statuses_url":"https://api.github.com/repos/h2oai/h2o-3/statuses/b32e92b1f9c62c2b001fe44ae7bb4a8004a3e6b6","head":{"label":"h2oai:pavel_pubdev_5735_tree_traversal_api","ref":"pavel_pubdev_5735_tree_traversal_api","sha":"b32e92b1f9c62c2b001fe44ae7bb4a8004a3e6b6","user":{"login":"h2oai","id":1402695,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MDI2OTU=","avatar_url":"https://avatars2.githubusercontent.com/u/1402695?v=4","gravatar_id":"","url":"https://api.github.com/users/h2oai","html_url":"https://github.com/h2oai","followers_url":"https://api.github.com/users/h2oai/followers","following_url":"https://api.github.com/users/h2oai/following{/other_user}","gists_url":"https://api.github.com/users/h2oai/gists{/gist_id}","starred_url":"https://api.github.com/users/h2oai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/h2oai/subscriptions","organizations_url":"https://api.github.com/users/h2oai/orgs","repos_url":"https://api.github.com/users/h2oai/repos","events_url":"https://api.github.com/users/h2oai/events{/privacy}","received_events_url":"https://api.github.com/users/h2oai/received_events","type":"Organization","site_admin":false},"repo":{"id":17371412,"node_id":"MDEwOlJlcG9zaXRvcnkxNzM3MTQxMg==","name":"h2o-3","full_name":"h2oai/h2o-3","owner":{"login":"h2oai","id":1402695,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MDI2OTU=","avatar_url":"https://avatars2.githubusercontent.com/u/1402695?v=4","gravatar_id":"","url":"https://api.github.com/users/h2oai","html_url":"https://github.com/h2oai","followers_url":"https://api.github.com/users/h2oai/followers","following_url":"https://api.github.com/users/h2oai/following{/other_user}","gists_url":"https://api.github.com/users/h2oai/gists{/gist_id}","starred_url":"https://api.github.com/users/h2oai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/h2oai/subscriptions","organizations_url":"https://api.github.com/users/h2oai/orgs","repos_url":"https://api.github.com/users/h2oai/repos","events_url":"https://api.github.com/users/h2oai/events{/privacy}","received_events_url":"https://api.github.com/users/h2oai/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/h2oai/h2o-3","description":"Open Source Fast Scalable Machine Learning Platform For Smarter Applications (Deep Learning, Gradient Boosting, Random Forest, Generalized Linear Modeling (Logistic Regression, Elastic Net), K-Means, PCA, Stacked Ensembles, Automatic Machine Learning (AutoML), ...)","fork":false,"url":"https://api.github.com/repos/h2oai/h2o-3","forks_url":"https://api.github.com/repos/h2oai/h2o-3/forks","keys_url":"https://api.github.com/repos/h2oai/h2o-3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/h2oai/h2o-3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/h2oai/h2o-3/teams","hooks_url":"https://api.github.com/repos/h2oai/h2o-3/hooks","issue_events_url":"https://api.github.com/repos/h2oai/h2o-3/issues/events{/number}","events_url":"https://api.github.com/repos/h2oai/h2o-3/events","assignees_url":"https://api.github.com/repos/h2oai/h2o-3/assignees{/user}","branches_url":"https://api.github.com/repos/h2oai/h2o-3/branches{/branch}","tags_url":"https://api.github.com/repos/h2oai/h2o-3/tags","blobs_url":"https://api.github.com/repos/h2oai/h2o-3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/h2oai/h2o-3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/h2oai/h2o-3/git/refs{/sha}","trees_url":"https://api.github.com/repos/h2oai/h2o-3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/h2oai/h2o-3/statuses/{sha}","languages_url":"https://api.github.com/repos/h2oai/h2o-3/languages","stargazers_url":"https://api.github.com/repos/h2oai/h2o-3/stargazers","contributors_url":"https://api.github.com/repos/h2oai/h2o-3/contributors","subscribers_url":"https://api.github.com/repos/h2oai/h2o-3/subscribers","subscription_url":"https://api.github.com/repos/h2oai/h2o-3/subscription","commits_url":"https://api.github.com/repos/h2oai/h2o-3/commits{/sha}","git_commits_url":"https://api.github.com/repos/h2oai/h2o-3/git/commits{/sha}","comments_url":"https://api.github.com/repos/h2oai/h2o-3/comments{/number}","issue_comment_url":"https://api.github.com/repos/h2oai/h2o-3/issues/comments{/number}","contents_url":"https://api.github.com/repos/h2oai/h2o-3/contents/{+path}","compare_url":"https://api.github.com/repos/h2oai/h2o-3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/h2oai/h2o-3/merges","archive_url":"https://api.github.com/repos/h2oai/h2o-3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/h2oai/h2o-3/downloads","issues_url":"https://api.github.com/repos/h2oai/h2o-3/issues{/number}","pulls_url":"https://api.github.com/repos/h2oai/h2o-3/pulls{/number}","milestones_url":"https://api.github.com/repos/h2oai/h2o-3/milestones{/number}","notifications_url":"https://api.github.com/repos/h2oai/h2o-3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/h2oai/h2o-3/labels{/name}","releases_url":"https://api.github.com/repos/h2oai/h2o-3/releases{/id}","deployments_url":"https://api.github.com/repos/h2oai/h2o-3/deployments","created_at":"2014-03-03T16:08:07Z","updated_at":"2018-08-06T21:01:07Z","pushed_at":"2018-08-07T02:32:41Z","git_url":"git://github.com/h2oai/h2o-3.git","ssh_url":"git@github.com:h2oai/h2o-3.git","clone_url":"https://github.com/h2oai/h2o-3.git","svn_url":"https://github.com/h2oai/h2o-3","homepage":"http://h2o.ai","size":422637,"stargazers_count":3282,"watchers_count":3282,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1270,"mirror_url":null,"archived":false,"open_issues_count":73,"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":1270,"open_issues":73,"watchers":3282,"default_branch":"master"}},"base":{"label":"h2oai:rel-wright","ref":"rel-wright","sha":"e97154c5b0801ef75c3000eed3b7b51cf6e33a62","user":{"login":"h2oai","id":1402695,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MDI2OTU=","avatar_url":"https://avatars2.githubusercontent.com/u/1402695?v=4","gravatar_id":"","url":"https://api.github.com/users/h2oai","html_url":"https://github.com/h2oai","followers_url":"https://api.github.com/users/h2oai/followers","following_url":"https://api.github.com/users/h2oai/following{/other_user}","gists_url":"https://api.github.com/users/h2oai/gists{/gist_id}","starred_url":"https://api.github.com/users/h2oai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/h2oai/subscriptions","organizations_url":"https://api.github.com/users/h2oai/orgs","repos_url":"https://api.github.com/users/h2oai/repos","events_url":"https://api.github.com/users/h2oai/events{/privacy}","received_events_url":"https://api.github.com/users/h2oai/received_events","type":"Organization","site_admin":false},"repo":{"id":17371412,"node_id":"MDEwOlJlcG9zaXRvcnkxNzM3MTQxMg==","name":"h2o-3","full_name":"h2oai/h2o-3","owner":{"login":"h2oai","id":1402695,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MDI2OTU=","avatar_url":"https://avatars2.githubusercontent.com/u/1402695?v=4","gravatar_id":"","url":"https://api.github.com/users/h2oai","html_url":"https://github.com/h2oai","followers_url":"https://api.github.com/users/h2oai/followers","following_url":"https://api.github.com/users/h2oai/following{/other_user}","gists_url":"https://api.github.com/users/h2oai/gists{/gist_id}","starred_url":"https://api.github.com/users/h2oai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/h2oai/subscriptions","organizations_url":"https://api.github.com/users/h2oai/orgs","repos_url":"https://api.github.com/users/h2oai/repos","events_url":"https://api.github.com/users/h2oai/events{/privacy}","received_events_url":"https://api.github.com/users/h2oai/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/h2oai/h2o-3","description":"Open Source Fast Scalable Machine Learning Platform For Smarter Applications (Deep Learning, Gradient Boosting, Random Forest, Generalized Linear Modeling (Logistic Regression, Elastic Net), K-Means, PCA, Stacked Ensembles, Automatic Machine Learning (AutoML), ...)","fork":false,"url":"https://api.github.com/repos/h2oai/h2o-3","forks_url":"https://api.github.com/repos/h2oai/h2o-3/forks","keys_url":"https://api.github.com/repos/h2oai/h2o-3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/h2oai/h2o-3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/h2oai/h2o-3/teams","hooks_url":"https://api.github.com/repos/h2oai/h2o-3/hooks","issue_events_url":"https://api.github.com/repos/h2oai/h2o-3/issues/events{/number}","events_url":"https://api.github.com/repos/h2oai/h2o-3/events","assignees_url":"https://api.github.com/repos/h2oai/h2o-3/assignees{/user}","branches_url":"https://api.github.com/repos/h2oai/h2o-3/branches{/branch}","tags_url":"https://api.github.com/repos/h2oai/h2o-3/tags","blobs_url":"https://api.github.com/repos/h2oai/h2o-3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/h2oai/h2o-3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/h2oai/h2o-3/git/refs{/sha}","trees_url":"https://api.github.com/repos/h2oai/h2o-3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/h2oai/h2o-3/statuses/{sha}","languages_url":"https://api.github.com/repos/h2oai/h2o-3/languages","stargazers_url":"https://api.github.com/repos/h2oai/h2o-3/stargazers","contributors_url":"https://api.github.com/repos/h2oai/h2o-3/contributors","subscribers_url":"https://api.github.com/repos/h2oai/h2o-3/subscribers","subscription_url":"https://api.github.com/repos/h2oai/h2o-3/subscription","commits_url":"https://api.github.com/repos/h2oai/h2o-3/commits{/sha}","git_commits_url":"https://api.github.com/repos/h2oai/h2o-3/git/commits{/sha}","comments_url":"https://api.github.com/repos/h2oai/h2o-3/comments{/number}","issue_comment_url":"https://api.github.com/repos/h2oai/h2o-3/issues/comments{/number}","contents_url":"https://api.github.com/repos/h2oai/h2o-3/contents/{+path}","compare_url":"https://api.github.com/repos/h2oai/h2o-3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/h2oai/h2o-3/merges","archive_url":"https://api.github.com/repos/h2oai/h2o-3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/h2oai/h2o-3/downloads","issues_url":"https://api.github.com/repos/h2oai/h2o-3/issues{/number}","pulls_url":"https://api.github.com/repos/h2oai/h2o-3/pulls{/number}","milestones_url":"https://api.github.com/repos/h2oai/h2o-3/milestones{/number}","notifications_url":"https://api.github.com/repos/h2oai/h2o-3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/h2oai/h2o-3/labels{/name}","releases_url":"https://api.github.com/repos/h2oai/h2o-3/releases{/id}","deployments_url":"https://api.github.com/repos/h2oai/h2o-3/deployments","created_at":"2014-03-03T16:08:07Z","updated_at":"2018-08-06T21:01:07Z","pushed_at":"2018-08-07T02:32:41Z","git_url":"git://github.com/h2oai/h2o-3.git","ssh_url":"git@github.com:h2oai/h2o-3.git","clone_url":"https://github.com/h2oai/h2o-3.git","svn_url":"https://github.com/h2oai/h2o-3","homepage":"http://h2o.ai","size":422637,"stargazers_count":3282,"watchers_count":3282,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1270,"mirror_url":null,"archived":false,"open_issues_count":73,"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":1270,"open_issues":73,"watchers":3282,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/h2oai/h2o-3/pulls/2702"},"html":{"href":"https://github.com/h2oai/h2o-3/pull/2702"},"issue":{"href":"https://api.github.com/repos/h2oai/h2o-3/issues/2702"},"comments":{"href":"https://api.github.com/repos/h2oai/h2o-3/issues/2702/comments"},"review_comments":{"href":"https://api.github.com/repos/h2oai/h2o-3/pulls/2702/comments"},"review_comment":{"href":"https://api.github.com/repos/h2oai/h2o-3/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/h2oai/h2o-3/pulls/2702/commits"},"statuses":{"href":"https://api.github.com/repos/h2oai/h2o-3/statuses/b32e92b1f9c62c2b001fe44ae7bb4a8004a3e6b6"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"Pscheidl"}}