{"action":"created","comment":{"url":"https://api.github.com/repos/wiremod/advdupe2/pulls/comments/197648456","pull_request_review_id":131431871,"id":197648456,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5NzY0ODQ1Ng==","diff_hunk":"@@ -100,258 +88,277 @@ end\n \n local len\n local tables,tablesLookup\n-if(not system.IsWindows() or not hasModule)then\n-\tenc[TYPE_TABLE] = function(obj) --table\n-\t\ttables = tables + 1\n-\t\tif not tablesLookup[obj] then\n-\t\t\ttablesLookup[obj] = tables\n-\t\telse\n-\t\t\tbuff:WriteByte(247)\n-\t\t\tbuff:WriteShort(tablesLookup[obj])\n-\t\t\treturn\n+\n+enc[TYPE_TABLE] = function(obj) --table\n+\ttables = tables + 1\n+\tif not tablesLookup[obj] then\n+\t\ttablesLookup[obj] = tables\n+\telse\n+\t\tbuff:WriteByte(247)\n+\t\tbuff:WriteShort(tablesLookup[obj])\n+\t\treturn\n+\tend\n+\t\n+\tif isArray(obj) then\n+\t\tbuff:WriteByte(254)\n+\t\tfor i,v in pairs(obj) do\n+\t\t\twrite(v)\n \t\tend\n-\t\t\n-\t\tif isArray(obj) then\n-\t\t\tbuff:WriteByte(254)\n-\t\t\tfor i,v in pairs(obj) do\n+\telse\n+\t\tbuff:WriteByte(255)\n+\t\tfor k,v in pairs(obj) do\n+\t\t\tif(enc[TypeID(k)]!=noserializer and enc[TypeID(v)]!=noserializer)then\n+\t\t\t\twrite(k)\n \t\t\t\twrite(v)\n \t\t\tend\n-\t\telse\n-\t\t\tbuff:WriteByte(255)\n-\t\t\tfor k,v in pairs(obj) do\n-\t\t\t\tif(enc[TypeID(k)]!=noserializer and enc[TypeID(v)]!=noserializer)then\n-\t\t\t\t\twrite(k)\n-\t\t\t\t\twrite(v)\n-\t\t\t\tend\n-\t\t\tend\n \t\tend\n-\t\tbuff:WriteByte(0)\n-\tend\n-\tenc[TYPE_BOOL] = function(obj) --boolean\n-\t\tbuff:WriteByte(obj and 253 or 252)\n-\tend\n-\tenc[TYPE_NUMBER] = function(obj) --number\n-\t\tbuff:WriteByte(251)\n-\t\tbuff:WriteDouble(obj)\n-\tend\n-\tenc[TYPE_VECTOR] = function(obj) --vector\n-\t\tbuff:WriteByte(250)\n-\t\tbuff:WriteDouble(obj.x)\n-\t\tbuff:WriteDouble(obj.y)\n-\t\tbuff:WriteDouble(obj.z)\n \tend\n-\tenc[TYPE_ANGLE] = function(obj) --angle\n-\t\tbuff:WriteByte(249)\n-\t\tbuff:WriteDouble(obj.p)\n-\t\tbuff:WriteDouble(obj.y)\n-\t\tbuff:WriteDouble(obj.r)\n+\tbuff:WriteByte(0)\n+end\n+enc[TYPE_BOOL] = function(obj) --boolean\n+\tbuff:WriteByte(obj and 253 or 252)\n+end\n+enc[TYPE_NUMBER] = function(obj) --number\n+\tbuff:WriteByte(251)\n+\tbuff:WriteDouble(obj)\n+end\n+enc[TYPE_VECTOR] = function(obj) --vector\n+\tbuff:WriteByte(250)\n+\tbuff:WriteDouble(obj.x)\n+\tbuff:WriteDouble(obj.y)\n+\tbuff:WriteDouble(obj.z)\n+end\n+enc[TYPE_ANGLE] = function(obj) --angle\n+\tbuff:WriteByte(249)\n+\tbuff:WriteDouble(obj.p)\n+\tbuff:WriteDouble(obj.y)\n+\tbuff:WriteDouble(obj.r)\n+end\n+enc[TYPE_STRING] = function(obj) --string\n+\t\n+\tlen = #obj\n+\t\n+\tif len > 0 and len < 247 then\n+\t\tbuff:WriteByte(len)\n+\t\tbuff:Write(obj)\n+\telse\n+\t\tbuff:WriteByte(248)\n+\t\tbuff:WriteULong(len)\n+\t\tbuff:Write(obj)\n \tend\n-\tenc[TYPE_STRING] = function(obj) --string\n-\t\t\n-\t\tlen = #obj\n-\t\t\n-\t\tif len > 0 and len < 247 then\n-\t\t\tbuff:WriteByte(len)\n-\t\t\tbuff:Write(obj)\n-\t\telse\n-\t\t\tbuff:WriteByte(248)\n-\t\t\tbuff:Write(obj)\n-\t\t\tbuff:WriteByte(0)\n+\t\n+end\n+\n+local function error_nodeserializer()\n+\tbuff:Seek(buff:Tell()-1)\n+\terror(format(\"couldn't find deserializer for type {typeid:%d}\", buff:ReadByte()))\n+end\n+\n+local read4, read5, read\n+\n+do --Version 4\n+\tlocal dec = {}\n+\tlocal reference = 0\n+\tfor i=1,255 do dec[i] = error_nodeserializer end\n+\n+\tfunction read4()\n+\t\tlocal tt = buff:ReadByte()\n+\t\tif not tt then\n+\t\t\terror(\"expected value, got EOF\")\n \t\tend\n-\t\t\n-\tend\n-else\n-\tenc[TYPE_TABLE] = function(obj) --table\n-\t\ttables = tables + 1\n-\t\tif not tablesLookup[obj] then\n-\t\t\ttablesLookup[obj] = tables\n-\t\telse\n-\t\t\tAdvDupe2_WriteByte(247)\n-\t\t\tAdvDupe2_WriteShort(tablesLookup[obj])\n-\t\t\treturn\n+\t\tif tt == 0 then\n+\t\t\treturn nil\n \t\tend\n-\t\t\n-\t\tif isArray(obj) then\n-\t\t\tAdvDupe2_WriteByte(254)\n-\t\t\tfor i,v in pairs(obj) do\n-\t\t\t\twrite(v)\n+\t\treturn dec[tt]()\n+\tend\n+\n+\tdec[255] = function() --table\n+\t\tlocal t = {}\n+\t\tlocal k\n+\t\treference = reference + 1\n+\t\tlocal ref = reference\n+\t\trepeat\n+\t\t\tk = read()\n+\t\t\tif k ~= nil then\n+\t\t\t\tt[k] = read()\n \t\t\tend\n-\t\telse\n-\t\t\tAdvDupe2_WriteByte(255)\n-\t\t\tfor k,v in pairs(obj) do\n-\t\t\t\tif(enc[TypeID(k)]!=noserializer and enc[TypeID(v)]!=noserializer)then\n-\t\t\t\t\twrite(k)\n-\t\t\t\t\twrite(v)\n-\t\t\t\tend\n+\t\tuntil (k == nil)\n+\t\ttables[ref] = t\n+\t\treturn t\n+\tend\n+\n+\tdec[254] = function() --array\n+\t\tlocal t = {}\n+\t\tlocal k,v = 0\n+\t\treference = reference + 1\n+\t\tlocal ref = reference\n+\t\trepeat\n+\t\t\tk = k + 1\n+\t\t\tv = read()\n+\t\t\tif(v != nil) then\n+\t\t\t\tt[k] = v\n \t\t\tend\n-\t\tend\n-\t\tAdvDupe2_WriteByte(0)\n+\n+\t\tuntil (v == nil)\n+\t\ttables[ref] = t\n+\t\treturn t\n+\tend\n+\n+\tdec[253] = function()\n+\t\treturn true\n \tend\n-\tenc[TYPE_BOOL] = function(obj) --boolean\n-\t\tAdvDupe2_WriteByte(obj and 253 or 252)\n+\tdec[252] = function()\n+\t\treturn false\n \tend\n-\tenc[TYPE_NUMBER] = function(obj) --number\n-\t\tAdvDupe2_WriteByte(251)\n-\t\tAdvDupe2_WriteDouble(obj)\n+\tdec[251] = function()\n+\t\treturn buff:ReadDouble()\n \tend\n-\tenc[TYPE_VECTOR] = function(obj) --vector\n-\t\tAdvDupe2_WriteByte(250)\n-\t\tAdvDupe2_WriteDouble(obj.x)\n-\t\tAdvDupe2_WriteDouble(obj.y)\n-\t\tAdvDupe2_WriteDouble(obj.z)\n+\tdec[250] = function()\n+\t\treturn Vector(buff:ReadDouble(),buff:ReadDouble(),buff:ReadDouble())\n \tend\n-\tenc[TYPE_ANGLE] = function(obj) --angle\n-\t\tAdvDupe2_WriteByte(249)\n-\t\tAdvDupe2_WriteDouble(obj.p)\n-\t\tAdvDupe2_WriteDouble(obj.y)\n-\t\tAdvDupe2_WriteDouble(obj.r)\n+\tdec[249] = function()\n+\t\treturn Angle(buff:ReadDouble(),buff:ReadDouble(),buff:ReadDouble())\n \tend\n-\tenc[TYPE_STRING] = function(obj) --string\n-\t\t\n-\t\tlen = #obj\n+\tdec[248] = function() --null-terminated string\n+\t\tlocal start = buff:Tell()\n+\t\tlocal slen = 0\n \t\t\n-\t\tif len > 0 and len < 247 then\n-\t\t\tAdvDupe2_WriteByte(len)\n-\t\t\tAdvDupe2_WriteString(obj)\n-\t\telse\n-\t\t\tAdvDupe2_WriteByte(248)\n-\t\t\tAdvDupe2_WriteString(obj)\n-\t\t\tAdvDupe2_WriteByte(0)\n+\t\twhile buff:ReadByte() != 0 do\n+\t\t\tslen = slen + 1\n \t\tend\n \t\t\n+\t\tbuff:Seek(start)\n+\t\t\n+\t\tlocal retv = buff:Read(slen)\n+\t\tif(not retv)then retv=\"\" end\n+\t\tbuff:ReadByte()\n+\n+\t\treturn retv\n+\tend\n+\tdec[247] = function() --table reference\n+\t\treference = reference + 1\n+\t\treturn tables[buff:ReadShort()]\n \tend\n-end\n \n-local function error_nodeserializer()\n-\tbuff:Seek(buff:Tell()-1)\n-\terror(format(\"couldn't find deserializer for type {typeid:%d}\", buff:ReadByte()))\n+\tlocal function vsr()\n+\t\t\n+\t\tbuff:Seek(buff:Tell() - 1)\n+\t\t\n+\t\tslen = buff:ReadByte()\n+\t\t\n+\t\treturn buff:Read(slen)\n+\t\t\n+\tend\n+\n+\tfor i=1,246 do dec[i] = vsr end\n end\n \n-local dec = {}\n-local reference = 0\n-for i=1,255 do dec[i] = error_nodeserializer end\n+do --Version 5\n+\tlocal dec = {}\n+\tlocal reference = 0\n+\tfor i=1,255 do dec[i] = error_nodeserializer end\n \n-local function read()\n-\tlocal tt = buff:ReadByte()\n-\t\n-\tif not tt then\n-\t\terror(\"expected value, got EOF\")\n-\tend\n-\t\n-\tif tt == 0 then\n-\t\treturn nil\n+\tfunction read5()\n+\t\tlocal tt = buff:ReadByte()\n+\t\tif not tt then\n+\t\t\terror(\"expected value, got EOF\")\n+\t\tend\n+\t\tif tt == 0 then\n+\t\t\treturn nil\n+\t\tend\n+\t\treturn dec[tt]()\n \tend\n-\t\n-\treturn dec[tt]()\n-\t\n-end\n \n-dec[255] = function() --table\n-\tlocal t = {}\n-\tlocal k\n-\treference = reference + 1\n-\tlocal ref = reference\n-\n-\trepeat\n+\tdec[255] = function() --table","path":"lua/advdupe2/sh_codec.lua","position":334,"original_position":334,"commit_id":"4d9070c8616bb8cf9bebf6dbf37d9aff1f6aa2a9","original_commit_id":"4d9070c8616bb8cf9bebf6dbf37d9aff1f6aa2a9","user":{"login":"AbigailBuccaneer","id":908758,"node_id":"MDQ6VXNlcjkwODc1OA==","avatar_url":"https://avatars0.githubusercontent.com/u/908758?v=4","gravatar_id":"","url":"https://api.github.com/users/AbigailBuccaneer","html_url":"https://github.com/AbigailBuccaneer","followers_url":"https://api.github.com/users/AbigailBuccaneer/followers","following_url":"https://api.github.com/users/AbigailBuccaneer/following{/other_user}","gists_url":"https://api.github.com/users/AbigailBuccaneer/gists{/gist_id}","starred_url":"https://api.github.com/users/AbigailBuccaneer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AbigailBuccaneer/subscriptions","organizations_url":"https://api.github.com/users/AbigailBuccaneer/orgs","repos_url":"https://api.github.com/users/AbigailBuccaneer/repos","events_url":"https://api.github.com/users/AbigailBuccaneer/events{/privacy}","received_events_url":"https://api.github.com/users/AbigailBuccaneer/received_events","type":"User","site_admin":false},"body":"There's a lot of repetition in these revision 4 and revision 5 decoders, I think it'd make sense to refactor them out into a block of common locals.","created_at":"2018-06-24T18:19:24Z","updated_at":"2018-06-24T18:20:38Z","html_url":"https://github.com/wiremod/advdupe2/pull/138#discussion_r197648456","pull_request_url":"https://api.github.com/repos/wiremod/advdupe2/pulls/138","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/wiremod/advdupe2/pulls/comments/197648456"},"html":{"href":"https://github.com/wiremod/advdupe2/pull/138#discussion_r197648456"},"pull_request":{"href":"https://api.github.com/repos/wiremod/advdupe2/pulls/138"}}},"pull_request":{"url":"https://api.github.com/repos/wiremod/advdupe2/pulls/138","id":194804909,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk0ODA0OTA5","html_url":"https://github.com/wiremod/advdupe2/pull/138","diff_url":"https://github.com/wiremod/advdupe2/pull/138.diff","patch_url":"https://github.com/wiremod/advdupe2/pull/138.patch","issue_url":"https://api.github.com/repos/wiremod/advdupe2/issues/138","number":138,"state":"open","locked":false,"title":"Codec improvement","user":{"login":"thegrb93","id":6713261,"node_id":"MDQ6VXNlcjY3MTMyNjE=","avatar_url":"https://avatars1.githubusercontent.com/u/6713261?v=4","gravatar_id":"","url":"https://api.github.com/users/thegrb93","html_url":"https://github.com/thegrb93","followers_url":"https://api.github.com/users/thegrb93/followers","following_url":"https://api.github.com/users/thegrb93/following{/other_user}","gists_url":"https://api.github.com/users/thegrb93/gists{/gist_id}","starred_url":"https://api.github.com/users/thegrb93/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thegrb93/subscriptions","organizations_url":"https://api.github.com/users/thegrb93/orgs","repos_url":"https://api.github.com/users/thegrb93/repos","events_url":"https://api.github.com/users/thegrb93/events{/privacy}","received_events_url":"https://api.github.com/users/thegrb93/received_events","type":"User","site_admin":false},"body":"Remove pointless module (Doesn't implement WriteULong). Made longer strings able to have null characters without corrupting the file.","created_at":"2018-06-14T07:46:02Z","updated_at":"2018-06-24T18:20:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a021970c15d590f4a7ffe90fd477d2ad5a154dec","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/wiremod/advdupe2/pulls/138/commits","review_comments_url":"https://api.github.com/repos/wiremod/advdupe2/pulls/138/comments","review_comment_url":"https://api.github.com/repos/wiremod/advdupe2/pulls/comments{/number}","comments_url":"https://api.github.com/repos/wiremod/advdupe2/issues/138/comments","statuses_url":"https://api.github.com/repos/wiremod/advdupe2/statuses/4d9070c8616bb8cf9bebf6dbf37d9aff1f6aa2a9","head":{"label":"thegrb93:newcodec2","ref":"newcodec2","sha":"4d9070c8616bb8cf9bebf6dbf37d9aff1f6aa2a9","user":{"login":"thegrb93","id":6713261,"node_id":"MDQ6VXNlcjY3MTMyNjE=","avatar_url":"https://avatars1.githubusercontent.com/u/6713261?v=4","gravatar_id":"","url":"https://api.github.com/users/thegrb93","html_url":"https://github.com/thegrb93","followers_url":"https://api.github.com/users/thegrb93/followers","following_url":"https://api.github.com/users/thegrb93/following{/other_user}","gists_url":"https://api.github.com/users/thegrb93/gists{/gist_id}","starred_url":"https://api.github.com/users/thegrb93/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thegrb93/subscriptions","organizations_url":"https://api.github.com/users/thegrb93/orgs","repos_url":"https://api.github.com/users/thegrb93/repos","events_url":"https://api.github.com/users/thegrb93/events{/privacy}","received_events_url":"https://api.github.com/users/thegrb93/received_events","type":"User","site_admin":false},"repo":{"id":40587047,"node_id":"MDEwOlJlcG9zaXRvcnk0MDU4NzA0Nw==","name":"advdupe2","full_name":"thegrb93/advdupe2","owner":{"login":"thegrb93","id":6713261,"node_id":"MDQ6VXNlcjY3MTMyNjE=","avatar_url":"https://avatars1.githubusercontent.com/u/6713261?v=4","gravatar_id":"","url":"https://api.github.com/users/thegrb93","html_url":"https://github.com/thegrb93","followers_url":"https://api.github.com/users/thegrb93/followers","following_url":"https://api.github.com/users/thegrb93/following{/other_user}","gists_url":"https://api.github.com/users/thegrb93/gists{/gist_id}","starred_url":"https://api.github.com/users/thegrb93/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thegrb93/subscriptions","organizations_url":"https://api.github.com/users/thegrb93/orgs","repos_url":"https://api.github.com/users/thegrb93/repos","events_url":"https://api.github.com/users/thegrb93/events{/privacy}","received_events_url":"https://api.github.com/users/thegrb93/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/thegrb93/advdupe2","description":"Advanced Duplicator 2","fork":true,"url":"https://api.github.com/repos/thegrb93/advdupe2","forks_url":"https://api.github.com/repos/thegrb93/advdupe2/forks","keys_url":"https://api.github.com/repos/thegrb93/advdupe2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/thegrb93/advdupe2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/thegrb93/advdupe2/teams","hooks_url":"https://api.github.com/repos/thegrb93/advdupe2/hooks","issue_events_url":"https://api.github.com/repos/thegrb93/advdupe2/issues/events{/number}","events_url":"https://api.github.com/repos/thegrb93/advdupe2/events","assignees_url":"https://api.github.com/repos/thegrb93/advdupe2/assignees{/user}","branches_url":"https://api.github.com/repos/thegrb93/advdupe2/branches{/branch}","tags_url":"https://api.github.com/repos/thegrb93/advdupe2/tags","blobs_url":"https://api.github.com/repos/thegrb93/advdupe2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/thegrb93/advdupe2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/thegrb93/advdupe2/git/refs{/sha}","trees_url":"https://api.github.com/repos/thegrb93/advdupe2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/thegrb93/advdupe2/statuses/{sha}","languages_url":"https://api.github.com/repos/thegrb93/advdupe2/languages","stargazers_url":"https://api.github.com/repos/thegrb93/advdupe2/stargazers","contributors_url":"https://api.github.com/repos/thegrb93/advdupe2/contributors","subscribers_url":"https://api.github.com/repos/thegrb93/advdupe2/subscribers","subscription_url":"https://api.github.com/repos/thegrb93/advdupe2/subscription","commits_url":"https://api.github.com/repos/thegrb93/advdupe2/commits{/sha}","git_commits_url":"https://api.github.com/repos/thegrb93/advdupe2/git/commits{/sha}","comments_url":"https://api.github.com/repos/thegrb93/advdupe2/comments{/number}","issue_comment_url":"https://api.github.com/repos/thegrb93/advdupe2/issues/comments{/number}","contents_url":"https://api.github.com/repos/thegrb93/advdupe2/contents/{+path}","compare_url":"https://api.github.com/repos/thegrb93/advdupe2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/thegrb93/advdupe2/merges","archive_url":"https://api.github.com/repos/thegrb93/advdupe2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/thegrb93/advdupe2/downloads","issues_url":"https://api.github.com/repos/thegrb93/advdupe2/issues{/number}","pulls_url":"https://api.github.com/repos/thegrb93/advdupe2/pulls{/number}","milestones_url":"https://api.github.com/repos/thegrb93/advdupe2/milestones{/number}","notifications_url":"https://api.github.com/repos/thegrb93/advdupe2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/thegrb93/advdupe2/labels{/name}","releases_url":"https://api.github.com/repos/thegrb93/advdupe2/releases{/id}","deployments_url":"https://api.github.com/repos/thegrb93/advdupe2/deployments","created_at":"2015-08-12T07:39:20Z","updated_at":"2018-06-14T07:42:58Z","pushed_at":"2018-06-14T07:45:10Z","git_url":"git://github.com/thegrb93/advdupe2.git","ssh_url":"git@github.com:thegrb93/advdupe2.git","clone_url":"https://github.com/thegrb93/advdupe2.git","svn_url":"https://github.com/thegrb93/advdupe2","homepage":null,"size":1380,"stargazers_count":0,"watchers_count":0,"language":"Lua","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"wiremod:master","ref":"master","sha":"d06b7e1f7f19ebb0edfd2fb1be94e2b79654febf","user":{"login":"wiremod","id":113164,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMzE2NA==","avatar_url":"https://avatars0.githubusercontent.com/u/113164?v=4","gravatar_id":"","url":"https://api.github.com/users/wiremod","html_url":"https://github.com/wiremod","followers_url":"https://api.github.com/users/wiremod/followers","following_url":"https://api.github.com/users/wiremod/following{/other_user}","gists_url":"https://api.github.com/users/wiremod/gists{/gist_id}","starred_url":"https://api.github.com/users/wiremod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wiremod/subscriptions","organizations_url":"https://api.github.com/users/wiremod/orgs","repos_url":"https://api.github.com/users/wiremod/repos","events_url":"https://api.github.com/users/wiremod/events{/privacy}","received_events_url":"https://api.github.com/users/wiremod/received_events","type":"Organization","site_admin":false},"repo":{"id":17994039,"node_id":"MDEwOlJlcG9zaXRvcnkxNzk5NDAzOQ==","name":"advdupe2","full_name":"wiremod/advdupe2","owner":{"login":"wiremod","id":113164,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMzE2NA==","avatar_url":"https://avatars0.githubusercontent.com/u/113164?v=4","gravatar_id":"","url":"https://api.github.com/users/wiremod","html_url":"https://github.com/wiremod","followers_url":"https://api.github.com/users/wiremod/followers","following_url":"https://api.github.com/users/wiremod/following{/other_user}","gists_url":"https://api.github.com/users/wiremod/gists{/gist_id}","starred_url":"https://api.github.com/users/wiremod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wiremod/subscriptions","organizations_url":"https://api.github.com/users/wiremod/orgs","repos_url":"https://api.github.com/users/wiremod/repos","events_url":"https://api.github.com/users/wiremod/events{/privacy}","received_events_url":"https://api.github.com/users/wiremod/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/wiremod/advdupe2","description":"Advanced Duplicator 2","fork":false,"url":"https://api.github.com/repos/wiremod/advdupe2","forks_url":"https://api.github.com/repos/wiremod/advdupe2/forks","keys_url":"https://api.github.com/repos/wiremod/advdupe2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wiremod/advdupe2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wiremod/advdupe2/teams","hooks_url":"https://api.github.com/repos/wiremod/advdupe2/hooks","issue_events_url":"https://api.github.com/repos/wiremod/advdupe2/issues/events{/number}","events_url":"https://api.github.com/repos/wiremod/advdupe2/events","assignees_url":"https://api.github.com/repos/wiremod/advdupe2/assignees{/user}","branches_url":"https://api.github.com/repos/wiremod/advdupe2/branches{/branch}","tags_url":"https://api.github.com/repos/wiremod/advdupe2/tags","blobs_url":"https://api.github.com/repos/wiremod/advdupe2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wiremod/advdupe2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wiremod/advdupe2/git/refs{/sha}","trees_url":"https://api.github.com/repos/wiremod/advdupe2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wiremod/advdupe2/statuses/{sha}","languages_url":"https://api.github.com/repos/wiremod/advdupe2/languages","stargazers_url":"https://api.github.com/repos/wiremod/advdupe2/stargazers","contributors_url":"https://api.github.com/repos/wiremod/advdupe2/contributors","subscribers_url":"https://api.github.com/repos/wiremod/advdupe2/subscribers","subscription_url":"https://api.github.com/repos/wiremod/advdupe2/subscription","commits_url":"https://api.github.com/repos/wiremod/advdupe2/commits{/sha}","git_commits_url":"https://api.github.com/repos/wiremod/advdupe2/git/commits{/sha}","comments_url":"https://api.github.com/repos/wiremod/advdupe2/comments{/number}","issue_comment_url":"https://api.github.com/repos/wiremod/advdupe2/issues/comments{/number}","contents_url":"https://api.github.com/repos/wiremod/advdupe2/contents/{+path}","compare_url":"https://api.github.com/repos/wiremod/advdupe2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wiremod/advdupe2/merges","archive_url":"https://api.github.com/repos/wiremod/advdupe2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wiremod/advdupe2/downloads","issues_url":"https://api.github.com/repos/wiremod/advdupe2/issues{/number}","pulls_url":"https://api.github.com/repos/wiremod/advdupe2/pulls{/number}","milestones_url":"https://api.github.com/repos/wiremod/advdupe2/milestones{/number}","notifications_url":"https://api.github.com/repos/wiremod/advdupe2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wiremod/advdupe2/labels{/name}","releases_url":"https://api.github.com/repos/wiremod/advdupe2/releases{/id}","deployments_url":"https://api.github.com/repos/wiremod/advdupe2/deployments","created_at":"2014-03-21T20:53:05Z","updated_at":"2018-06-13T15:48:26Z","pushed_at":"2018-06-14T07:46:02Z","git_url":"git://github.com/wiremod/advdupe2.git","ssh_url":"git@github.com:wiremod/advdupe2.git","clone_url":"https://github.com/wiremod/advdupe2.git","svn_url":"https://github.com/wiremod/advdupe2","homepage":"http://wiremod.com","size":1473,"stargazers_count":40,"watchers_count":40,"language":"Lua","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":33,"mirror_url":null,"archived":false,"open_issues_count":46,"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":33,"open_issues":46,"watchers":40,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/wiremod/advdupe2/pulls/138"},"html":{"href":"https://github.com/wiremod/advdupe2/pull/138"},"issue":{"href":"https://api.github.com/repos/wiremod/advdupe2/issues/138"},"comments":{"href":"https://api.github.com/repos/wiremod/advdupe2/issues/138/comments"},"review_comments":{"href":"https://api.github.com/repos/wiremod/advdupe2/pulls/138/comments"},"review_comment":{"href":"https://api.github.com/repos/wiremod/advdupe2/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/wiremod/advdupe2/pulls/138/commits"},"statuses":{"href":"https://api.github.com/repos/wiremod/advdupe2/statuses/4d9070c8616bb8cf9bebf6dbf37d9aff1f6aa2a9"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"AbigailBuccaneer"}}