{"action":"created","comment":{"url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls/comments/205683396","pull_request_review_id":141002930,"id":205683396,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNTY4MzM5Ng==","diff_hunk":"@@ -0,0 +1,242 @@\n+package tv.v1x1.modules.channel.wasm.api;\n+\n+import com.google.common.collect.ImmutableList;\n+import org.slf4j.Logger;\n+import org.slf4j.LoggerFactory;\n+import tv.v1x1.modules.channel.wasm.ExecutionEnvironment;\n+import tv.v1x1.modules.channel.wasm.vm.runtime.ModuleInstance;\n+import tv.v1x1.modules.channel.wasm.vm.runtime.TrapException;\n+import tv.v1x1.modules.channel.wasm.vm.runtime.WebAssemblyVirtualMachine;\n+import tv.v1x1.modules.channel.wasm.vm.store.MemoryInstance;\n+import tv.v1x1.modules.channel.wasm.vm.store.MemoryPage;\n+import tv.v1x1.modules.channel.wasm.vm.types.I32;\n+import tv.v1x1.modules.channel.wasm.vm.validation.FunctionType;\n+import tv.v1x1.modules.channel.wasm.vm.validation.ValType;\n+\n+import java.lang.invoke.MethodHandles;\n+import java.util.Date;\n+\n+public class SyscallWebAssemblyModuleDef extends NativeWebAssemblyModuleDef {\n+    private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());\n+\n+    private static final int SYS_EXIT = 1;\n+    private static final int SYS_TIME = 13;\n+    private static final int SYS_BRK = 45;\n+    private static final int SYS_GETTIMEOFDAY = 78;\n+    private static final int SYS_MUNMAP = 91;\n+    private static final int SYS_MMAP_PGOFF = 192;\n+\n+    private static final int EPERM  =  1;\n+    private static final int ENOMEM = 12;\n+    private static final int EACCES = 13;\n+    private static final int EEXIST = 17;\n+    private static final int EINVAL = 22;\n+\n+    private static final int PROT_READ      = 0x1;\n+    private static final int PROT_WRITE     = 0x2;\n+    private static final int PROT_EXEC      = 0x4;\n+\n+    private static final int MAP_FIXED      =    0x10;\n+    private static final int MAP_ANONYMOUS  =    0x20;\n+    private static final int MAP_FIXED_NOREPLACE = 0x100000;\n+\n+    private static final I32 ENOSYS = new I32(-38);\n+\n+    private static final NativeFunctionSpec[] FUNCTIONS = {\n+            new NativeFunctionSpec(\"__syscall0\", new FunctionType(ImmutableList.of(ValType.I32), ImmutableList.of(ValType.I32)), SyscallWebAssemblyModuleDef::syscall0),\n+            new NativeFunctionSpec(\"__syscall1\", new FunctionType(ImmutableList.of(ValType.I32, ValType.I32), ImmutableList.of(ValType.I32)), SyscallWebAssemblyModuleDef::syscall1),\n+            new NativeFunctionSpec(\"__syscall2\", new FunctionType(ImmutableList.of(ValType.I32, ValType.I32, ValType.I32), ImmutableList.of(ValType.I32)), SyscallWebAssemblyModuleDef::syscall2),\n+            new NativeFunctionSpec(\"__syscall3\", new FunctionType(ImmutableList.of(ValType.I32, ValType.I32, ValType.I32, ValType.I32), ImmutableList.of(ValType.I32)), SyscallWebAssemblyModuleDef::syscall3),\n+            new NativeFunctionSpec(\"__syscall4\", new FunctionType(ImmutableList.of(ValType.I32, ValType.I32, ValType.I32, ValType.I32, ValType.I32), ImmutableList.of(ValType.I32)), SyscallWebAssemblyModuleDef::syscall4),\n+            new NativeFunctionSpec(\"__syscall5\", new FunctionType(ImmutableList.of(ValType.I32, ValType.I32, ValType.I32, ValType.I32, ValType.I32, ValType.I32), ImmutableList.of(ValType.I32)), SyscallWebAssemblyModuleDef::syscall5),\n+            new NativeFunctionSpec(\"__syscall6\", new FunctionType(ImmutableList.of(ValType.I32, ValType.I32, ValType.I32, ValType.I32, ValType.I32, ValType.I32, ValType.I32), ImmutableList.of(ValType.I32)), SyscallWebAssemblyModuleDef::syscall6)\n+    };\n+\n+    public SyscallWebAssemblyModuleDef(final ExecutionEnvironment executionEnvironment) {\n+        super(executionEnvironment, \"syscall\", FUNCTIONS);\n+    }\n+\n+    private static void syscall0(final ExecutionEnvironment executionEnvironment, final WebAssemblyVirtualMachine virtualMachine, final ModuleInstance moduleInstance) throws TrapException {\n+        final int syscallId = virtualMachine.getCurrentActivation().getLocal(0, I32.class).getVal();\n+        switch(syscallId) {\n+            default:\n+                virtualMachine.getStack().push(ENOSYS);\n+                LOG.info(\"Unhandled syscall0({})\", syscallId);\n+        }\n+    }\n+\n+    private static void syscall1(final ExecutionEnvironment executionEnvironment, final WebAssemblyVirtualMachine virtualMachine, final ModuleInstance moduleInstance) throws TrapException {\n+        final int syscallId = virtualMachine.getCurrentActivation().getLocal(0, I32.class).getVal();\n+        final int param1 = virtualMachine.getCurrentActivation().getLocal(1, I32.class).getVal();\n+        LOG.info(\"syscall1({}, {})\", syscallId, param1);\n+        switch(syscallId) {\n+            case SYS_EXIT:\n+                throw new TrapException(\"Exit: \" + param1);\n+            case SYS_TIME:\n+                final I32 time = new I32((int) (new Date().getTime() / 1000));\n+                if(param1 != 0) {\n+                    final MemoryInstance memoryInstance = virtualMachine.getStore().getMemories().get(moduleInstance.getMemoryAddresses()[0]);\n+                    memoryInstance.write(param1, time.bytes());\n+                }\n+                virtualMachine.getStack().push(time);\n+                break;\n+            case SYS_BRK:\n+                final MemoryInstance memoryInstance = virtualMachine.getStore().getMemories().get(moduleInstance.getMemoryAddresses()[0]);\n+                brk(param1, memoryInstance);\n+                virtualMachine.getStack().push(new I32(memoryInstance.getCurrentBreak()));\n+                break;\n+            default:\n+                virtualMachine.getStack().push(ENOSYS);\n+                LOG.info(\"Unhandled syscall1({}, {})\", syscallId, param1);\n+        }\n+    }\n+\n+    private static void syscall2(final ExecutionEnvironment executionEnvironment, final WebAssemblyVirtualMachine virtualMachine, final ModuleInstance moduleInstance) throws TrapException {\n+        final int syscallId = virtualMachine.getCurrentActivation().getLocal(0, I32.class).getVal();\n+        final int param1 = virtualMachine.getCurrentActivation().getLocal(1, I32.class).getVal();\n+        final int param2 = virtualMachine.getCurrentActivation().getLocal(2, I32.class).getVal();\n+        LOG.info(\"syscall2({}, {}, {})\", syscallId, param1, param2);\n+        switch(syscallId) {\n+            case SYS_GETTIMEOFDAY:\n+                if(param1 != 0 || param2 != 0) {\n+                    final MemoryInstance memoryInstance = virtualMachine.getStore().getMemories().get(moduleInstance.getMemoryAddresses()[0]);\n+                    if(param1 != 0) {\n+                        final long currentTimeMillis = new Date().getTime();\n+                        final I32 seconds = new I32((int) (currentTimeMillis / 1000));\n+                        final I32 micros = new I32((int) ((currentTimeMillis % 1000) * 1000));\n+                        memoryInstance.write(param1, seconds.bytes());\n+                        memoryInstance.write(param1 + 4, micros.bytes());\n+                    }\n+                    if(param2 != 0) {\n+                        final I32 minutesWest = I32.ZERO;\n+                        final I32 dstTime = I32.ZERO;\n+                        memoryInstance.write(param2, minutesWest.bytes());\n+                        memoryInstance.write(param2 + 4, dstTime.bytes());\n+                    }\n+                }\n+                virtualMachine.getStack().push(I32.ZERO);\n+                break;\n+            case SYS_MUNMAP:\n+                final MemoryInstance memoryInstance = virtualMachine.getStore().getMemories().get(moduleInstance.getMemoryAddresses()[0]);\n+                virtualMachine.getStack().push(new I32(munmap(memoryInstance, param1, param2)));\n+                break;\n+            default:\n+                virtualMachine.getStack().push(ENOSYS);\n+                LOG.info(\"Unhandled syscall2({}, {}, {})\", syscallId, param1, param2);\n+        }\n+    }\n+\n+    private static void syscall3(final ExecutionEnvironment executionEnvironment, final WebAssemblyVirtualMachine virtualMachine, final ModuleInstance moduleInstance) throws TrapException {\n+        final int syscallId = virtualMachine.getCurrentActivation().getLocal(0, I32.class).getVal();\n+        final int param1 = virtualMachine.getCurrentActivation().getLocal(1, I32.class).getVal();\n+        final int param2 = virtualMachine.getCurrentActivation().getLocal(2, I32.class).getVal();\n+        final int param3 = virtualMachine.getCurrentActivation().getLocal(3, I32.class).getVal();\n+        virtualMachine.getStack().push(ENOSYS);\n+        LOG.info(\"Unhandled syscall3({}, {}, {}, {})\", syscallId, param1, param2, param3);\n+    }\n+\n+    private static void syscall4(final ExecutionEnvironment executionEnvironment, final WebAssemblyVirtualMachine virtualMachine, final ModuleInstance moduleInstance) throws TrapException {\n+        final int syscallId = virtualMachine.getCurrentActivation().getLocal(0, I32.class).getVal();\n+        final int param1 = virtualMachine.getCurrentActivation().getLocal(1, I32.class).getVal();\n+        final int param2 = virtualMachine.getCurrentActivation().getLocal(2, I32.class).getVal();\n+        final int param3 = virtualMachine.getCurrentActivation().getLocal(3, I32.class).getVal();\n+        final int param4 = virtualMachine.getCurrentActivation().getLocal(4, I32.class).getVal();\n+        virtualMachine.getStack().push(ENOSYS);\n+        LOG.info(\"Unhandled syscall4({}, {}, {}, {}, {})\", syscallId, param1, param2, param3, param4);\n+    }\n+\n+    private static void syscall5(final ExecutionEnvironment executionEnvironment, final WebAssemblyVirtualMachine virtualMachine, final ModuleInstance moduleInstance) throws TrapException {\n+        final int syscallId = virtualMachine.getCurrentActivation().getLocal(0, I32.class).getVal();\n+        final int param1 = virtualMachine.getCurrentActivation().getLocal(1, I32.class).getVal();\n+        final int param2 = virtualMachine.getCurrentActivation().getLocal(2, I32.class).getVal();\n+        final int param3 = virtualMachine.getCurrentActivation().getLocal(3, I32.class).getVal();\n+        final int param4 = virtualMachine.getCurrentActivation().getLocal(4, I32.class).getVal();\n+        final int param5 = virtualMachine.getCurrentActivation().getLocal(5, I32.class).getVal();\n+        virtualMachine.getStack().push(ENOSYS);\n+        LOG.info(\"Unhandled syscall5({}, {}, {}, {}, {}, {})\", syscallId, param1, param2, param3, param4, param5);\n+    }\n+\n+    private static void syscall6(final ExecutionEnvironment executionEnvironment, final WebAssemblyVirtualMachine virtualMachine, final ModuleInstance moduleInstance) throws TrapException {","path":"v1x1-modules/v1x1-modules-channel/v1x1-modules-channel-wasm/src/main/java/tv/v1x1/modules/channel/wasm/api/SyscallWebAssemblyModuleDef.java","position":159,"original_position":159,"commit_id":"a33b572630735ab890895bd3267ad097d5d8d0f5","original_commit_id":"a33b572630735ab890895bd3267ad097d5d8d0f5","user":{"login":"codacy-bot","id":19940114,"node_id":"MDQ6VXNlcjE5OTQwMTE0","avatar_url":"https://avatars1.githubusercontent.com/u/19940114?v=4","gravatar_id":"","url":"https://api.github.com/users/codacy-bot","html_url":"https://github.com/codacy-bot","followers_url":"https://api.github.com/users/codacy-bot/followers","following_url":"https://api.github.com/users/codacy-bot/following{/other_user}","gists_url":"https://api.github.com/users/codacy-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/codacy-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codacy-bot/subscriptions","organizations_url":"https://api.github.com/users/codacy-bot/orgs","repos_url":"https://api.github.com/users/codacy-bot/repos","events_url":"https://api.github.com/users/codacy-bot/events{/privacy}","received_events_url":"https://api.github.com/users/codacy-bot/received_events","type":"User","site_admin":false},"body":"![Codacy](https://app.codacy.com/assets/images/favicon.png) Issue found: [Avoid unused method parameters such as 'executionEnvironment'.](https://app.codacy.com/app/TableflippersAnonymous/v1x1/pullRequest?prid=1958206)","created_at":"2018-07-27T06:58:24Z","updated_at":"2018-07-27T06:58:24Z","html_url":"https://github.com/TableflippersAnonymous/v1x1/pull/324#discussion_r205683396","pull_request_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls/324","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls/comments/205683396"},"html":{"href":"https://github.com/TableflippersAnonymous/v1x1/pull/324#discussion_r205683396"},"pull_request":{"href":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls/324"}}},"pull_request":{"url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls/324","id":204301948,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA0MzAxOTQ4","html_url":"https://github.com/TableflippersAnonymous/v1x1/pull/324","diff_url":"https://github.com/TableflippersAnonymous/v1x1/pull/324.diff","patch_url":"https://github.com/TableflippersAnonymous/v1x1/pull/324.patch","issue_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/issues/324","number":324,"state":"open","locked":false,"title":"WebAssembly","user":{"login":"Cobi","id":357646,"node_id":"MDQ6VXNlcjM1NzY0Ng==","avatar_url":"https://avatars2.githubusercontent.com/u/357646?v=4","gravatar_id":"","url":"https://api.github.com/users/Cobi","html_url":"https://github.com/Cobi","followers_url":"https://api.github.com/users/Cobi/followers","following_url":"https://api.github.com/users/Cobi/following{/other_user}","gists_url":"https://api.github.com/users/Cobi/gists{/gist_id}","starred_url":"https://api.github.com/users/Cobi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Cobi/subscriptions","organizations_url":"https://api.github.com/users/Cobi/orgs","repos_url":"https://api.github.com/users/Cobi/repos","events_url":"https://api.github.com/users/Cobi/events{/privacy}","received_events_url":"https://api.github.com/users/Cobi/received_events","type":"User","site_admin":false},"body":"This commit adds support for executing WebAssembly code in the v1x1 tenant environment.","created_at":"2018-07-27T00:37:36Z","updated_at":"2018-07-27T06:58:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4816ae70231f07647825554c9301927c157a55c7","assignee":null,"assignees":[],"requested_reviewers":[{"login":"SnoFox","id":37625,"node_id":"MDQ6VXNlcjM3NjI1","avatar_url":"https://avatars3.githubusercontent.com/u/37625?v=4","gravatar_id":"","url":"https://api.github.com/users/SnoFox","html_url":"https://github.com/SnoFox","followers_url":"https://api.github.com/users/SnoFox/followers","following_url":"https://api.github.com/users/SnoFox/following{/other_user}","gists_url":"https://api.github.com/users/SnoFox/gists{/gist_id}","starred_url":"https://api.github.com/users/SnoFox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SnoFox/subscriptions","organizations_url":"https://api.github.com/users/SnoFox/orgs","repos_url":"https://api.github.com/users/SnoFox/repos","events_url":"https://api.github.com/users/SnoFox/events{/privacy}","received_events_url":"https://api.github.com/users/SnoFox/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls/324/commits","review_comments_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls/324/comments","review_comment_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls/comments{/number}","comments_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/issues/324/comments","statuses_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/statuses/a33b572630735ab890895bd3267ad097d5d8d0f5","head":{"label":"TableflippersAnonymous:cobi/wasm","ref":"cobi/wasm","sha":"a33b572630735ab890895bd3267ad097d5d8d0f5","user":{"login":"TableflippersAnonymous","id":27848918,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI3ODQ4OTE4","avatar_url":"https://avatars2.githubusercontent.com/u/27848918?v=4","gravatar_id":"","url":"https://api.github.com/users/TableflippersAnonymous","html_url":"https://github.com/TableflippersAnonymous","followers_url":"https://api.github.com/users/TableflippersAnonymous/followers","following_url":"https://api.github.com/users/TableflippersAnonymous/following{/other_user}","gists_url":"https://api.github.com/users/TableflippersAnonymous/gists{/gist_id}","starred_url":"https://api.github.com/users/TableflippersAnonymous/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TableflippersAnonymous/subscriptions","organizations_url":"https://api.github.com/users/TableflippersAnonymous/orgs","repos_url":"https://api.github.com/users/TableflippersAnonymous/repos","events_url":"https://api.github.com/users/TableflippersAnonymous/events{/privacy}","received_events_url":"https://api.github.com/users/TableflippersAnonymous/received_events","type":"Organization","site_admin":false},"repo":{"id":70013979,"node_id":"MDEwOlJlcG9zaXRvcnk3MDAxMzk3OQ==","name":"v1x1","full_name":"TableflippersAnonymous/v1x1","owner":{"login":"TableflippersAnonymous","id":27848918,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI3ODQ4OTE4","avatar_url":"https://avatars2.githubusercontent.com/u/27848918?v=4","gravatar_id":"","url":"https://api.github.com/users/TableflippersAnonymous","html_url":"https://github.com/TableflippersAnonymous","followers_url":"https://api.github.com/users/TableflippersAnonymous/followers","following_url":"https://api.github.com/users/TableflippersAnonymous/following{/other_user}","gists_url":"https://api.github.com/users/TableflippersAnonymous/gists{/gist_id}","starred_url":"https://api.github.com/users/TableflippersAnonymous/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TableflippersAnonymous/subscriptions","organizations_url":"https://api.github.com/users/TableflippersAnonymous/orgs","repos_url":"https://api.github.com/users/TableflippersAnonymous/repos","events_url":"https://api.github.com/users/TableflippersAnonymous/events{/privacy}","received_events_url":"https://api.github.com/users/TableflippersAnonymous/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/TableflippersAnonymous/v1x1","description":null,"fork":false,"url":"https://api.github.com/repos/TableflippersAnonymous/v1x1","forks_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/forks","keys_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/teams","hooks_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/hooks","issue_events_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/issues/events{/number}","events_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/events","assignees_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/assignees{/user}","branches_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/branches{/branch}","tags_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/tags","blobs_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/git/refs{/sha}","trees_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/statuses/{sha}","languages_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/languages","stargazers_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/stargazers","contributors_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/contributors","subscribers_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/subscribers","subscription_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/subscription","commits_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/commits{/sha}","git_commits_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/git/commits{/sha}","comments_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/comments{/number}","issue_comment_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/issues/comments{/number}","contents_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/contents/{+path}","compare_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/merges","archive_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/downloads","issues_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/issues{/number}","pulls_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls{/number}","milestones_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/milestones{/number}","notifications_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/labels{/name}","releases_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/releases{/id}","deployments_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/deployments","created_at":"2016-10-04T23:13:03Z","updated_at":"2018-07-26T08:04:16Z","pushed_at":"2018-07-27T06:55:44Z","git_url":"git://github.com/TableflippersAnonymous/v1x1.git","ssh_url":"git@github.com:TableflippersAnonymous/v1x1.git","clone_url":"https://github.com/TableflippersAnonymous/v1x1.git","svn_url":"https://github.com/TableflippersAnonymous/v1x1","homepage":"https://v1x1.tv","size":2937,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":18,"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","node_id":"MDc6TGljZW5zZTk="},"forks":0,"open_issues":18,"watchers":0,"default_branch":"master"}},"base":{"label":"TableflippersAnonymous:master","ref":"master","sha":"3a066484568afa5a6f805e392ee8cd402dd78aee","user":{"login":"TableflippersAnonymous","id":27848918,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI3ODQ4OTE4","avatar_url":"https://avatars2.githubusercontent.com/u/27848918?v=4","gravatar_id":"","url":"https://api.github.com/users/TableflippersAnonymous","html_url":"https://github.com/TableflippersAnonymous","followers_url":"https://api.github.com/users/TableflippersAnonymous/followers","following_url":"https://api.github.com/users/TableflippersAnonymous/following{/other_user}","gists_url":"https://api.github.com/users/TableflippersAnonymous/gists{/gist_id}","starred_url":"https://api.github.com/users/TableflippersAnonymous/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TableflippersAnonymous/subscriptions","organizations_url":"https://api.github.com/users/TableflippersAnonymous/orgs","repos_url":"https://api.github.com/users/TableflippersAnonymous/repos","events_url":"https://api.github.com/users/TableflippersAnonymous/events{/privacy}","received_events_url":"https://api.github.com/users/TableflippersAnonymous/received_events","type":"Organization","site_admin":false},"repo":{"id":70013979,"node_id":"MDEwOlJlcG9zaXRvcnk3MDAxMzk3OQ==","name":"v1x1","full_name":"TableflippersAnonymous/v1x1","owner":{"login":"TableflippersAnonymous","id":27848918,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI3ODQ4OTE4","avatar_url":"https://avatars2.githubusercontent.com/u/27848918?v=4","gravatar_id":"","url":"https://api.github.com/users/TableflippersAnonymous","html_url":"https://github.com/TableflippersAnonymous","followers_url":"https://api.github.com/users/TableflippersAnonymous/followers","following_url":"https://api.github.com/users/TableflippersAnonymous/following{/other_user}","gists_url":"https://api.github.com/users/TableflippersAnonymous/gists{/gist_id}","starred_url":"https://api.github.com/users/TableflippersAnonymous/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TableflippersAnonymous/subscriptions","organizations_url":"https://api.github.com/users/TableflippersAnonymous/orgs","repos_url":"https://api.github.com/users/TableflippersAnonymous/repos","events_url":"https://api.github.com/users/TableflippersAnonymous/events{/privacy}","received_events_url":"https://api.github.com/users/TableflippersAnonymous/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/TableflippersAnonymous/v1x1","description":null,"fork":false,"url":"https://api.github.com/repos/TableflippersAnonymous/v1x1","forks_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/forks","keys_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/teams","hooks_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/hooks","issue_events_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/issues/events{/number}","events_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/events","assignees_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/assignees{/user}","branches_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/branches{/branch}","tags_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/tags","blobs_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/git/refs{/sha}","trees_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/statuses/{sha}","languages_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/languages","stargazers_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/stargazers","contributors_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/contributors","subscribers_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/subscribers","subscription_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/subscription","commits_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/commits{/sha}","git_commits_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/git/commits{/sha}","comments_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/comments{/number}","issue_comment_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/issues/comments{/number}","contents_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/contents/{+path}","compare_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/merges","archive_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/downloads","issues_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/issues{/number}","pulls_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls{/number}","milestones_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/milestones{/number}","notifications_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/labels{/name}","releases_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/releases{/id}","deployments_url":"https://api.github.com/repos/TableflippersAnonymous/v1x1/deployments","created_at":"2016-10-04T23:13:03Z","updated_at":"2018-07-26T08:04:16Z","pushed_at":"2018-07-27T06:55:44Z","git_url":"git://github.com/TableflippersAnonymous/v1x1.git","ssh_url":"git@github.com:TableflippersAnonymous/v1x1.git","clone_url":"https://github.com/TableflippersAnonymous/v1x1.git","svn_url":"https://github.com/TableflippersAnonymous/v1x1","homepage":"https://v1x1.tv","size":2937,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":18,"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","node_id":"MDc6TGljZW5zZTk="},"forks":0,"open_issues":18,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls/324"},"html":{"href":"https://github.com/TableflippersAnonymous/v1x1/pull/324"},"issue":{"href":"https://api.github.com/repos/TableflippersAnonymous/v1x1/issues/324"},"comments":{"href":"https://api.github.com/repos/TableflippersAnonymous/v1x1/issues/324/comments"},"review_comments":{"href":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls/324/comments"},"review_comment":{"href":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/TableflippersAnonymous/v1x1/pulls/324/commits"},"statuses":{"href":"https://api.github.com/repos/TableflippersAnonymous/v1x1/statuses/a33b572630735ab890895bd3267ad097d5d8d0f5"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"codacy-bot"}}