Status for Dolphin Central

Recent events

2019-01-21T04:31:15.378252	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 147, 'pathname': '/home/central/sadm/central/github.py', 'args': "('dolphin-emu/trusted-developers', 'degasus,aldelaro5,unknownbrackets,Sonicadvance1,adamdmoss,jezze,hdcmeta,linkmauve,archshift,riking,magcius,FioraAeterna,jloehr,RisingFog,RachelBryk,hackbar,Techjar,Helios747,Starsam80,shuffle2,mahdihijazi,magumagu,delroth,spxtr,rukai,rohit-n,leoetlino,zackhow,Linktothepast,Ebola16,stevoisiak,spycrab,BhaaLseN,phire,iwubcode,meffij,galop1n,absolome,comex,JosJuice,mimimi085181,marcan,Armada651,bentley,skidau,Buddybenj,Orphis,shonumi,cylgom,ligfx,sepalani,EmptyChaos,aroulin,Ziek,mrgreywater,kayru,LPFaint99,Tilka,NanoByte011,JMC47,stenzek,JonnyH,MerryMage,Hydr8gon,Alcaro,vladfi1,Tinob,jordan-woyak,yourWaifu,booto,Aestek,clinchergt,kamiyo,mathieui,Ryanel,endrift,gwicks,MayImilae,Zopieux,LAGonauta,Parlane,Phatcat,randomstuff,hrydgard,OrN,moncefmechri,AdmiralCurtiss,glennricster,sigmabeta,Sintendo,hthh,neobrain,mmastrac,lioncash')", 'msg': 'New GH %s: %s'}
2019-01-21T04:31:14.853914	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:31:14.288561	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:31:13.721368	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:31:13.071148	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:31:12.608925	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:31:12.608318	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 132, 'pathname': '/home/central/sadm/central/github.py', 'args': "('dolphin-emu', 'trusted-developers')", 'msg': 'Refreshing list of trusted users (from %s/%s)'}
2019-01-21T04:29:52.987690	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 147, 'pathname': '/home/central/sadm/central/github.py', 'args': "('dolphin-emu/core-developers', 'degasus,Parlane,Sonicadvance1,Armada651,leoetlino,phire,JosJuice,stenzek,linkmauve,delroth,hrydgard,shuffle2,spycrab,Tilka,skidau,Helios747,lioncash')", 'msg': 'New GH %s: %s'}
2019-01-21T04:29:52.434557	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:29:51.900953	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:29:51.900347	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 132, 'pathname': '/home/central/sadm/central/github.py', 'args': "('dolphin-emu', 'core-developers')", 'msg': 'Refreshing list of trusted users (from %s/%s)'}
2019-01-21T04:26:12.507985	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 147, 'pathname': '/home/central/sadm/central/github.py', 'args': "('dolphin-emu/trusted-developers', 'degasus,aldelaro5,unknownbrackets,Sonicadvance1,adamdmoss,jezze,hdcmeta,linkmauve,archshift,riking,magcius,FioraAeterna,jloehr,RisingFog,RachelBryk,hackbar,Techjar,Helios747,Starsam80,shuffle2,mahdihijazi,magumagu,delroth,spxtr,rukai,rohit-n,leoetlino,zackhow,Linktothepast,Ebola16,stevoisiak,spycrab,BhaaLseN,phire,iwubcode,meffij,galop1n,absolome,comex,JosJuice,mimimi085181,marcan,Armada651,bentley,skidau,Buddybenj,Orphis,shonumi,cylgom,ligfx,sepalani,EmptyChaos,aroulin,Ziek,mrgreywater,kayru,LPFaint99,Tilka,NanoByte011,JMC47,stenzek,JonnyH,MerryMage,Hydr8gon,Alcaro,vladfi1,Tinob,jordan-woyak,yourWaifu,booto,Aestek,clinchergt,kamiyo,mathieui,Ryanel,endrift,gwicks,MayImilae,Zopieux,LAGonauta,Parlane,Phatcat,randomstuff,hrydgard,OrN,moncefmechri,AdmiralCurtiss,glennricster,sigmabeta,Sintendo,hthh,neobrain,mmastrac,lioncash')", 'msg': 'New GH %s: %s'}
2019-01-21T04:26:11.997862	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:26:11.463944	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:26:10.926601	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:26:10.341561	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:26:09.893566	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:26:09.892357	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 132, 'pathname': '/home/central/sadm/central/github.py', 'args': "('dolphin-emu', 'trusted-developers')", 'msg': 'Refreshing list of trusted users (from %s/%s)'}
2019-01-21T04:22:16.691297	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:22:16.690623	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 196, 'pathname': '/home/central/sadm/central/github.py', 'args': '()', 'msg': "Watched repo 'dolphin-emu/gcdsp-ida' has our hook installed"}
2019-01-21T04:22:16.212533	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:22:15.647587	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:22:15.646952	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 196, 'pathname': '/home/central/sadm/central/github.py', 'args': '()', 'msg': "Watched repo 'dolphin-emu/hwtests' has our hook installed"}
2019-01-21T04:22:15.178787	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:22:14.670974	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}

Recent 'build_status' events

2019-01-21T02:30:42.575594	{'shortrev': 'bddd0f', 'source': 'prbuilder', 'service': 'default', 'success': False, 'url': '', 'pending': False, 'hash': 'bddd0fb44e7f0765d3446610c703c8e97fd23f80', 'type': 'build_status', 'pr': 7687, 'repo': 'dolphin-emu/dolphin', 'description': 'PR not built because weihuoya is not auto-trusted.'}
2019-01-21T02:18:10.565836	{'shortrev': 'b9aeed', 'source': 'prbuilder', 'service': 'default', 'success': False, 'url': '', 'pending': False, 'hash': 'b9aeed503f8ac3c88ca4a308f0394001799f353b', 'type': 'build_status', 'pr': 7687, 'repo': 'dolphin-emu/dolphin', 'description': 'PR not built because weihuoya is not auto-trusted.'}
2019-01-21T00:35:36.638499	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'pr-win-x64', 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/20/builds/3811', 'pending': False, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Build succeeded on builder pr-win-x64'}
2019-01-21T00:33:40.963897	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'pr-win-x64', 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/20/builds/3811', 'pending': True, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Auto build in progress on builder pr-win-x64'}
2019-01-21T00:33:40.448181	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'pr-win-dbg-x64', 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/7/builds/3797', 'pending': False, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Build succeeded on builder pr-win-dbg-x64'}
2019-01-21T00:33:10.483516	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'pr-android', 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/8/builds/3761', 'pending': False, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Build succeeded on builder pr-android'}
2019-01-21T00:32:48.366515	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'pr-deb-dbg-x64', 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/21/builds/3211', 'pending': False, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Build succeeded on builder pr-deb-dbg-x64'}
2019-01-21T00:32:04.422186	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'pr-deb-dbg-x64', 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/21/builds/3211', 'pending': True, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Auto build in progress on builder pr-deb-dbg-x64'}
2019-01-21T00:32:03.843725	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'pr-deb-x64', 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/6/builds/3225', 'pending': False, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Build succeeded on builder pr-deb-x64'}
2019-01-21T00:31:48.768820	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'pr-android', 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/8/builds/3761', 'pending': True, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Auto build in progress on builder pr-android'}
2019-01-21T00:31:48.217748	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'lint', 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/22/builds/3741', 'pending': False, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Build succeeded on builder lint'}
2019-01-21T00:31:36.260178	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'lint', 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/22/builds/3741', 'pending': True, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Auto build in progress on builder lint'}
2019-01-21T00:31:35.701124	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'pr-ubu-x64', 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/2/builds/3750', 'pending': False, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Build succeeded on builder pr-ubu-x64'}
2019-01-21T00:31:21.000374	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'pr-win-dbg-x64', 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/7/builds/3797', 'pending': True, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Auto build in progress on builder pr-win-dbg-x64'}
2019-01-21T00:31:20.402675	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'pr-ubu-x64', 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/2/builds/3750', 'pending': True, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Auto build in progress on builder pr-ubu-x64'}
2019-01-21T00:31:19.848224	{'shortrev': 'd3b09a', 'source': 'buildbot', 'service': 'pr-deb-x64', 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/6/builds/3225', 'pending': True, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Auto build in progress on builder pr-deb-x64'}
2019-01-21T00:31:09.870873	{'shortrev': 'd3b09a', 'source': 'prbuilder', 'service': 'default', 'success': True, 'url': '', 'pending': False, 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'type': 'build_status', 'pr': 7724, 'repo': 'dolphin-emu/dolphin', 'description': 'Very basic checks passed, handed off to Buildbot.'}
2019-01-21T00:04:40.549583	{'shortrev': 'f663da', 'source': 'buildbot', 'service': 'pr-win-x64', 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/20/builds/3810', 'pending': False, 'hash': 'f663da25cdfcf0a828a44573fb58c8be17bd42be', 'type': 'build_status', 'pr': 7723, 'repo': 'dolphin-emu/dolphin', 'description': 'Build succeeded on builder pr-win-x64'}
2019-01-21T00:02:41.092293	{'shortrev': 'f663da', 'source': 'buildbot', 'service': 'pr-win-x64', 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/20/builds/3810', 'pending': True, 'hash': 'f663da25cdfcf0a828a44573fb58c8be17bd42be', 'type': 'build_status', 'pr': 7723, 'repo': 'dolphin-emu/dolphin', 'description': 'Auto build in progress on builder pr-win-x64'}
2019-01-21T00:02:40.525555	{'shortrev': 'f663da', 'source': 'buildbot', 'service': 'pr-win-dbg-x64', 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/7/builds/3796', 'pending': False, 'hash': 'f663da25cdfcf0a828a44573fb58c8be17bd42be', 'type': 'build_status', 'pr': 7723, 'repo': 'dolphin-emu/dolphin', 'description': 'Build succeeded on builder pr-win-dbg-x64'}
2019-01-21T00:02:14.582549	{'shortrev': 'f663da', 'source': 'buildbot', 'service': 'pr-android', 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/8/builds/3760', 'pending': False, 'hash': 'f663da25cdfcf0a828a44573fb58c8be17bd42be', 'type': 'build_status', 'pr': 7723, 'repo': 'dolphin-emu/dolphin', 'description': 'Build succeeded on builder pr-android'}
2019-01-21T00:01:50.490700	{'shortrev': 'f663da', 'source': 'buildbot', 'service': 'pr-deb-dbg-x64', 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/21/builds/3210', 'pending': False, 'hash': 'f663da25cdfcf0a828a44573fb58c8be17bd42be', 'type': 'build_status', 'pr': 7723, 'repo': 'dolphin-emu/dolphin', 'description': 'Build succeeded on builder pr-deb-dbg-x64'}
2019-01-21T00:01:05.923376	{'shortrev': 'f663da', 'source': 'buildbot', 'service': 'pr-deb-dbg-x64', 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/21/builds/3210', 'pending': True, 'hash': 'f663da25cdfcf0a828a44573fb58c8be17bd42be', 'type': 'build_status', 'pr': 7723, 'repo': 'dolphin-emu/dolphin', 'description': 'Auto build in progress on builder pr-deb-dbg-x64'}
2019-01-21T00:01:05.271338	{'shortrev': 'f663da', 'source': 'buildbot', 'service': 'pr-deb-x64', 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/6/builds/3224', 'pending': False, 'hash': 'f663da25cdfcf0a828a44573fb58c8be17bd42be', 'type': 'build_status', 'pr': 7723, 'repo': 'dolphin-emu/dolphin', 'description': 'Build succeeded on builder pr-deb-x64'}
2019-01-21T00:00:50.448791	{'shortrev': 'f663da', 'source': 'buildbot', 'service': 'pr-android', 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/8/builds/3760', 'pending': True, 'hash': 'f663da25cdfcf0a828a44573fb58c8be17bd42be', 'type': 'build_status', 'pr': 7723, 'repo': 'dolphin-emu/dolphin', 'description': 'Auto build in progress on builder pr-android'}

Recent 'gh_commit_comment' events

2018-12-26T21:12:26.840256	{'commit': '965b5b6b0a74f6d2f0db4fdf258881f5acfc00e3', 'source': 'ghhookparser', 'type': 'gh_commit_comment', 'url': 'https://github.com/dolphin-emu/dolphin/commit/965b5b6b0a74f6d2f0db4fdf258881f5acfc00e3#commitcomment-31784033', 'author': 'AndSalazar3', 'repo': 'dolphin-emu/dolphin'}
2018-12-26T12:00:58.721926	{'commit': 'd1ce8aca9d4fe144aeb5951ddeee68cbf220833c', 'source': 'ghhookparser', 'type': 'gh_commit_comment', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d1ce8aca9d4fe144aeb5951ddeee68cbf220833c#commitcomment-31781119', 'author': 'JMC47', 'repo': 'dolphin-emu/dolphin'}
2018-12-26T11:58:05.229899	{'commit': 'd1ce8aca9d4fe144aeb5951ddeee68cbf220833c', 'source': 'ghhookparser', 'type': 'gh_commit_comment', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d1ce8aca9d4fe144aeb5951ddeee68cbf220833c#commitcomment-31781097', 'author': 'jackrabbit72380', 'repo': 'dolphin-emu/dolphin'}

Recent 'gh_issue_comment' events

2019-01-21T02:33:01.539038	{'safe_author': False, 'source': 'ghhookparser', 'body': 'MSAA values are `1, 2, 4, 8` not `0, 1, 2, 3`.', 'action': 'created', 'author': 'weihuoya', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7687#issuecomment-455930417', 'type': 'gh_issue_comment', 'title': 'Android: some minor changes', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 143, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T02:30:41Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 143, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "- don't mark setting changed with same setting value\r\n- MSAA default is 1 in cpp code\r\n- discard setting with empty setting value\r\n- remove margin in setting activity\r\n- remove no used ApplicationTest.java", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687'}, 'locked': False, 'closed_at': None, 'number': 7687, 'labels': [], 'comments': 4, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQyOTQyMzY2', 'state': 'open', 'updated_at': '2019-01-21T02:33:00Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687', 'created_at': '2019-01-08T11:27:14Z', 'title': 'Android: some minor changes', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/comments', 'id': 396864591}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-21T02:33:00Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687#issuecomment-455930417', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'created_at': '2019-01-21T02:33:00Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455930417', 'body': 'MSAA values are `1, 2, 4, 8` not `0, 1, 2, 3`.', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkzMDQxNw==', 'id': 455930417}}, 'id': 7687}
2019-01-21T02:18:54.311909	{'safe_author': False, 'source': 'ghhookparser', 'body': 'fix MSAA values in `arrays.xml`', 'action': 'created', 'author': 'weihuoya', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7687#issuecomment-455928629', 'type': 'gh_issue_comment', 'title': 'Android: some minor changes', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 143, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T02:18:09Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 143, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "- don't mark setting changed with same setting value\r\n- MSAA default is 1 in cpp code\r\n- discard setting with empty setting value\r\n- remove margin in setting activity\r\n- remove no used ApplicationTest.java", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687'}, 'locked': False, 'closed_at': None, 'number': 7687, 'labels': [], 'comments': 3, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQyOTQyMzY2', 'state': 'open', 'updated_at': '2019-01-21T02:18:53Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687', 'created_at': '2019-01-08T11:27:14Z', 'title': 'Android: some minor changes', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/comments', 'id': 396864591}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-21T02:18:53Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687#issuecomment-455928629', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'created_at': '2019-01-21T02:18:53Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455928629', 'body': 'fix MSAA values in `arrays.xml`', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkyODYyOQ==', 'id': 455928629}}, 'id': 7687}
2019-01-21T02:08:25.874011	{'safe_author': False, 'source': 'ghhookparser', 'body': 'default MSAA is 1 and it mean turn off MSAA, but for Anisotropy 1 mean `2x`.\r\nhttps://github.com/dolphin-emu/dolphin/blob/3627ef8a0489765eb10ab29a7988866b52493239/Source/Core/Core/Config/GraphicsSettings.cpp#L61\r\n', 'action': 'created', 'author': 'weihuoya', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7687#issuecomment-455927269', 'type': 'gh_issue_comment', 'title': 'Android: some minor changes', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 143, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T00:31:08Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 143, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "- don't mark setting changed with same setting value\r\n- MSAA default is 1 in cpp code\r\n- discard setting with empty setting value\r\n- remove margin in setting activity\r\n- remove no used ApplicationTest.java", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687'}, 'locked': False, 'closed_at': None, 'number': 7687, 'labels': [], 'comments': 2, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQyOTQyMzY2', 'state': 'open', 'updated_at': '2019-01-21T02:08:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687', 'created_at': '2019-01-08T11:27:14Z', 'title': 'Android: some minor changes', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/comments', 'id': 396864591}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-21T02:08:25Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687#issuecomment-455927269', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'created_at': '2019-01-21T02:08:25Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455927269', 'body': 'default MSAA is 1 and it mean turn off MSAA, but for Anisotropy 1 mean `2x`.\r\nhttps://github.com/dolphin-emu/dolphin/blob/3627ef8a0489765eb10ab29a7988866b52493239/Source/Core/Core/Config/GraphicsSettings.cpp#L61\r\n', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkyNzI2OQ==', 'id': 455927269}}, 'id': 7687}
2019-01-20T23:57:18.923505	{'safe_author': True, 'source': 'ghhookparser', 'body': "> I believe the Android/Vulkan issue is seperate, and occurs on master?\r\n\r\nNo, on master messages display using Vulkan. \r\n\r\n> And yeah, the scale is only set on qt currently. I'll look into how we can pass it through.\r\n\r\nJosJuice mentioned we could set it on android by [detecting the screen density](https://developer.android.com/reference/android/util/DisplayMetrics.html#scaledDensity) and passing it down, but I don't want that to hold up the PR, so it can be done later. For now hard setting it(where I linked in the previous comment) to 1.5 works for both ATV and phone. ", 'action': 'edited', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#issuecomment-455914727', 'type': 'gh_issue_comment', 'title': 'Replace raster font with dear imgui', 'repo': 'dolphin-emu/dolphin', 'raw': {'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'action': 'edited', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 141, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T23:46:11Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 141, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "This pull request replaces the built-in raster fonts with imgui.\r\n\r\nMainly, this enables better hidpi scaling, and support for translating OSD messages, assuming we load the correct fonts. It also makes use of the abstract textures/pipelines, so we don't need any more backend-specific code.\r\n\r\nIn the future, we can use imgui for other purposes, for example, frame time/statistics graphs, netplay chat, etc.\r\n\r\nMarked WIP because there's still a few things I need to fix up:\r\n\r\n- [x] Hook up input to imgui\r\n- [x] Fix imgui rendering breaking GX rendering on Vulkan\r\n- [x] Fix build on Linux\r\n- [x] Fix fade-out of OSD messages\r\n- [x] Port across all debug stats to imgui window/tables\r\n- [x] Use index buffers for drawing\r\n\r\nA sneak peek for those interested:\r\n\r\n![untitled](https://user-images.githubusercontent.com/11288319/46677529-28322a80-cc26-11e8-988b-bcebaed0daf9.png)\r\n", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478'}, 'locked': False, 'closed_at': None, 'number': 7478, 'labels': [], 'comments': 6, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIxNDcwMDIx', 'state': 'open', 'updated_at': '2019-01-20T23:57:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478', 'created_at': '2018-10-09T14:48:32Z', 'title': 'Replace raster font with dear imgui', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/comments', 'id': 368249868}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'changes': {'body': {'from': "> I believe the Android/Vulkan issue is seperate, and occurs on master?\r\nNo, on master messages display using Vulkan. \r\n\r\n> And yeah, the scale is only set on qt currently. I'll look into how we can pass it through.\r\nJosJuice mentioned we could set it on android by [detecting the screen density](https://developer.android.com/reference/android/util/DisplayMetrics.html#scaledDensity) and passing it down, but I don't want that to hold up the PR, so it can be done later. For now hard setting it(where I linked in the previous comment) to 1.5 works for both ATV and phone. "}}, 'comment': {'author_association': 'MEMBER', 'updated_at': '2019-01-20T23:57:18Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478#issuecomment-455914727', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'created_at': '2019-01-20T23:57:07Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455914727', 'body': "> I believe the Android/Vulkan issue is seperate, and occurs on master?\r\n\r\nNo, on master messages display using Vulkan. \r\n\r\n> And yeah, the scale is only set on qt currently. I'll look into how we can pass it through.\r\n\r\nJosJuice mentioned we could set it on android by [detecting the screen density](https://developer.android.com/reference/android/util/DisplayMetrics.html#scaledDensity) and passing it down, but I don't want that to hold up the PR, so it can be done later. For now hard setting it(where I linked in the previous comment) to 1.5 works for both ATV and phone. ", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkxNDcyNw==', 'id': 455914727}}, 'id': 7478}
2019-01-20T23:57:08.152376	{'safe_author': True, 'source': 'ghhookparser', 'body': "> I believe the Android/Vulkan issue is seperate, and occurs on master?\r\nNo, on master messages display using Vulkan. \r\n\r\n> And yeah, the scale is only set on qt currently. I'll look into how we can pass it through.\r\nJosJuice mentioned we could set it on android by [detecting the screen density](https://developer.android.com/reference/android/util/DisplayMetrics.html#scaledDensity) and passing it down, but I don't want that to hold up the PR, so it can be done later. For now hard setting it(where I linked in the previous comment) to 1.5 works for both ATV and phone. ", 'action': 'created', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#issuecomment-455914727', 'type': 'gh_issue_comment', 'title': 'Replace raster font with dear imgui', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 141, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T23:46:11Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 141, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "This pull request replaces the built-in raster fonts with imgui.\r\n\r\nMainly, this enables better hidpi scaling, and support for translating OSD messages, assuming we load the correct fonts. It also makes use of the abstract textures/pipelines, so we don't need any more backend-specific code.\r\n\r\nIn the future, we can use imgui for other purposes, for example, frame time/statistics graphs, netplay chat, etc.\r\n\r\nMarked WIP because there's still a few things I need to fix up:\r\n\r\n- [x] Hook up input to imgui\r\n- [x] Fix imgui rendering breaking GX rendering on Vulkan\r\n- [x] Fix build on Linux\r\n- [x] Fix fade-out of OSD messages\r\n- [x] Port across all debug stats to imgui window/tables\r\n- [x] Use index buffers for drawing\r\n\r\nA sneak peek for those interested:\r\n\r\n![untitled](https://user-images.githubusercontent.com/11288319/46677529-28322a80-cc26-11e8-988b-bcebaed0daf9.png)\r\n", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478'}, 'locked': False, 'closed_at': None, 'number': 7478, 'labels': [], 'comments': 5, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIxNDcwMDIx', 'state': 'open', 'updated_at': '2019-01-20T23:57:07Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478', 'created_at': '2018-10-09T14:48:32Z', 'title': 'Replace raster font with dear imgui', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/comments', 'id': 368249868}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'MEMBER', 'updated_at': '2019-01-20T23:57:07Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478#issuecomment-455914727', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'created_at': '2019-01-20T23:57:07Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455914727', 'body': "> I believe the Android/Vulkan issue is seperate, and occurs on master?\r\nNo, on master messages display using Vulkan. \r\n\r\n> And yeah, the scale is only set on qt currently. I'll look into how we can pass it through.\r\nJosJuice mentioned we could set it on android by [detecting the screen density](https://developer.android.com/reference/android/util/DisplayMetrics.html#scaledDensity) and passing it down, but I don't want that to hold up the PR, so it can be done later. For now hard setting it(where I linked in the previous comment) to 1.5 works for both ATV and phone. ", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkxNDcyNw==', 'id': 455914727}}, 'id': 7478}
2019-01-20T23:48:15.936296	{'safe_author': True, 'source': 'ghhookparser', 'body': "I believe the Android/Vulkan issue is seperate, and occurs on master?\r\n\r\nAnd yeah, the scale is only set on qt currently. I'll look into how we can pass it through.", 'action': 'created', 'author': 'stenzek', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#issuecomment-455914109', 'type': 'gh_issue_comment', 'title': 'Replace raster font with dear imgui', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 141, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T23:46:11Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 141, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "This pull request replaces the built-in raster fonts with imgui.\r\n\r\nMainly, this enables better hidpi scaling, and support for translating OSD messages, assuming we load the correct fonts. It also makes use of the abstract textures/pipelines, so we don't need any more backend-specific code.\r\n\r\nIn the future, we can use imgui for other purposes, for example, frame time/statistics graphs, netplay chat, etc.\r\n\r\nMarked WIP because there's still a few things I need to fix up:\r\n\r\n- [x] Hook up input to imgui\r\n- [x] Fix imgui rendering breaking GX rendering on Vulkan\r\n- [x] Fix build on Linux\r\n- [x] Fix fade-out of OSD messages\r\n- [x] Port across all debug stats to imgui window/tables\r\n- [x] Use index buffers for drawing\r\n\r\nA sneak peek for those interested:\r\n\r\n![untitled](https://user-images.githubusercontent.com/11288319/46677529-28322a80-cc26-11e8-988b-bcebaed0daf9.png)\r\n", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478'}, 'locked': False, 'closed_at': None, 'number': 7478, 'labels': [], 'comments': 4, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIxNDcwMDIx', 'state': 'open', 'updated_at': '2019-01-20T23:48:15Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478', 'created_at': '2018-10-09T14:48:32Z', 'title': 'Replace raster font with dear imgui', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/comments', 'id': 368249868}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-20T23:48:15Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478#issuecomment-455914109', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'created_at': '2019-01-20T23:48:15Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455914109', 'body': "I believe the Android/Vulkan issue is seperate, and occurs on master?\r\n\r\nAnd yeah, the scale is only set on qt currently. I'll look into how we can pass it through.", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkxNDEwOQ==', 'id': 455914109}}, 'id': 7478}
2019-01-20T23:30:16.481667	{'safe_author': False, 'source': 'ghhookparser', 'body': "If feels that **Settings** should not have knowledge about the menu, so maybe let's not go that way for now.\r\n\r\n\r\nI guess we could add the following two functions:\r\n- `static MenuBar* MenuBar::GetMenuBar()`\r\n- `QMenu* MenuBar::GetListColumnsMenu() const`\r\n\r\nSo we could do something like:\r\n```\r\nQMenu* list_columns_menu = MenuBar::GetMenuBar()->GetListColumnsMenu();\r\n```\r\n(with null pointer checks)\r\n\r\nIn the `MenuBar::MenuBar()` constructor, we could store the instance in a static member of the class (e.g. `static QPointer<MenuBar> MenuBar::s_menu_bar`). Using a **QPointer** container will ensure that the pointer is nullified when the object is destroyed.\r\n\r\nThoughts?", 'action': 'created', 'author': 'cristian64', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7718#issuecomment-455912895', 'type': 'gh_issue_comment', 'title': 'Qt/MainWindow: Also display "List Columns" menu via right-click on table\'s header.', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 141, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T21:01:55Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 141, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'Probably right-clicking on the header is the first action that users attempt to take to hide/show columns.', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7718.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7718', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7718.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7718'}, 'locked': False, 'closed_at': None, 'number': 7718, 'labels': [], 'comments': 2, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MDgzNzA5', 'state': 'open', 'updated_at': '2019-01-20T23:30:15Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7718', 'created_at': '2019-01-20T02:35:45Z', 'title': 'Qt/MainWindow: Also display "List Columns" menu via right-click on table\'s header.', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718/comments', 'id': 401055909}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-20T23:30:15Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7718#issuecomment-455912895', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718', 'created_at': '2019-01-20T23:30:15Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455912895', 'body': "If feels that **Settings** should not have knowledge about the menu, so maybe let's not go that way for now.\r\n\r\n\r\nI guess we could add the following two functions:\r\n- `static MenuBar* MenuBar::GetMenuBar()`\r\n- `QMenu* MenuBar::GetListColumnsMenu() const`\r\n\r\nSo we could do something like:\r\n```\r\nQMenu* list_columns_menu = MenuBar::GetMenuBar()->GetListColumnsMenu();\r\n```\r\n(with null pointer checks)\r\n\r\nIn the `MenuBar::MenuBar()` constructor, we could store the instance in a static member of the class (e.g. `static QPointer<MenuBar> MenuBar::s_menu_bar`). Using a **QPointer** container will ensure that the pointer is nullified when the object is destroyed.\r\n\r\nThoughts?", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkxMjg5NQ==', 'id': 455912895}}, 'id': 7718}
2019-01-20T21:11:26.161109	{'safe_author': True, 'source': 'ghhookparser', 'body': '@dolphin-emu-bot rebuild', 'action': 'created', 'author': 'JMC47', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7722#issuecomment-455902799', 'type': 'gh_issue_comment', 'title': 'General GameCubePane improvements', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1174, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1174, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 141, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T21:01:55Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 141, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'I tried to simplify the combo box menu entry translations (by removing the big enum at the beginning).\r\nThis change also fixes parent memory management of widgets, update loops and adds an options button for SP1 devices (Broadband adapter now allows change of MAC address).\r\n\r\n![image](https://user-images.githubusercontent.com/10342708/51444935-d7d76800-1cfe-11e9-93fa-cf3c45002603.png)', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7722', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7722/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/0xFEEDC0DE64/followers', 'url': 'https://api.github.com/users/0xFEEDC0DE64', 'organizations_url': 'https://api.github.com/users/0xFEEDC0DE64/orgs', 'node_id': 'MDQ6VXNlcjEwMzQyNzA4', 'events_url': 'https://api.github.com/users/0xFEEDC0DE64/events{/privacy}', 'repos_url': 'https://api.github.com/users/0xFEEDC0DE64/repos', 'gists_url': 'https://api.github.com/users/0xFEEDC0DE64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/0xFEEDC0DE64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/0xFEEDC0DE64/following{/other_user}', 'html_url': 'https://github.com/0xFEEDC0DE64', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/10342708?v=4', 'login': '0xFEEDC0DE64', 'subscriptions_url': 'https://api.github.com/users/0xFEEDC0DE64/subscriptions', 'starred_url': 'https://api.github.com/users/0xFEEDC0DE64/starred{/owner}{/repo}', 'id': 10342708}, 'author_association': 'NONE', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7722/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7722.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7722', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7722.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7722'}, 'locked': False, 'closed_at': None, 'number': 7722, 'labels': [], 'comments': 0, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTM0NDU4', 'state': 'open', 'updated_at': '2019-01-20T21:11:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7722', 'created_at': '2019-01-20T21:01:54Z', 'title': 'General GameCubePane improvements', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7722/comments', 'id': 401138647}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/JMC47/followers', 'url': 'https://api.github.com/users/JMC47', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'html_url': 'https://github.com/JMC47', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6598209?v=4', 'login': 'JMC47', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'id': 6598209}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-20T21:11:25Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/JMC47/followers', 'url': 'https://api.github.com/users/JMC47', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'html_url': 'https://github.com/JMC47', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6598209?v=4', 'login': 'JMC47', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'id': 6598209}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7722#issuecomment-455902799', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7722', 'created_at': '2019-01-20T21:11:25Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455902799', 'body': '@dolphin-emu-bot rebuild', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkwMjc5OQ==', 'id': 455902799}}, 'id': 7722}
2019-01-20T19:44:31.563083	{'safe_author': True, 'source': 'ghhookparser', 'body': '~~Just noticed that the manifest handling needs to be changed too. So this is WIP at the moment.~~\r\n\r\nNow it makes the following assumptions (require directory changes, new stuff in **bold**):\r\n\r\n* Manifests are now located at: update.dolphin-emu.org/**platform**/hash(0..2)/hash(2..4)/hash(4..)\r\n* Contents are located at: update.dolphin-emu.org/content/**platform**/', 'action': 'edited', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/www/pull/96#issuecomment-455894391', 'type': 'gh_issue_comment', 'title': 'update: Implement Updater API v1', 'repo': 'dolphin-emu/www', 'raw': {'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'action': 'edited', 'repository': {'forks_count': 36, 'events_url': 'https://api.github.com/repos/dolphin-emu/www/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/www/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/www/languages', 'git_url': 'git://github.com/dolphin-emu/www.git', 'name': 'www', 'watchers_count': 47, 'forks': 36, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/www/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/www/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 47, 'labels_url': 'https://api.github.com/repos/dolphin-emu/www/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/www/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/www/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/www/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/www/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/www/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/www/tags', 'stargazers_count': 47, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzNzk4Mw==', 'clone_url': 'https://github.com/dolphin-emu/www.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/www/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/www/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/www', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/www/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/www/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/www/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/www', 'open_issues_count': 19, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/www/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/www/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/www/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/www/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/www', 'trees_url': 'https://api.github.com/repos/dolphin-emu/www/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/www/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/www/assignees{/user}', 'pushed_at': '2019-01-20T19:40:32Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/www', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/www/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/www/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/www/issues{/number}', 'size': 2621, 'open_issues': 19, 'license': {'node_id': 'MDc6TGljZW5zZTEz', 'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit'}, 'description': 'Dolphin Emulator official website source code (running on https://dolphin-emu.org/)', 'releases_url': 'https://api.github.com/repos/dolphin-emu/www/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/www.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/www/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/www/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/www/forks', 'default_branch': 'stable', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/www/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/www/{archive_format}{/ref}', 'updated_at': '2019-01-08T06:20:53Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/www/statuses/{sha}', 'created_at': '2013-07-19T21:56:54Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/www/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/www/git/refs{/sha}', 'id': 11537983}, 'issue': {'assignees': [], 'body': 'Changes:\r\n- `` /update/v1/<track>/<hash>/<platform>`` - Now takes a platform parameter (Either ``macos``or ``win``)\r\n- ``_check_on_auto_maintained_track`` and ``_check_on_manually_maintained_track`` now support handling different platforms\r\n\r\nThe API remains 100% backwards compatible to ``v0``.', 'url': 'https://api.github.com/repos/dolphin-emu/www/issues/96', 'events_url': 'https://api.github.com/repos/dolphin-emu/www/issues/96/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/www/issues/96/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/www', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/www/pull/96.patch', 'url': 'https://api.github.com/repos/dolphin-emu/www/pulls/96', 'diff_url': 'https://github.com/dolphin-emu/www/pull/96.diff', 'html_url': 'https://github.com/dolphin-emu/www/pull/96'}, 'locked': False, 'closed_at': None, 'number': 96, 'labels': [], 'comments': 1, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTI3ODM5', 'state': 'open', 'updated_at': '2019-01-20T19:44:30Z', 'html_url': 'https://github.com/dolphin-emu/www/pull/96', 'created_at': '2019-01-20T18:59:31Z', 'title': 'update: Implement Updater API v1', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/www/issues/96/comments', 'id': 401127993}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'changes': {'body': {'from': 'Just noticed that the manifest handling needs to be changed too. So this is WIP at the moment.'}}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-20T19:44:30Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'html_url': 'https://github.com/dolphin-emu/www/pull/96#issuecomment-455894391', 'issue_url': 'https://api.github.com/repos/dolphin-emu/www/issues/96', 'created_at': '2019-01-20T19:25:17Z', 'url': 'https://api.github.com/repos/dolphin-emu/www/issues/comments/455894391', 'body': '~~Just noticed that the manifest handling needs to be changed too. So this is WIP at the moment.~~\r\n\r\nNow it makes the following assumptions (require directory changes, new stuff in **bold**):\r\n\r\n* Manifests are now located at: update.dolphin-emu.org/**platform**/hash(0..2)/hash(2..4)/hash(4..)\r\n* Contents are located at: update.dolphin-emu.org/content/**platform**/', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTg5NDM5MQ==', 'id': 455894391}}, 'id': 96}
2019-01-20T19:25:18.698155	{'safe_author': True, 'source': 'ghhookparser', 'body': 'Just noticed that the manifest handling needs to be changed too. So this is WIP at the moment.', 'action': 'created', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/www/pull/96#issuecomment-455894391', 'type': 'gh_issue_comment', 'title': 'update: Implement Updater API v1', 'repo': 'dolphin-emu/www', 'raw': {'action': 'created', 'repository': {'forks_count': 36, 'events_url': 'https://api.github.com/repos/dolphin-emu/www/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/www/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/www/languages', 'git_url': 'git://github.com/dolphin-emu/www.git', 'name': 'www', 'watchers_count': 47, 'forks': 36, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/www/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/www/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 47, 'labels_url': 'https://api.github.com/repos/dolphin-emu/www/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/www/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/www/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/www/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/www/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/www/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/www/tags', 'stargazers_count': 47, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzNzk4Mw==', 'clone_url': 'https://github.com/dolphin-emu/www.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/www/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/www/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/www', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/www/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/www/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/www/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/www', 'open_issues_count': 19, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/www/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/www/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/www/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/www/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/www', 'trees_url': 'https://api.github.com/repos/dolphin-emu/www/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/www/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/www/assignees{/user}', 'pushed_at': '2019-01-20T18:59:32Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/www', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/www/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/www/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/www/issues{/number}', 'size': 2621, 'open_issues': 19, 'license': {'node_id': 'MDc6TGljZW5zZTEz', 'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit'}, 'description': 'Dolphin Emulator official website source code (running on https://dolphin-emu.org/)', 'releases_url': 'https://api.github.com/repos/dolphin-emu/www/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/www.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/www/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/www/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/www/forks', 'default_branch': 'stable', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/www/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/www/{archive_format}{/ref}', 'updated_at': '2019-01-08T06:20:53Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/www/statuses/{sha}', 'created_at': '2013-07-19T21:56:54Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/www/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/www/git/refs{/sha}', 'id': 11537983}, 'issue': {'assignees': [], 'body': 'Changes:\r\n- `` /update/v1/<track>/<hash>/<platform>`` - Now takes a platform parameter (Either ``macos``or ``win``)\r\n- ``_check_on_auto_maintained_track`` and ``_check_on_manually_maintained_track`` now support handling different platforms\r\n\r\nThe API remains 100% backwards compatible to ``v0``.', 'url': 'https://api.github.com/repos/dolphin-emu/www/issues/96', 'events_url': 'https://api.github.com/repos/dolphin-emu/www/issues/96/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/www/issues/96/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/www', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/www/pull/96.patch', 'url': 'https://api.github.com/repos/dolphin-emu/www/pulls/96', 'diff_url': 'https://github.com/dolphin-emu/www/pull/96.diff', 'html_url': 'https://github.com/dolphin-emu/www/pull/96'}, 'locked': False, 'closed_at': None, 'number': 96, 'labels': [], 'comments': 0, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTI3ODM5', 'state': 'open', 'updated_at': '2019-01-20T19:25:17Z', 'html_url': 'https://github.com/dolphin-emu/www/pull/96', 'created_at': '2019-01-20T18:59:31Z', 'title': 'update: Implement Updater API v1', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/www/issues/96/comments', 'id': 401127993}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-20T19:25:17Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'html_url': 'https://github.com/dolphin-emu/www/pull/96#issuecomment-455894391', 'issue_url': 'https://api.github.com/repos/dolphin-emu/www/issues/96', 'created_at': '2019-01-20T19:25:17Z', 'url': 'https://api.github.com/repos/dolphin-emu/www/issues/comments/455894391', 'body': 'Just noticed that the manifest handling needs to be changed too. So this is WIP at the moment.', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTg5NDM5MQ==', 'id': 455894391}}, 'id': 96}
2019-01-20T17:23:31.228315	{'safe_author': True, 'source': 'ghhookparser', 'body': "Not sure on the MSAA setting. Setting the default to 1 in android makes it '2x', not '1x'(where 0 is '1x'). And it looks like Qt defaults to '1x'.\r\n\r\nOther than that LGTM.", 'action': 'created', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7687#issuecomment-455884922', 'type': 'gh_issue_comment', 'title': 'Android: some minor changes', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1174, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1174, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 140, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T17:15:01Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 140, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "- don't mark setting changed with same setting value\r\n- MSAA default is 1 in cpp code\r\n- discard setting with empty setting value\r\n- remove margin in setting activity\r\n- remove no used ApplicationTest.java", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687'}, 'locked': False, 'closed_at': None, 'number': 7687, 'labels': [], 'comments': 1, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQyOTQyMzY2', 'state': 'open', 'updated_at': '2019-01-20T17:23:30Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687', 'created_at': '2019-01-08T11:27:14Z', 'title': 'Android: some minor changes', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/comments', 'id': 396864591}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'MEMBER', 'updated_at': '2019-01-20T17:23:30Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687#issuecomment-455884922', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'created_at': '2019-01-20T17:23:30Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455884922', 'body': "Not sure on the MSAA setting. Setting the default to 1 in android makes it '2x', not '1x'(where 0 is '1x'). And it looks like Qt defaults to '1x'.\r\n\r\nOther than that LGTM.", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTg4NDkyMg==', 'id': 455884922}}, 'id': 7687}
2019-01-20T17:13:36.880241	{'safe_author': True, 'source': 'ghhookparser', 'body': "Tested on android. Vulkan doesn't work. OpenGL works but looks really small on a phone. Looks great on AndroidTV. \r\n\r\nI tested setting the scale to 1.5([below the linked line](https://github.com/dolphin-emu/dolphin/blob/89a6b573a1f86ba7122d2624c4f0600f67c605ee/Source/Android/jni/MainAndroid.cpp#L598)) on both a phone and ATV and it looked good for now.  Can always go back and add hooks to check if running on ATV.\r\n\r\n", 'action': 'created', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#issuecomment-455884181', 'type': 'gh_issue_comment', 'title': 'Replace raster font with dear imgui', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1174, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1174, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 140, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T16:38:56Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 140, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "This pull request replaces the built-in raster fonts with imgui.\r\n\r\nMainly, this enables better hidpi scaling, and support for translating OSD messages, assuming we load the correct fonts. It also makes use of the abstract textures/pipelines, so we don't need any more backend-specific code.\r\n\r\nIn the future, we can use imgui for other purposes, for example, frame time/statistics graphs, netplay chat, etc.\r\n\r\nMarked WIP because there's still a few things I need to fix up:\r\n\r\n- [x] Hook up input to imgui\r\n- [x] Fix imgui rendering breaking GX rendering on Vulkan\r\n- [x] Fix build on Linux\r\n- [x] Fix fade-out of OSD messages\r\n- [x] Port across all debug stats to imgui window/tables\r\n- [x] Use index buffers for drawing\r\n\r\nA sneak peek for those interested:\r\n\r\n![untitled](https://user-images.githubusercontent.com/11288319/46677529-28322a80-cc26-11e8-988b-bcebaed0daf9.png)\r\n", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478'}, 'locked': False, 'closed_at': None, 'number': 7478, 'labels': [], 'comments': 3, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIxNDcwMDIx', 'state': 'open', 'updated_at': '2019-01-20T17:13:36Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478', 'created_at': '2018-10-09T14:48:32Z', 'title': 'Replace raster font with dear imgui', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/comments', 'id': 368249868}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'MEMBER', 'updated_at': '2019-01-20T17:13:36Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478#issuecomment-455884181', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'created_at': '2019-01-20T17:13:36Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455884181', 'body': "Tested on android. Vulkan doesn't work. OpenGL works but looks really small on a phone. Looks great on AndroidTV. \r\n\r\nI tested setting the scale to 1.5([below the linked line](https://github.com/dolphin-emu/dolphin/blob/89a6b573a1f86ba7122d2624c4f0600f67c605ee/Source/Android/jni/MainAndroid.cpp#L598)) on both a phone and ATV and it looked good for now.  Can always go back and add hooks to check if running on ATV.\r\n\r\n", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTg4NDE4MQ==', 'id': 455884181}}, 'id': 7478}
2019-01-20T17:12:49.160184	{'safe_author': True, 'source': 'ghhookparser', 'body': '@spycrab Was there any particular reason why Qt had padding between the game list entries to begin with? To me it just seemed like an unexplained change compared to wx.', 'action': 'created', 'author': 'JosJuice', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7720#issuecomment-455884118', 'type': 'gh_issue_comment', 'title': 'Qt/MainWindow: Add "Compact View" option that minimizes tool bar size and game list\'s default row height.', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1174, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1174, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 140, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T16:38:56Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 140, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'Fixes https://bugs.dolphin-emu.org/issues/11305. Also, it minimizes the tool bar size when in Compact View.\r\n\r\n![compact view](https://user-images.githubusercontent.com/1853278/51441812-89f63c00-1ccd-11e9-9bc7-49bada99bf72.gif)\r\n', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7720', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7720/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7720/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7720.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7720', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7720.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7720'}, 'locked': False, 'closed_at': None, 'number': 7720, 'labels': [], 'comments': 0, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTE4MjU1', 'state': 'open', 'updated_at': '2019-01-20T17:12:48Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7720', 'created_at': '2019-01-20T16:08:47Z', 'title': 'Qt/MainWindow: Add "Compact View" option that minimizes tool bar size and game list\'s default row height.', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7720/comments', 'id': 401112225}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'url': 'https://api.github.com/users/JosJuice', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'html_url': 'https://github.com/JosJuice', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6716818?v=4', 'login': 'JosJuice', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'id': 6716818}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-20T17:12:48Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'url': 'https://api.github.com/users/JosJuice', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'html_url': 'https://github.com/JosJuice', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6716818?v=4', 'login': 'JosJuice', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'id': 6716818}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7720#issuecomment-455884118', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7720', 'created_at': '2019-01-20T17:12:48Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455884118', 'body': '@spycrab Was there any particular reason why Qt had padding between the game list entries to begin with? To me it just seemed like an unexplained change compared to wx.', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTg4NDExOA==', 'id': 455884118}}, 'id': 7720}
2019-01-20T16:29:07.171481	{'safe_author': True, 'source': 'ghhookparser', 'body': '@dolphin-emu-bot rebuild', 'action': 'deleted', 'author': 'JosJuice', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7721#issuecomment-455880663', 'type': 'gh_issue_comment', 'title': 'Update GeckoCodes code download to use https', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'deleted', 'repository': {'forks_count': 1174, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1174, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 140, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T16:27:27Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 140, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T12:02:53Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'The WiiRD codes respository at https://geckocodes.org has started using HTTPS, and 301 Redirecting traffic from HTTP to HTTPS.  The HTTP client does not appear to be able to handle a 301 Redirect and instead fails when attempting to download codes. This pull request is purely a string replacement to set the URL as HTTPS.', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7721', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7721/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/belthesar/followers', 'url': 'https://api.github.com/users/belthesar', 'organizations_url': 'https://api.github.com/users/belthesar/orgs', 'node_id': 'MDQ6VXNlcjE3NjU0MjI=', 'events_url': 'https://api.github.com/users/belthesar/events{/privacy}', 'repos_url': 'https://api.github.com/users/belthesar/repos', 'gists_url': 'https://api.github.com/users/belthesar/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/belthesar/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/belthesar/following{/other_user}', 'html_url': 'https://github.com/belthesar', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1765422?v=4', 'login': 'belthesar', 'subscriptions_url': 'https://api.github.com/users/belthesar/subscriptions', 'starred_url': 'https://api.github.com/users/belthesar/starred{/owner}{/repo}', 'id': 1765422}, 'author_association': 'NONE', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7721/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7721.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7721', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7721.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7721'}, 'locked': False, 'closed_at': None, 'number': 7721, 'labels': [], 'comments': 1, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTE5Mjg4', 'state': 'open', 'updated_at': '2019-01-20T16:28:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7721', 'created_at': '2019-01-20T16:27:26Z', 'title': 'Update GeckoCodes code download to use https', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7721/comments', 'id': 401113960}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'url': 'https://api.github.com/users/JosJuice', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'html_url': 'https://github.com/JosJuice', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6716818?v=4', 'login': 'JosJuice', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'id': 6716818}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-20T16:28:58Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'url': 'https://api.github.com/users/JosJuice', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'html_url': 'https://github.com/JosJuice', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6716818?v=4', 'login': 'JosJuice', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'id': 6716818}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7721#issuecomment-455880663', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7721', 'created_at': '2019-01-20T16:28:58Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455880663', 'body': '@dolphin-emu-bot rebuild', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTg4MDY2Mw==', 'id': 455880663}}, 'id': 7721}
2019-01-20T16:28:59.659421	{'safe_author': True, 'source': 'ghhookparser', 'body': '@dolphin-emu-bot rebuild', 'action': 'created', 'author': 'JosJuice', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7721#issuecomment-455880663', 'type': 'gh_issue_comment', 'title': 'Update GeckoCodes code download to use https', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1174, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1174, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 140, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T16:27:27Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 140, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T12:02:53Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'The WiiRD codes respository at https://geckocodes.org has started using HTTPS, and 301 Redirecting traffic from HTTP to HTTPS.  The HTTP client does not appear to be able to handle a 301 Redirect and instead fails when attempting to download codes. This pull request is purely a string replacement to set the URL as HTTPS.', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7721', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7721/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/belthesar/followers', 'url': 'https://api.github.com/users/belthesar', 'organizations_url': 'https://api.github.com/users/belthesar/orgs', 'node_id': 'MDQ6VXNlcjE3NjU0MjI=', 'events_url': 'https://api.github.com/users/belthesar/events{/privacy}', 'repos_url': 'https://api.github.com/users/belthesar/repos', 'gists_url': 'https://api.github.com/users/belthesar/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/belthesar/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/belthesar/following{/other_user}', 'html_url': 'https://github.com/belthesar', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1765422?v=4', 'login': 'belthesar', 'subscriptions_url': 'https://api.github.com/users/belthesar/subscriptions', 'starred_url': 'https://api.github.com/users/belthesar/starred{/owner}{/repo}', 'id': 1765422}, 'author_association': 'NONE', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7721/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7721.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7721', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7721.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7721'}, 'locked': False, 'closed_at': None, 'number': 7721, 'labels': [], 'comments': 0, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTE5Mjg4', 'state': 'open', 'updated_at': '2019-01-20T16:28:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7721', 'created_at': '2019-01-20T16:27:26Z', 'title': 'Update GeckoCodes code download to use https', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7721/comments', 'id': 401113960}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'url': 'https://api.github.com/users/JosJuice', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'html_url': 'https://github.com/JosJuice', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6716818?v=4', 'login': 'JosJuice', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'id': 6716818}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-20T16:28:58Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'url': 'https://api.github.com/users/JosJuice', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'html_url': 'https://github.com/JosJuice', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6716818?v=4', 'login': 'JosJuice', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'id': 6716818}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7721#issuecomment-455880663', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7721', 'created_at': '2019-01-20T16:28:58Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455880663', 'body': '@dolphin-emu-bot rebuild', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTg4MDY2Mw==', 'id': 455880663}}, 'id': 7721}
2019-01-20T15:58:56.154922	{'safe_author': False, 'source': 'ghhookparser', 'body': "@spycrab Sorry, I've now discovered that the issue existed and it was assigned to you here: https://bugs.dolphin-emu.org/issues/11429", 'action': 'created', 'author': 'cristian64', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7718#issuecomment-455878154', 'type': 'gh_issue_comment', 'title': 'Qt/MainWindow: Also display "List Columns" menu via right-click on table\'s header.', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1173, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1173, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 138, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T14:51:32Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 138, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T12:02:53Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'Probably right-clicking on the header is the first action that users attempt to take to hide/show columns.', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7718.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7718', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7718.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7718'}, 'locked': False, 'closed_at': None, 'number': 7718, 'labels': [], 'comments': 0, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MDgzNzA5', 'state': 'open', 'updated_at': '2019-01-20T15:58:55Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7718', 'created_at': '2019-01-20T02:35:45Z', 'title': 'Qt/MainWindow: Also display "List Columns" menu via right-click on table\'s header.', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718/comments', 'id': 401055909}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-20T15:58:55Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7718#issuecomment-455878154', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718', 'created_at': '2019-01-20T15:58:55Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455878154', 'body': "@spycrab Sorry, I've now discovered that the issue existed and it was assigned to you here: https://bugs.dolphin-emu.org/issues/11429", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTg3ODE1NA==', 'id': 455878154}}, 'id': 7718}
2019-01-20T12:10:24.715768	{'safe_author': True, 'source': 'ghhookparser', 'body': '@BhaaLseN Yeah a lot of stuff will be moved to some form of ``UpdaterCommon`` soon.\r\nBut I wanted to create this PR without messing with the existing Windows Updater at first if things go south.', 'action': 'created', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717#issuecomment-455861184', 'type': 'gh_issue_comment', 'title': 'Implement MacOS Updater', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1173, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1173, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 138, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T12:05:00Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 138, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T12:02:53Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': '**Obviously won\'t work without some infrastructure changes in sadm**\r\n\r\nScreenshots:\r\n<img width="615" alt="screen shot 2019-01-20 at 01 03 02" src="https://user-images.githubusercontent.com/1440715/51434359-2df4ce80-1c5f-11e9-8214-350cf3425a46.png">\r\n<img width="592" alt="screen shot 2019-01-19 at 22 56 55" src="https://user-images.githubusercontent.com/1440715/51434362-32b98280-1c5f-11e9-9e16-75b2fe327a2a.png">\r\n\r\nTODO:\r\n- [ ] Adapt infrastructure to support macOS\r\n- [ ] Hide the second Dolphin Updater App', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7717', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7717/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7717/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7717.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7717.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7717'}, 'locked': False, 'closed_at': None, 'number': 7717, 'labels': [], 'comments': 0, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MDgyNjI5', 'state': 'open', 'updated_at': '2019-01-20T12:10:23Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7717', 'created_at': '2019-01-20T01:59:01Z', 'title': 'Implement MacOS Updater', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7717/comments', 'id': 401054024}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-20T12:10:23Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7717#issuecomment-455861184', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7717', 'created_at': '2019-01-20T12:10:23Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455861184', 'body': '@BhaaLseN Yeah a lot of stuff will be moved to some form of ``UpdaterCommon`` soon.\r\nBut I wanted to create this PR without messing with the existing Windows Updater at first if things go south.', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTg2MTE4NA==', 'id': 455861184}}, 'id': 7717}
2019-01-19T13:27:45.439470	{'safe_author': False, 'source': 'ghhookparser', 'body': "It seems it depends on the connection type (https://doc.qt.io/qt-5/signalsandslots.html#signals). In this case, you are right, slots would be executed immediately as I believe they'd be running in the same thread and all (i.e. direct connection type).\r\n\r\nThere was some discussion here: https://stackoverflow.com/questions/8455887/stack-object-qt-signal-and-parameter-as-reference. I guess I wouldn't use signals with output parameters in my own application, just to be safe.", 'action': 'created', 'author': 'cristian64', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455780338', 'type': 'gh_issue_comment', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1171, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1171, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 134, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-19T13:01:51Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 134, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-19T13:10:45Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'Because the **GameListModel** was never destroyed, its **GameTracker** instance outlived the **Config** module, which led to some crashes on shutdown.\r\n\r\nThe fix consists of binding the lifespan of **GameListModel** to the **GameList** instance, ensuring that the **GameTracker** is indeed destructed.\r\n\r\nIn order to be able to destroy the **GameTracker** instance, some _race conditions_, _deadlocks_ and _other crashes_ had to be addressed. These issues were all caused by a bad combination of the now-removed **GameTracker**\'s worker thread and the `RunOnObject()` function.\r\n\r\nTo summarize the list of changes:\r\n- All reference to the **GameListModel** has been removed from **Settings**.\r\n- The **GameListModel** instance is now owned by the **GameList** instance.\r\n- Components that need to access the **GameListModel** instance are provided with a reference in their constructors.\r\n- The **GameTracker**\'s worker thread and the `RunOnObject()` usage has been removed.\r\n- Now the **GameTracker**\'s functions run in a separate **QThread**, and all communication is performed via signal/slot.\r\n\r\n---\r\n\r\nThe crash could be reproduced with the following steps:\r\n- Open **Dolphin**.\r\n- Start copying (or downloading) a game into any of the directories monitored by **Dolphin**. This will make the game list to be refreshed every now and then, until the game is fully copied (or downloaded).\r\n- Exit **Dolphin** by clicking on the close button, or selecting `File > Exit` in the top bar menu.\r\n- The application will potentially crash on shutdown:\r\n\r\n```\r\nThread 10 "dolphin-emu" received signal SIGSEGV, Segmentation fault.\r\n[Switching to Thread 0x7fffc59f6700 (LWP 6006)]\r\n0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n(gdb) bt\r\n#0  0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n#1  0x00005555559a1c3f in UICommon::GameFile::CustomCoverChanged() ()\r\n#2  0x00005555559a8442 in UICommon::GameFileCache::UpdateAdditionalMetadata(std::shared_ptr<UICommon::GameFile>*) [clone .constprop.227] ()\r\n#3  0x00005555559a9363 in UICommon::GameFileCache::AddOrGet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*) ()\r\n#4  0x000055555571bd1b in GameTracker::LoadGame(QString const&) [clone .part.191] ()\r\n#5  0x000055555571e08b in GameTracker::UpdateFileInternal(QString const&) ()\r\n#6  0x000055555571fb8d in std::_Function_handler<void (GameTracker::Command), GameTracker::Command(QObject*)::{lambda(GameTracker::Command)#3}>::_M_invoke(std::_Any_data const&, GameTracker::Command&&) ()\r\n#7  0x00005555557200a8 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<Common::WorkQueueThread<GameTracker::Command>::Reset(std::function<void (GameTracker::Command)>)::{lambda()#1}> > >::_M_run() ()\r\n#8  0x00007ffff09eb57f in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6\r\n#9  0x00007ffff0cbe6db in start_thread (arg=0x7fffc59f6700) at pthread_create.c:463\r\n#10 0x00007ffff02c088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95\r\n```', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7714', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714'}, 'locked': False, 'closed_at': None, 'number': 7714, 'labels': [], 'comments': 7, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ1MzI5MDMw', 'state': 'open', 'updated_at': '2019-01-19T13:27:44Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714', 'created_at': '2019-01-16T23:38:14Z', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/comments', 'id': 400046640}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-19T13:27:44Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455780338', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'created_at': '2019-01-19T13:27:44Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455780338', 'body': "It seems it depends on the connection type (https://doc.qt.io/qt-5/signalsandslots.html#signals). In this case, you are right, slots would be executed immediately as I believe they'd be running in the same thread and all (i.e. direct connection type).\r\n\r\nThere was some discussion here: https://stackoverflow.com/questions/8455887/stack-object-qt-signal-and-parameter-as-reference. I guess I wouldn't use signals with output parameters in my own application, just to be safe.", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTc4MDMzOA==', 'id': 455780338}}, 'id': 7714}
2019-01-19T13:14:34.824649	{'safe_author': True, 'source': 'ghhookparser', 'body': 'Kinda wondering why the netplay window and things like the render window are created right along with the main window; and not later when needed (ie. when a game starts for example).\r\n\r\nBut I guess the way it is now it should be ok to use `delete`.', 'action': 'created', 'author': 'BhaaLseN', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7715#issuecomment-455779373', 'type': 'gh_issue_comment', 'title': 'Qt/MainWindow: Directly delete unparented dialogs', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1171, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1171, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 134, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-19T13:01:51Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 134, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-19T13:10:45Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "Calling `deleteLater` in **MainWindow**'s destructor doesn't work, as the event loop will stop before it gets around to deleting these dialogs. The result is that shutdown procedures of these dialogs' aren't run (such as saving geometry).\r\n\r\nSeeing as this is a **QObject** destructor, we should already be on the event loop anyways, so simply using `delete` should be safe.", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7715', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7715/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/Techjar/followers', 'url': 'https://api.github.com/users/Techjar', 'organizations_url': 'https://api.github.com/users/Techjar/orgs', 'node_id': 'MDQ6VXNlcjUzMjgyMQ==', 'events_url': 'https://api.github.com/users/Techjar/events{/privacy}', 'repos_url': 'https://api.github.com/users/Techjar/repos', 'gists_url': 'https://api.github.com/users/Techjar/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/Techjar/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/Techjar/following{/other_user}', 'html_url': 'https://github.com/Techjar', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/532821?v=4', 'login': 'Techjar', 'subscriptions_url': 'https://api.github.com/users/Techjar/subscriptions', 'starred_url': 'https://api.github.com/users/Techjar/starred{/owner}{/repo}', 'id': 532821}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7715/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7715.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7715', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7715.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7715'}, 'locked': False, 'closed_at': None, 'number': 7715, 'labels': [], 'comments': 0, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MDM2OTM4', 'state': 'open', 'updated_at': '2019-01-19T13:14:33Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7715', 'created_at': '2019-01-19T09:38:21Z', 'title': 'Qt/MainWindow: Directly delete unparented dialogs', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7715/comments', 'id': 400979302}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'url': 'https://api.github.com/users/BhaaLseN', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'html_url': 'https://github.com/BhaaLseN', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/826052?v=4', 'login': 'BhaaLseN', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'id': 826052}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'MEMBER', 'updated_at': '2019-01-19T13:14:33Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'url': 'https://api.github.com/users/BhaaLseN', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'html_url': 'https://github.com/BhaaLseN', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/826052?v=4', 'login': 'BhaaLseN', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'id': 826052}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7715#issuecomment-455779373', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7715', 'created_at': '2019-01-19T13:14:33Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455779373', 'body': 'Kinda wondering why the netplay window and things like the render window are created right along with the main window; and not later when needed (ie. when a game starts for example).\r\n\r\nBut I guess the way it is now it should be ok to use `delete`.', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTc3OTM3Mw==', 'id': 455779373}}, 'id': 7715}
2019-01-19T13:12:44.359421	{'safe_author': True, 'source': 'ghhookparser', 'body': 'I\'m pretty sure `emit` is synchronous, ie. it is _not_ fire&forget (but instead more like a multi-cast with 0..n handlers to be run in succession). But yeah, it was mostly an idea, not necessarily a "you must do it that way" thing.', 'action': 'created', 'author': 'BhaaLseN', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455779247', 'type': 'gh_issue_comment', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1171, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1171, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 134, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-19T13:01:51Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 134, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-19T13:10:45Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'Because the **GameListModel** was never destroyed, its **GameTracker** instance outlived the **Config** module, which led to some crashes on shutdown.\r\n\r\nThe fix consists of binding the lifespan of **GameListModel** to the **GameList** instance, ensuring that the **GameTracker** is indeed destructed.\r\n\r\nIn order to be able to destroy the **GameTracker** instance, some _race conditions_, _deadlocks_ and _other crashes_ had to be addressed. These issues were all caused by a bad combination of the now-removed **GameTracker**\'s worker thread and the `RunOnObject()` function.\r\n\r\nTo summarize the list of changes:\r\n- All reference to the **GameListModel** has been removed from **Settings**.\r\n- The **GameListModel** instance is now owned by the **GameList** instance.\r\n- Components that need to access the **GameListModel** instance are provided with a reference in their constructors.\r\n- The **GameTracker**\'s worker thread and the `RunOnObject()` usage has been removed.\r\n- Now the **GameTracker**\'s functions run in a separate **QThread**, and all communication is performed via signal/slot.\r\n\r\n---\r\n\r\nThe crash could be reproduced with the following steps:\r\n- Open **Dolphin**.\r\n- Start copying (or downloading) a game into any of the directories monitored by **Dolphin**. This will make the game list to be refreshed every now and then, until the game is fully copied (or downloaded).\r\n- Exit **Dolphin** by clicking on the close button, or selecting `File > Exit` in the top bar menu.\r\n- The application will potentially crash on shutdown:\r\n\r\n```\r\nThread 10 "dolphin-emu" received signal SIGSEGV, Segmentation fault.\r\n[Switching to Thread 0x7fffc59f6700 (LWP 6006)]\r\n0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n(gdb) bt\r\n#0  0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n#1  0x00005555559a1c3f in UICommon::GameFile::CustomCoverChanged() ()\r\n#2  0x00005555559a8442 in UICommon::GameFileCache::UpdateAdditionalMetadata(std::shared_ptr<UICommon::GameFile>*) [clone .constprop.227] ()\r\n#3  0x00005555559a9363 in UICommon::GameFileCache::AddOrGet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*) ()\r\n#4  0x000055555571bd1b in GameTracker::LoadGame(QString const&) [clone .part.191] ()\r\n#5  0x000055555571e08b in GameTracker::UpdateFileInternal(QString const&) ()\r\n#6  0x000055555571fb8d in std::_Function_handler<void (GameTracker::Command), GameTracker::Command(QObject*)::{lambda(GameTracker::Command)#3}>::_M_invoke(std::_Any_data const&, GameTracker::Command&&) ()\r\n#7  0x00005555557200a8 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<Common::WorkQueueThread<GameTracker::Command>::Reset(std::function<void (GameTracker::Command)>)::{lambda()#1}> > >::_M_run() ()\r\n#8  0x00007ffff09eb57f in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6\r\n#9  0x00007ffff0cbe6db in start_thread (arg=0x7fffc59f6700) at pthread_create.c:463\r\n#10 0x00007ffff02c088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95\r\n```', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7714', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714'}, 'locked': False, 'closed_at': None, 'number': 7714, 'labels': [], 'comments': 6, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ1MzI5MDMw', 'state': 'open', 'updated_at': '2019-01-19T13:12:43Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714', 'created_at': '2019-01-16T23:38:14Z', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/comments', 'id': 400046640}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'url': 'https://api.github.com/users/BhaaLseN', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'html_url': 'https://github.com/BhaaLseN', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/826052?v=4', 'login': 'BhaaLseN', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'id': 826052}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'MEMBER', 'updated_at': '2019-01-19T13:12:43Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'url': 'https://api.github.com/users/BhaaLseN', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'html_url': 'https://github.com/BhaaLseN', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/826052?v=4', 'login': 'BhaaLseN', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'id': 826052}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455779247', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'created_at': '2019-01-19T13:12:43Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455779247', 'body': 'I\'m pretty sure `emit` is synchronous, ie. it is _not_ fire&forget (but instead more like a multi-cast with 0..n handlers to be run in succession). But yeah, it was mostly an idea, not necessarily a "you must do it that way" thing.', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTc3OTI0Nw==', 'id': 455779247}}, 'id': 7714}
2019-01-19T13:09:41.890346	{'safe_author': False, 'source': 'ghhookparser', 'body': '@BhaaLseN In the end, **QPointer** has been used instead. Having to define several signals and slots in several components was a bit convoluted, specially around things like the `RequestGameList()` signal/slot you suggested. `emit` is a fire-and-forget action, so you would not expect anything to be returned (or assigned to the output parameter).', 'action': 'edited', 'author': 'cristian64', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455779024', 'type': 'gh_issue_comment', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'repo': 'dolphin-emu/dolphin', 'raw': {'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'action': 'edited', 'repository': {'forks_count': 1171, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1171, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 134, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-19T13:01:51Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 134, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-19T12:05:48Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'Because the **GameListModel** was never destroyed, its **GameTracker** instance outlived the **Config** module, which led to some crashes on shutdown.\r\n\r\nThe fix consists of binding the lifespan of **GameListModel** to the **GameList** instance, ensuring that the **GameTracker** is indeed destructed.\r\n\r\nIn order to be able to destroy the **GameTracker** instance, some _race conditions_, _deadlocks_ and _other crashes_ had to be addressed. These issues were all caused by a bad combination of the now-removed **GameTracker**\'s worker thread and the `RunOnObject()` function.\r\n\r\nTo summarize the list of changes:\r\n- All reference to the **GameListModel** has been removed from **Settings**.\r\n- The **GameListModel** instance is now owned by the **GameList** instance.\r\n- Components that need to access the **GameListModel** instance are provided with a reference in their constructors.\r\n- The **GameTracker**\'s worker thread and the `RunOnObject()` usage has been removed.\r\n- Now the **GameTracker**\'s functions run in a separate **QThread**, and all communication is performed via signal/slot.\r\n\r\n---\r\n\r\nThe crash could be reproduced with the following steps:\r\n- Open **Dolphin**.\r\n- Start copying (or downloading) a game into any of the directories monitored by **Dolphin**. This will make the game list to be refreshed every now and then, until the game is fully copied (or downloaded).\r\n- Exit **Dolphin** by clicking on the close button, or selecting `File > Exit` in the top bar menu.\r\n- The application will potentially crash on shutdown:\r\n\r\n```\r\nThread 10 "dolphin-emu" received signal SIGSEGV, Segmentation fault.\r\n[Switching to Thread 0x7fffc59f6700 (LWP 6006)]\r\n0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n(gdb) bt\r\n#0  0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n#1  0x00005555559a1c3f in UICommon::GameFile::CustomCoverChanged() ()\r\n#2  0x00005555559a8442 in UICommon::GameFileCache::UpdateAdditionalMetadata(std::shared_ptr<UICommon::GameFile>*) [clone .constprop.227] ()\r\n#3  0x00005555559a9363 in UICommon::GameFileCache::AddOrGet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*) ()\r\n#4  0x000055555571bd1b in GameTracker::LoadGame(QString const&) [clone .part.191] ()\r\n#5  0x000055555571e08b in GameTracker::UpdateFileInternal(QString const&) ()\r\n#6  0x000055555571fb8d in std::_Function_handler<void (GameTracker::Command), GameTracker::Command(QObject*)::{lambda(GameTracker::Command)#3}>::_M_invoke(std::_Any_data const&, GameTracker::Command&&) ()\r\n#7  0x00005555557200a8 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<Common::WorkQueueThread<GameTracker::Command>::Reset(std::function<void (GameTracker::Command)>)::{lambda()#1}> > >::_M_run() ()\r\n#8  0x00007ffff09eb57f in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6\r\n#9  0x00007ffff0cbe6db in start_thread (arg=0x7fffc59f6700) at pthread_create.c:463\r\n#10 0x00007ffff02c088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95\r\n```', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7714', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714'}, 'locked': False, 'closed_at': None, 'number': 7714, 'labels': [], 'comments': 6, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ1MzI5MDMw', 'state': 'open', 'updated_at': '2019-01-19T13:09:41Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714', 'created_at': '2019-01-16T23:38:14Z', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/comments', 'id': 400046640}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'changes': {'body': {'from': '@BhaaLseN In the end, **QPointer** has been used instead. Having to define several signals and slots in several components was a bit convoluted, specially around things like the `RequestGameList()` signal/slot you suggested. `emit` is a fire and forget action, so you would not expect anything to be returned (or assigned to the output parameter).'}}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-19T13:09:41Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455779024', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'created_at': '2019-01-19T13:09:21Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455779024', 'body': '@BhaaLseN In the end, **QPointer** has been used instead. Having to define several signals and slots in several components was a bit convoluted, specially around things like the `RequestGameList()` signal/slot you suggested. `emit` is a fire-and-forget action, so you would not expect anything to be returned (or assigned to the output parameter).', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTc3OTAyNA==', 'id': 455779024}}, 'id': 7714}
2019-01-19T13:09:21.989837	{'safe_author': False, 'source': 'ghhookparser', 'body': '@BhaaLseN In the end, **QPointer** has been used instead. Having to define several signals and slots in several components was a bit convoluted, specially around things like the `RequestGameList()` signal/slot you suggested. `emit` is a fire and forget action, so you would not expect anything to be returned (or assigned to the output parameter).', 'action': 'created', 'author': 'cristian64', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455779024', 'type': 'gh_issue_comment', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1171, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1171, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 134, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-19T13:01:51Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 134, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-19T12:05:48Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'Because the **GameListModel** was never destroyed, its **GameTracker** instance outlived the **Config** module, which led to some crashes on shutdown.\r\n\r\nThe fix consists of binding the lifespan of **GameListModel** to the **GameList** instance, ensuring that the **GameTracker** is indeed destructed.\r\n\r\nIn order to be able to destroy the **GameTracker** instance, some _race conditions_, _deadlocks_ and _other crashes_ had to be addressed. These issues were all caused by a bad combination of the now-removed **GameTracker**\'s worker thread and the `RunOnObject()` function.\r\n\r\nTo summarize the list of changes:\r\n- All reference to the **GameListModel** has been removed from **Settings**.\r\n- The **GameListModel** instance is now owned by the **GameList** instance.\r\n- Components that need to access the **GameListModel** instance are provided with a reference in their constructors.\r\n- The **GameTracker**\'s worker thread and the `RunOnObject()` usage has been removed.\r\n- Now the **GameTracker**\'s functions run in a separate **QThread**, and all communication is performed via signal/slot.\r\n\r\n---\r\n\r\nThe crash could be reproduced with the following steps:\r\n- Open **Dolphin**.\r\n- Start copying (or downloading) a game into any of the directories monitored by **Dolphin**. This will make the game list to be refreshed every now and then, until the game is fully copied (or downloaded).\r\n- Exit **Dolphin** by clicking on the close button, or selecting `File > Exit` in the top bar menu.\r\n- The application will potentially crash on shutdown:\r\n\r\n```\r\nThread 10 "dolphin-emu" received signal SIGSEGV, Segmentation fault.\r\n[Switching to Thread 0x7fffc59f6700 (LWP 6006)]\r\n0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n(gdb) bt\r\n#0  0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n#1  0x00005555559a1c3f in UICommon::GameFile::CustomCoverChanged() ()\r\n#2  0x00005555559a8442 in UICommon::GameFileCache::UpdateAdditionalMetadata(std::shared_ptr<UICommon::GameFile>*) [clone .constprop.227] ()\r\n#3  0x00005555559a9363 in UICommon::GameFileCache::AddOrGet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*) ()\r\n#4  0x000055555571bd1b in GameTracker::LoadGame(QString const&) [clone .part.191] ()\r\n#5  0x000055555571e08b in GameTracker::UpdateFileInternal(QString const&) ()\r\n#6  0x000055555571fb8d in std::_Function_handler<void (GameTracker::Command), GameTracker::Command(QObject*)::{lambda(GameTracker::Command)#3}>::_M_invoke(std::_Any_data const&, GameTracker::Command&&) ()\r\n#7  0x00005555557200a8 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<Common::WorkQueueThread<GameTracker::Command>::Reset(std::function<void (GameTracker::Command)>)::{lambda()#1}> > >::_M_run() ()\r\n#8  0x00007ffff09eb57f in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6\r\n#9  0x00007ffff0cbe6db in start_thread (arg=0x7fffc59f6700) at pthread_create.c:463\r\n#10 0x00007ffff02c088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95\r\n```', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7714', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714'}, 'locked': False, 'closed_at': None, 'number': 7714, 'labels': [], 'comments': 5, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ1MzI5MDMw', 'state': 'open', 'updated_at': '2019-01-19T13:09:21Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714', 'created_at': '2019-01-16T23:38:14Z', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/comments', 'id': 400046640}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-19T13:09:21Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455779024', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'created_at': '2019-01-19T13:09:21Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455779024', 'body': '@BhaaLseN In the end, **QPointer** has been used instead. Having to define several signals and slots in several components was a bit convoluted, specially around things like the `RequestGameList()` signal/slot you suggested. `emit` is a fire and forget action, so you would not expect anything to be returned (or assigned to the output parameter).', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTc3OTAyNA==', 'id': 455779024}}, 'id': 7714}
2019-01-19T02:30:50.597245	{'safe_author': False, 'source': 'ghhookparser', 'body': "> I also think it would be better to use callbacks (or Qt signals/slots) in the classes that need access to the model. As far as I could tell, they only need the model to get a list of all games; and for that they could simply raise a signal to have someone else fill in the blanks. Could look like this (somewhat pseudo, assuming it works similarly to events in C#; at least docs say that code after `emit` runs once all the slots have finished):\r\n> \r\n> ```c++\r\n> // in NetPlaySetupDialog (and the other places):\r\n> signals:\r\n> void RequestGameList(std::vector<GameInfo>& list_of_games_to_be_shown);\r\n> \r\n> public:\r\n> void PopulateGameList()\r\n> {\r\n>   std::vector<GameInfo> list_of_games_to_show_here;\r\n>   emit RequestGameList(list_of_games_to_show_here);\r\n>   for (auto game : list_of_games_to_show_here) { /* ... */ }\r\n> }\r\n> \r\n> // in GameList (or any other place that might be appropriate):\r\n> slots:\r\n> void FillRequestedGameList(std::vector<GameInfo>& list_of_games_to_be_shown)\r\n> {\r\n>   // add all the games that should be shown, potentially filtering them first\r\n>   list_of_games_to_be_shown.push_back(game1);\r\n>   list_of_games_to_be_shown.push_back(game2);\r\n>   list_of_games_to_be_shown.push_back(game7);\r\n> }\r\n> ```\r\n> \r\n> I'm just hoping that disconnection is automatic (or at least good enough) and won't cause any problems there. As far as I can tell, signals without connected slots will just do nothing and leave the `vector` empty (so the worst that happens is an empty list instead of a crash).\r\n\r\n@BhaaLseN After removing the **GameTracker**'s worker thread and the `RunOnObject()` usage, we are off the hook. All good now.\r\n\r\n~~Since this has grown a bit too large, I'd like to leave those other (pertinent) changes that you suggested for a follow-up pull request.~~ Actually... I'm having second thoughts... Your suggestion should be implemented now, as otherwise it all relies on the **GameList** living longer than the **NetPlay** and **CheatManager** dialogs. At the moment that is the case, but that might change in the future. So, let's implement those signal/slots as part of this pull request...", 'action': 'edited', 'author': 'cristian64', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455740683', 'type': 'gh_issue_comment', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'repo': 'dolphin-emu/dolphin', 'raw': {'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'action': 'edited', 'repository': {'forks_count': 1171, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4968, 'forks': 1171, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4968, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4968, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 133, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-19T01:48:24Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 133, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-19T02:21:53Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'Because the **GameListModel** was never destroyed, its **GameTracker** instance outlived the **Config** module, which led to some crashes on shutdown.\r\n\r\nThe fix consists of binding the lifespan of **GameListModel** to the **GameList** instance, ensuring that the **GameTracker** is indeed destructed.\r\n\r\nIn order to be able to destroy the **GameTracker** instance, some _race conditions_, _deadlocks_ and _other crashes_ had to be addressed. These issues were all caused by a bad combination of the now-removed **GameTracker**\'s worker thread and the `RunOnObject()` function.\r\n\r\nTo summarize the list of changes:\r\n- All reference to the **GameListModel** has been removed from **Settings**.\r\n- The **GameListModel** instance is now owned by the **GameList** instance.\r\n- Components that need to access the **GameListModel** instance are provided with a reference in their constructors.\r\n- The **GameTracker**\'s worker thread and the `RunOnObject()` usage has been removed.\r\n- Now the **GameTracker**\'s functions run in a separate **QThread**, and all communication is performed via signal/slot.\r\n\r\n---\r\n\r\nThe crash could be reproduced with the following steps:\r\n- Open **Dolphin**.\r\n- Start copying (or downloading) a game into any of the directories monitored by **Dolphin**. This will make the game list to be refreshed every now and then, until the game is fully copied (or downloaded).\r\n- Exit **Dolphin** by clicking on the close button, or selecting `File > Exit` in the top bar menu.\r\n- The application will potentially crash on shutdown:\r\n\r\n```\r\nThread 10 "dolphin-emu" received signal SIGSEGV, Segmentation fault.\r\n[Switching to Thread 0x7fffc59f6700 (LWP 6006)]\r\n0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n(gdb) bt\r\n#0  0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n#1  0x00005555559a1c3f in UICommon::GameFile::CustomCoverChanged() ()\r\n#2  0x00005555559a8442 in UICommon::GameFileCache::UpdateAdditionalMetadata(std::shared_ptr<UICommon::GameFile>*) [clone .constprop.227] ()\r\n#3  0x00005555559a9363 in UICommon::GameFileCache::AddOrGet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*) ()\r\n#4  0x000055555571bd1b in GameTracker::LoadGame(QString const&) [clone .part.191] ()\r\n#5  0x000055555571e08b in GameTracker::UpdateFileInternal(QString const&) ()\r\n#6  0x000055555571fb8d in std::_Function_handler<void (GameTracker::Command), GameTracker::Command(QObject*)::{lambda(GameTracker::Command)#3}>::_M_invoke(std::_Any_data const&, GameTracker::Command&&) ()\r\n#7  0x00005555557200a8 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<Common::WorkQueueThread<GameTracker::Command>::Reset(std::function<void (GameTracker::Command)>)::{lambda()#1}> > >::_M_run() ()\r\n#8  0x00007ffff09eb57f in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6\r\n#9  0x00007ffff0cbe6db in start_thread (arg=0x7fffc59f6700) at pthread_create.c:463\r\n#10 0x00007ffff02c088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95\r\n```', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7714', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714'}, 'locked': False, 'closed_at': None, 'number': 7714, 'labels': [], 'comments': 5, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ1MzI5MDMw', 'state': 'open', 'updated_at': '2019-01-19T02:30:49Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714', 'created_at': '2019-01-16T23:38:14Z', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/comments', 'id': 400046640}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'changes': {'body': {'from': "> I also think it would be better to use callbacks (or Qt signals/slots) in the classes that need access to the model. As far as I could tell, they only need the model to get a list of all games; and for that they could simply raise a signal to have someone else fill in the blanks. Could look like this (somewhat pseudo, assuming it works similarly to events in C#; at least docs say that code after `emit` runs once all the slots have finished):\r\n> \r\n> ```c++\r\n> // in NetPlaySetupDialog (and the other places):\r\n> signals:\r\n> void RequestGameList(std::vector<GameInfo>& list_of_games_to_be_shown);\r\n> \r\n> public:\r\n> void PopulateGameList()\r\n> {\r\n>   std::vector<GameInfo> list_of_games_to_show_here;\r\n>   emit RequestGameList(list_of_games_to_show_here);\r\n>   for (auto game : list_of_games_to_show_here) { /* ... */ }\r\n> }\r\n> \r\n> // in GameList (or any other place that might be appropriate):\r\n> slots:\r\n> void FillRequestedGameList(std::vector<GameInfo>& list_of_games_to_be_shown)\r\n> {\r\n>   // add all the games that should be shown, potentially filtering them first\r\n>   list_of_games_to_be_shown.push_back(game1);\r\n>   list_of_games_to_be_shown.push_back(game2);\r\n>   list_of_games_to_be_shown.push_back(game7);\r\n> }\r\n> ```\r\n> \r\n> I'm just hoping that disconnection is automatic (or at least good enough) and won't cause any problems there. As far as I can tell, signals without connected slots will just do nothing and leave the `vector` empty (so the worst that happens is an empty list instead of a crash).\r\n\r\n@BhaaLseN After removing the **GameTracker**'s worker thread and the `RunOnObject()` usage, we are off the hook. All good now.\r\n\r\n~~Since this has grown a bit too large, I'd like to leave those other (pertinent) changes that you suggested for a follow-up pull request.~~ Actually... I'm having second thoughts... Your suggestion should be implemented now, as otherwise it all relies on the **GameList** living longer than the **NetPlay** and **CheatManager** dialogs. At the moment that is the case, but that might change in the future. So, let's implement those signal/slots in this pull request..."}}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-19T02:30:49Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455740683', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'created_at': '2019-01-19T02:15:13Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455740683', 'body': "> I also think it would be better to use callbacks (or Qt signals/slots) in the classes that need access to the model. As far as I could tell, they only need the model to get a list of all games; and for that they could simply raise a signal to have someone else fill in the blanks. Could look like this (somewhat pseudo, assuming it works similarly to events in C#; at least docs say that code after `emit` runs once all the slots have finished):\r\n> \r\n> ```c++\r\n> // in NetPlaySetupDialog (and the other places):\r\n> signals:\r\n> void RequestGameList(std::vector<GameInfo>& list_of_games_to_be_shown);\r\n> \r\n> public:\r\n> void PopulateGameList()\r\n> {\r\n>   std::vector<GameInfo> list_of_games_to_show_here;\r\n>   emit RequestGameList(list_of_games_to_show_here);\r\n>   for (auto game : list_of_games_to_show_here) { /* ... */ }\r\n> }\r\n> \r\n> // in GameList (or any other place that might be appropriate):\r\n> slots:\r\n> void FillRequestedGameList(std::vector<GameInfo>& list_of_games_to_be_shown)\r\n> {\r\n>   // add all the games that should be shown, potentially filtering them first\r\n>   list_of_games_to_be_shown.push_back(game1);\r\n>   list_of_games_to_be_shown.push_back(game2);\r\n>   list_of_games_to_be_shown.push_back(game7);\r\n> }\r\n> ```\r\n> \r\n> I'm just hoping that disconnection is automatic (or at least good enough) and won't cause any problems there. As far as I can tell, signals without connected slots will just do nothing and leave the `vector` empty (so the worst that happens is an empty list instead of a crash).\r\n\r\n@BhaaLseN After removing the **GameTracker**'s worker thread and the `RunOnObject()` usage, we are off the hook. All good now.\r\n\r\n~~Since this has grown a bit too large, I'd like to leave those other (pertinent) changes that you suggested for a follow-up pull request.~~ Actually... I'm having second thoughts... Your suggestion should be implemented now, as otherwise it all relies on the **GameList** living longer than the **NetPlay** and **CheatManager** dialogs. At the moment that is the case, but that might change in the future. So, let's implement those signal/slots as part of this pull request...", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTc0MDY4Mw==', 'id': 455740683}}, 'id': 7714}
2019-01-19T02:30:16.866265	{'safe_author': False, 'source': 'ghhookparser', 'body': "> I also think it would be better to use callbacks (or Qt signals/slots) in the classes that need access to the model. As far as I could tell, they only need the model to get a list of all games; and for that they could simply raise a signal to have someone else fill in the blanks. Could look like this (somewhat pseudo, assuming it works similarly to events in C#; at least docs say that code after `emit` runs once all the slots have finished):\r\n> \r\n> ```c++\r\n> // in NetPlaySetupDialog (and the other places):\r\n> signals:\r\n> void RequestGameList(std::vector<GameInfo>& list_of_games_to_be_shown);\r\n> \r\n> public:\r\n> void PopulateGameList()\r\n> {\r\n>   std::vector<GameInfo> list_of_games_to_show_here;\r\n>   emit RequestGameList(list_of_games_to_show_here);\r\n>   for (auto game : list_of_games_to_show_here) { /* ... */ }\r\n> }\r\n> \r\n> // in GameList (or any other place that might be appropriate):\r\n> slots:\r\n> void FillRequestedGameList(std::vector<GameInfo>& list_of_games_to_be_shown)\r\n> {\r\n>   // add all the games that should be shown, potentially filtering them first\r\n>   list_of_games_to_be_shown.push_back(game1);\r\n>   list_of_games_to_be_shown.push_back(game2);\r\n>   list_of_games_to_be_shown.push_back(game7);\r\n> }\r\n> ```\r\n> \r\n> I'm just hoping that disconnection is automatic (or at least good enough) and won't cause any problems there. As far as I can tell, signals without connected slots will just do nothing and leave the `vector` empty (so the worst that happens is an empty list instead of a crash).\r\n\r\n@BhaaLseN After removing the **GameTracker**'s worker thread and the `RunOnObject()` usage, we are off the hook. All good now.\r\n\r\n~~Since this has grown a bit too large, I'd like to leave those other (pertinent) changes that you suggested for a follow-up pull request.~~ Actually... I'm having second thoughts... Your suggestion should be implemented now, as otherwise it all relies on the **GameList** living longer than the **NetPlay** and **CheatManager** dialogs. At the moment that is the case, but that might change in the future. So, let's implement those signal/slots in this pull request...", 'action': 'edited', 'author': 'cristian64', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455740683', 'type': 'gh_issue_comment', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'repo': 'dolphin-emu/dolphin', 'raw': {'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'action': 'edited', 'repository': {'forks_count': 1171, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4968, 'forks': 1171, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4968, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4968, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 133, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-19T01:48:24Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 133, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-19T02:21:53Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'Because the **GameListModel** was never destroyed, its **GameTracker** instance outlived the **Config** module, which led to some crashes on shutdown.\r\n\r\nThe fix consists of binding the lifespan of **GameListModel** to the **GameList** instance, ensuring that the **GameTracker** is indeed destructed.\r\n\r\nIn order to be able to destroy the **GameTracker** instance, some _race conditions_, _deadlocks_ and _other crashes_ had to be addressed. These issues were all caused by a bad combination of the now-removed **GameTracker**\'s worker thread and the `RunOnObject()` function.\r\n\r\nTo summarize the list of changes:\r\n- All reference to the **GameListModel** has been removed from **Settings**.\r\n- The **GameListModel** instance is now owned by the **GameList** instance.\r\n- Components that need to access the **GameListModel** instance are provided with a reference in their constructors.\r\n- The **GameTracker**\'s worker thread and the `RunOnObject()` usage has been removed.\r\n- Now the **GameTracker**\'s functions run in a separate **QThread**, and all communication is performed via signal/slot.\r\n\r\n---\r\n\r\nThe crash could be reproduced with the following steps:\r\n- Open **Dolphin**.\r\n- Start copying (or downloading) a game into any of the directories monitored by **Dolphin**. This will make the game list to be refreshed every now and then, until the game is fully copied (or downloaded).\r\n- Exit **Dolphin** by clicking on the close button, or selecting `File > Exit` in the top bar menu.\r\n- The application will potentially crash on shutdown:\r\n\r\n```\r\nThread 10 "dolphin-emu" received signal SIGSEGV, Segmentation fault.\r\n[Switching to Thread 0x7fffc59f6700 (LWP 6006)]\r\n0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n(gdb) bt\r\n#0  0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n#1  0x00005555559a1c3f in UICommon::GameFile::CustomCoverChanged() ()\r\n#2  0x00005555559a8442 in UICommon::GameFileCache::UpdateAdditionalMetadata(std::shared_ptr<UICommon::GameFile>*) [clone .constprop.227] ()\r\n#3  0x00005555559a9363 in UICommon::GameFileCache::AddOrGet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*) ()\r\n#4  0x000055555571bd1b in GameTracker::LoadGame(QString const&) [clone .part.191] ()\r\n#5  0x000055555571e08b in GameTracker::UpdateFileInternal(QString const&) ()\r\n#6  0x000055555571fb8d in std::_Function_handler<void (GameTracker::Command), GameTracker::Command(QObject*)::{lambda(GameTracker::Command)#3}>::_M_invoke(std::_Any_data const&, GameTracker::Command&&) ()\r\n#7  0x00005555557200a8 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<Common::WorkQueueThread<GameTracker::Command>::Reset(std::function<void (GameTracker::Command)>)::{lambda()#1}> > >::_M_run() ()\r\n#8  0x00007ffff09eb57f in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6\r\n#9  0x00007ffff0cbe6db in start_thread (arg=0x7fffc59f6700) at pthread_create.c:463\r\n#10 0x00007ffff02c088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95\r\n```', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7714', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714'}, 'locked': False, 'closed_at': None, 'number': 7714, 'labels': [], 'comments': 5, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ1MzI5MDMw', 'state': 'open', 'updated_at': '2019-01-19T02:30:15Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714', 'created_at': '2019-01-16T23:38:14Z', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/comments', 'id': 400046640}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'changes': {'body': {'from': "> I also think it would be better to use callbacks (or Qt signals/slots) in the classes that need access to the model. As far as I could tell, they only need the model to get a list of all games; and for that they could simply raise a signal to have someone else fill in the blanks. Could look like this (somewhat pseudo, assuming it works similarly to events in C#; at least docs say that code after `emit` runs once all the slots have finished):\r\n> \r\n> ```c++\r\n> // in NetPlaySetupDialog (and the other places):\r\n> signals:\r\n> void RequestGameList(std::vector<GameInfo>& list_of_games_to_be_shown);\r\n> \r\n> public:\r\n> void PopulateGameList()\r\n> {\r\n>   std::vector<GameInfo> list_of_games_to_show_here;\r\n>   emit RequestGameList(list_of_games_to_show_here);\r\n>   for (auto game : list_of_games_to_show_here) { /* ... */ }\r\n> }\r\n> \r\n> // in GameList (or any other place that might be appropriate):\r\n> slots:\r\n> void FillRequestedGameList(std::vector<GameInfo>& list_of_games_to_be_shown)\r\n> {\r\n>   // add all the games that should be shown, potentially filtering them first\r\n>   list_of_games_to_be_shown.push_back(game1);\r\n>   list_of_games_to_be_shown.push_back(game2);\r\n>   list_of_games_to_be_shown.push_back(game7);\r\n> }\r\n> ```\r\n> \r\n> I'm just hoping that disconnection is automatic (or at least good enough) and won't cause any problems there. As far as I can tell, signals without connected slots will just do nothing and leave the `vector` empty (so the worst that happens is an empty list instead of a crash).\r\n\r\n@BhaaLseN After removing the **GameTracker**'s worker thread and the `RunOnObject()` usage, we are off the hook. All good now.\r\n\r\nSince this has grown a bit too large, I'd like to leave those other (pertinent) changes that you suggested for a follow-up pull request."}}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-19T02:30:15Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455740683', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'created_at': '2019-01-19T02:15:13Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455740683', 'body': "> I also think it would be better to use callbacks (or Qt signals/slots) in the classes that need access to the model. As far as I could tell, they only need the model to get a list of all games; and for that they could simply raise a signal to have someone else fill in the blanks. Could look like this (somewhat pseudo, assuming it works similarly to events in C#; at least docs say that code after `emit` runs once all the slots have finished):\r\n> \r\n> ```c++\r\n> // in NetPlaySetupDialog (and the other places):\r\n> signals:\r\n> void RequestGameList(std::vector<GameInfo>& list_of_games_to_be_shown);\r\n> \r\n> public:\r\n> void PopulateGameList()\r\n> {\r\n>   std::vector<GameInfo> list_of_games_to_show_here;\r\n>   emit RequestGameList(list_of_games_to_show_here);\r\n>   for (auto game : list_of_games_to_show_here) { /* ... */ }\r\n> }\r\n> \r\n> // in GameList (or any other place that might be appropriate):\r\n> slots:\r\n> void FillRequestedGameList(std::vector<GameInfo>& list_of_games_to_be_shown)\r\n> {\r\n>   // add all the games that should be shown, potentially filtering them first\r\n>   list_of_games_to_be_shown.push_back(game1);\r\n>   list_of_games_to_be_shown.push_back(game2);\r\n>   list_of_games_to_be_shown.push_back(game7);\r\n> }\r\n> ```\r\n> \r\n> I'm just hoping that disconnection is automatic (or at least good enough) and won't cause any problems there. As far as I can tell, signals without connected slots will just do nothing and leave the `vector` empty (so the worst that happens is an empty list instead of a crash).\r\n\r\n@BhaaLseN After removing the **GameTracker**'s worker thread and the `RunOnObject()` usage, we are off the hook. All good now.\r\n\r\n~~Since this has grown a bit too large, I'd like to leave those other (pertinent) changes that you suggested for a follow-up pull request.~~ Actually... I'm having second thoughts... Your suggestion should be implemented now, as otherwise it all relies on the **GameList** living longer than the **NetPlay** and **CheatManager** dialogs. At the moment that is the case, but that might change in the future. So, let's implement those signal/slots in this pull request...", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTc0MDY4Mw==', 'id': 455740683}}, 'id': 7714}
2019-01-19T02:15:14.598981	{'safe_author': False, 'source': 'ghhookparser', 'body': "> I also think it would be better to use callbacks (or Qt signals/slots) in the classes that need access to the model. As far as I could tell, they only need the model to get a list of all games; and for that they could simply raise a signal to have someone else fill in the blanks. Could look like this (somewhat pseudo, assuming it works similarly to events in C#; at least docs say that code after `emit` runs once all the slots have finished):\r\n> \r\n> ```c++\r\n> // in NetPlaySetupDialog (and the other places):\r\n> signals:\r\n> void RequestGameList(std::vector<GameInfo>& list_of_games_to_be_shown);\r\n> \r\n> public:\r\n> void PopulateGameList()\r\n> {\r\n>   std::vector<GameInfo> list_of_games_to_show_here;\r\n>   emit RequestGameList(list_of_games_to_show_here);\r\n>   for (auto game : list_of_games_to_show_here) { /* ... */ }\r\n> }\r\n> \r\n> // in GameList (or any other place that might be appropriate):\r\n> slots:\r\n> void FillRequestedGameList(std::vector<GameInfo>& list_of_games_to_be_shown)\r\n> {\r\n>   // add all the games that should be shown, potentially filtering them first\r\n>   list_of_games_to_be_shown.push_back(game1);\r\n>   list_of_games_to_be_shown.push_back(game2);\r\n>   list_of_games_to_be_shown.push_back(game7);\r\n> }\r\n> ```\r\n> \r\n> I'm just hoping that disconnection is automatic (or at least good enough) and won't cause any problems there. As far as I can tell, signals without connected slots will just do nothing and leave the `vector` empty (so the worst that happens is an empty list instead of a crash).\r\n\r\n@BhaaLseN After removing the **GameTracker**'s worker thread and the `RunOnObject()` usage, we are off the hook. All good now.\r\n\r\nSince this has grown a bit too large, I'd like to leave those other (pertinent) changes that you suggested for a follow-up pull request.", 'action': 'created', 'author': 'cristian64', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455740683', 'type': 'gh_issue_comment', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'repository': {'forks_count': 1171, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4967, 'forks': 1171, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4967, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 133, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-19T01:48:24Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 133, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-18T23:18:03Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'Because the **GameListModel** was never destroyed, its **GameTracker** instance outlived the **Config** module, which led to some crashes on shutdown.\r\n\r\nThe fix consists of binding the lifespan of **GameListModel** to the **GameList** instance, ensuring that the **GameTracker** is indeed destructed.\r\n\r\nIn order to be able to destroy the **GameTracker** instance, some _race conditions_, _deadlocks_ and _other crashes_ had to be addressed. These issues were all caused by a bad combination of the now-removed **GameTracker**\'s worker thread and the `RunOnObject()` function.\r\n\r\nTo summarize the list of changes:\r\n- All reference to the **GameListModel** has been removed from **Settings**.\r\n- The **GameListModel** instance is now owned by the **GameList** instance.\r\n- Components that need to access the **GameListModel** instance are provided with a reference in their constructors.\r\n- The **GameTracker**\'s worker thread and the `RunOnObject()` usage has been removed.\r\n- Now the **GameTracker**\'s functions run in a separate **QThread**, and all communication is performed via signal/slot.\r\n\r\n---\r\n\r\nThe crash could be reproduced with the following steps:\r\n- Open **Dolphin**.\r\n- Start copying (or downloading) a game into any of the directories monitored by **Dolphin**. This will make the game list to be refreshed every now and then, until the game is fully copied (or downloaded).\r\n- Exit **Dolphin** by clicking on the close button, or selecting `File > Exit` in the top bar menu.\r\n- The application will potentially crash on shutdown:\r\n\r\n```\r\nThread 10 "dolphin-emu" received signal SIGSEGV, Segmentation fault.\r\n[Switching to Thread 0x7fffc59f6700 (LWP 6006)]\r\n0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n(gdb) bt\r\n#0  0x000055555566b41b in bool Config::Get<bool>(Config::ConfigInfo<bool> const&) ()\r\n#1  0x00005555559a1c3f in UICommon::GameFile::CustomCoverChanged() ()\r\n#2  0x00005555559a8442 in UICommon::GameFileCache::UpdateAdditionalMetadata(std::shared_ptr<UICommon::GameFile>*) [clone .constprop.227] ()\r\n#3  0x00005555559a9363 in UICommon::GameFileCache::AddOrGet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*) ()\r\n#4  0x000055555571bd1b in GameTracker::LoadGame(QString const&) [clone .part.191] ()\r\n#5  0x000055555571e08b in GameTracker::UpdateFileInternal(QString const&) ()\r\n#6  0x000055555571fb8d in std::_Function_handler<void (GameTracker::Command), GameTracker::Command(QObject*)::{lambda(GameTracker::Command)#3}>::_M_invoke(std::_Any_data const&, GameTracker::Command&&) ()\r\n#7  0x00005555557200a8 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<Common::WorkQueueThread<GameTracker::Command>::Reset(std::function<void (GameTracker::Command)>)::{lambda()#1}> > >::_M_run() ()\r\n#8  0x00007ffff09eb57f in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6\r\n#9  0x00007ffff0cbe6db in start_thread (arg=0x7fffc59f6700) at pthread_create.c:463\r\n#10 0x00007ffff02c088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95\r\n```', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7714', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7714.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714'}, 'locked': False, 'closed_at': None, 'number': 7714, 'labels': [], 'comments': 4, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ1MzI5MDMw', 'state': 'open', 'updated_at': '2019-01-19T02:15:13Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714', 'created_at': '2019-01-16T23:38:14Z', 'title': 'Avoid leaking the GameListModel instance to gracefully shutdown the GameTracker and prevent a crash on exit', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714/comments', 'id': 400046640}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-19T02:15:13Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7714#issuecomment-455740683', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7714', 'created_at': '2019-01-19T02:15:13Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455740683', 'body': "> I also think it would be better to use callbacks (or Qt signals/slots) in the classes that need access to the model. As far as I could tell, they only need the model to get a list of all games; and for that they could simply raise a signal to have someone else fill in the blanks. Could look like this (somewhat pseudo, assuming it works similarly to events in C#; at least docs say that code after `emit` runs once all the slots have finished):\r\n> \r\n> ```c++\r\n> // in NetPlaySetupDialog (and the other places):\r\n> signals:\r\n> void RequestGameList(std::vector<GameInfo>& list_of_games_to_be_shown);\r\n> \r\n> public:\r\n> void PopulateGameList()\r\n> {\r\n>   std::vector<GameInfo> list_of_games_to_show_here;\r\n>   emit RequestGameList(list_of_games_to_show_here);\r\n>   for (auto game : list_of_games_to_show_here) { /* ... */ }\r\n> }\r\n> \r\n> // in GameList (or any other place that might be appropriate):\r\n> slots:\r\n> void FillRequestedGameList(std::vector<GameInfo>& list_of_games_to_be_shown)\r\n> {\r\n>   // add all the games that should be shown, potentially filtering them first\r\n>   list_of_games_to_be_shown.push_back(game1);\r\n>   list_of_games_to_be_shown.push_back(game2);\r\n>   list_of_games_to_be_shown.push_back(game7);\r\n> }\r\n> ```\r\n> \r\n> I'm just hoping that disconnection is automatic (or at least good enough) and won't cause any problems there. As far as I can tell, signals without connected slots will just do nothing and leave the `vector` empty (so the worst that happens is an empty list instead of a crash).\r\n\r\n@BhaaLseN After removing the **GameTracker**'s worker thread and the `RunOnObject()` usage, we are off the hook. All good now.\r\n\r\nSince this has grown a bit too large, I'd like to leave those other (pertinent) changes that you suggested for a follow-up pull request.", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTc0MDY4Mw==', 'id': 455740683}}, 'id': 7714}

Recent 'gh_pull_request' events

2019-01-21T02:30:41.158982	{'safe_author': False, 'source': 'ghhookparser', 'action': 'synchronize', 'author': 'weihuoya', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7687', 'head_sha': 'bddd0fb44e7f0765d3446610c703c8e97fd23f80', 'title': 'Android: some minor changes', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'android-minor-fx', 'repo': 'dolphin-emu/dolphin', 'id': 7687}
2019-01-21T02:18:09.288650	{'safe_author': False, 'source': 'ghhookparser', 'action': 'synchronize', 'author': 'weihuoya', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7687', 'head_sha': 'b9aeed503f8ac3c88ca4a308f0394001799f353b', 'title': 'Android: some minor changes', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'android-minor-fx', 'repo': 'dolphin-emu/dolphin', 'id': 7687}
2019-01-21T00:31:08.590511	{'safe_author': True, 'source': 'ghhookparser', 'action': 'opened', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7724', 'head_sha': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'title': "Android: Don't clear vibrators in onStop", 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'rum', 'repo': 'dolphin-emu/dolphin', 'id': 7724}
2019-01-21T00:00:08.028088	{'safe_author': True, 'source': 'ghhookparser', 'action': 'opened', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7723', 'head_sha': 'f663da25cdfcf0a828a44573fb58c8be17bd42be', 'title': 'Android: Wiimote only(no nunchuck) overlay upgrades', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'newcale', 'repo': 'dolphin-emu/dolphin', 'id': 7723}
2019-01-20T23:46:10.563267	{'safe_author': True, 'source': 'ghhookparser', 'action': 'synchronize', 'author': 'jordan-woyak', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7663', 'head_sha': 'a3d0711240d68ea6b0db9ee3e7aa7dfe5fae27f1', 'title': 'Expression parser improvements', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'expression-parser-improve', 'repo': 'dolphin-emu/dolphin', 'id': 7663}
2019-01-20T21:01:55.199179	{'safe_author': False, 'source': 'ghhookparser', 'action': 'opened', 'author': '0xFEEDC0DE64', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7722', 'head_sha': '3ee9445989a59cbb6df861d1f8e8c0971fe4ed91', 'title': 'General GameCubePane improvements', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'gamecube-settings-improvements', 'repo': 'dolphin-emu/dolphin', 'id': 7722}
2019-01-20T20:15:19.755885	{'safe_author': True, 'source': 'ghhookparser', 'action': 'synchronize', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/sadm/pull/104', 'head_sha': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'title': 'buildbot/master.cfg: Implement macOS Updater support', 'base_sha': '3d27ea021cf67847c33b7b8aac898df52f703f1c', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'buildbot_macos_updater', 'repo': 'dolphin-emu/sadm', 'id': 104}
2019-01-20T19:58:59.868406	{'safe_author': True, 'source': 'ghhookparser', 'action': 'edited', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717', 'head_sha': '2f3eb10131aa70dee03f9eaeaa0929031aa4a214', 'title': 'Implement MacOS Updater', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'macos_updater', 'repo': 'dolphin-emu/dolphin', 'id': 7717}
2019-01-20T19:58:50.121984	{'safe_author': True, 'source': 'ghhookparser', 'action': 'edited', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717', 'head_sha': '2f3eb10131aa70dee03f9eaeaa0929031aa4a214', 'title': 'Implement MacOS Updater', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'macos_updater', 'repo': 'dolphin-emu/dolphin', 'id': 7717}
2019-01-20T19:58:32.145152	{'safe_author': True, 'source': 'ghhookparser', 'action': 'edited', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717', 'head_sha': '2f3eb10131aa70dee03f9eaeaa0929031aa4a214', 'title': 'Implement MacOS Updater', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'macos_updater', 'repo': 'dolphin-emu/dolphin', 'id': 7717}
2019-01-20T19:54:49.698912	{'safe_author': True, 'source': 'ghhookparser', 'action': 'opened', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/sadm/pull/105', 'head_sha': '9b4a98e6bd8bb88d4b561580ad8c9a17fe90db8b', 'title': 'buildbot/make_manifest.py: Add --platform parameter', 'base_sha': '3d27ea021cf67847c33b7b8aac898df52f703f1c', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'manifest_platform', 'repo': 'dolphin-emu/sadm', 'id': 105}
2019-01-20T19:46:10.240819	{'safe_author': True, 'source': 'ghhookparser', 'action': 'synchronize', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/www/pull/96', 'head_sha': '67d28873320d304a8bee6432d7ebb7ff7894c1c3', 'title': 'update: Implement Updater API v1', 'base_sha': '37858380d429686a41c3c5efd018d0830e6e3fe0', 'type': 'gh_pull_request', 'base_ref_name': 'stable', 'head_ref_name': 'updater_v1', 'repo': 'dolphin-emu/www', 'id': 96}
2019-01-20T19:40:32.000509	{'safe_author': True, 'source': 'ghhookparser', 'action': 'synchronize', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/www/pull/96', 'head_sha': '9a7e155dec7dbc505fce63d4464de83df8842faf', 'title': 'update: Implement Updater API v1', 'base_sha': '37858380d429686a41c3c5efd018d0830e6e3fe0', 'type': 'gh_pull_request', 'base_ref_name': 'stable', 'head_ref_name': 'updater_v1', 'repo': 'dolphin-emu/www', 'id': 96}
2019-01-20T19:32:38.969529	{'safe_author': True, 'source': 'ghhookparser', 'action': 'edited', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717', 'head_sha': '2f3eb10131aa70dee03f9eaeaa0929031aa4a214', 'title': 'Implement MacOS Updater', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'macos_updater', 'repo': 'dolphin-emu/dolphin', 'id': 7717}
2019-01-20T19:29:47.876856	{'safe_author': True, 'source': 'ghhookparser', 'action': 'edited', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/sadm/pull/104', 'head_sha': '8d20e042272fbd259e8dee5a12124354e1dac17a', 'title': 'buildbot/master.cfg: Implement macOS Updater support', 'base_sha': '3d27ea021cf67847c33b7b8aac898df52f703f1c', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'buildbot_macos_updater', 'repo': 'dolphin-emu/sadm', 'id': 104}
2019-01-20T19:29:00.914190	{'safe_author': True, 'source': 'ghhookparser', 'action': 'opened', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/sadm/pull/104', 'head_sha': '8d20e042272fbd259e8dee5a12124354e1dac17a', 'title': 'buildbot/master.cfg: Implement macOS Updater support', 'base_sha': '3d27ea021cf67847c33b7b8aac898df52f703f1c', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'buildbot_macos_updater', 'repo': 'dolphin-emu/sadm', 'id': 104}
2019-01-20T19:02:02.297407	{'safe_author': True, 'source': 'ghhookparser', 'action': 'edited', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717', 'head_sha': '2f3eb10131aa70dee03f9eaeaa0929031aa4a214', 'title': 'Implement MacOS Updater', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'macos_updater', 'repo': 'dolphin-emu/dolphin', 'id': 7717}
2019-01-20T18:59:32.655207	{'safe_author': True, 'source': 'ghhookparser', 'action': 'opened', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/www/pull/96', 'head_sha': 'd17c4c30f6b18b6c758363d0b68800d990aa989a', 'title': 'update: Implement Updater API v1', 'base_sha': '37858380d429686a41c3c5efd018d0830e6e3fe0', 'type': 'gh_pull_request', 'base_ref_name': 'stable', 'head_ref_name': 'updater_v1', 'repo': 'dolphin-emu/www', 'id': 96}
2019-01-20T17:15:01.318962	{'safe_author': True, 'source': 'ghhookparser', 'action': 'synchronize', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500', 'head_sha': '09b22ade6f80c3e5b139d7de3da6bb8947ebaca2', 'title': 'Android: Add IR pointer control to touch overlay', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'pointer', 'repo': 'dolphin-emu/dolphin', 'id': 7500}
2019-01-20T16:38:56.023444	{'safe_author': True, 'source': 'ghhookparser', 'action': 'synchronize', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500', 'head_sha': '6e1196760302f7f1dc464156165bd59cf3e5df08', 'title': 'Android: Add IR pointer control to touch overlay', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'pointer', 'repo': 'dolphin-emu/dolphin', 'id': 7500}
2019-01-20T16:27:27.301028	{'safe_author': False, 'source': 'ghhookparser', 'action': 'opened', 'author': 'belthesar', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7721', 'head_sha': '00f786384d49679d8cb2259fa6037dd3f28fc2f6', 'title': 'Update GeckoCodes code download to use https', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'master', 'repo': 'dolphin-emu/dolphin', 'id': 7721}
2019-01-20T16:23:38.428626	{'safe_author': False, 'source': 'ghhookparser', 'action': 'synchronize', 'author': 'cristian64', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7720', 'head_sha': 'daf82e8f03db4bdb4664707a91c5b2e714d94c91', 'title': 'Qt/MainWindow: Add "Compact View" option that minimizes tool bar size and game list\'s default row height.', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'add_compact_view_option', 'repo': 'dolphin-emu/dolphin', 'id': 7720}
2019-01-20T16:08:48.991217	{'safe_author': False, 'source': 'ghhookparser', 'action': 'opened', 'author': 'cristian64', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7720', 'head_sha': '45141cbcd3321e13eeab4c324990b0ef94e5b376', 'title': 'Qt/MainWindow: Add "Compact View" option that minimizes tool bar size and game list\'s default row height.', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'add_compact_view_option', 'repo': 'dolphin-emu/dolphin', 'id': 7720}
2019-01-20T14:51:32.210830	{'safe_author': True, 'source': 'ghhookparser', 'action': 'synchronize', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717', 'head_sha': '2f3eb10131aa70dee03f9eaeaa0929031aa4a214', 'title': 'Implement MacOS Updater', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'macos_updater', 'repo': 'dolphin-emu/dolphin', 'id': 7717}
2019-01-20T14:38:19.631811	{'safe_author': True, 'source': 'ghhookparser', 'action': 'synchronize', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717', 'head_sha': '97d83aea4d0f97c98bd3d77ff7a578ae8850e86e', 'title': 'Implement MacOS Updater', 'base_sha': '3627ef8a0489765eb10ab29a7988866b52493239', 'type': 'gh_pull_request', 'base_ref_name': 'master', 'head_ref_name': 'macos_updater', 'repo': 'dolphin-emu/dolphin', 'id': 7717}

Recent 'gh_pull_request_comment' events

2019-01-20T23:16:57.523977	{'source': 'ghhookparser', 'action': 'created', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249300625', 'hash': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/sadm', 'id': 104}
2019-01-20T23:08:03.427007	{'source': 'ghhookparser', 'action': 'created', 'author': 'shuffle2', 'url': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249300233', 'hash': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/sadm', 'id': 104}
2019-01-20T22:49:37.159266	{'source': 'ghhookparser', 'action': 'created', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249299522', 'hash': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/sadm', 'id': 104}
2019-01-20T22:48:24.358119	{'source': 'ghhookparser', 'action': 'created', 'author': 'shuffle2', 'url': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249299457', 'hash': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/sadm', 'id': 104}
2019-01-20T13:35:52.338404	{'source': 'ghhookparser', 'action': 'created', 'author': 'Warepire', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249279279', 'hash': 'b19e1bc96371db4a884b7d67522ec11e81760835', 'is_part_of_review': True, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7717}
2019-01-20T13:35:52.335145	{'source': 'ghhookparser', 'action': 'created', 'author': 'Warepire', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249279161', 'hash': 'b19e1bc96371db4a884b7d67522ec11e81760835', 'is_part_of_review': True, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7717}
2019-01-20T13:17:47.080702	{'source': 'ghhookparser', 'action': 'created', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249278579', 'hash': '6c463931f6977fdecf5fa54ae376ef4a5f396efa', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7500}
2019-01-20T13:17:22.896820	{'source': 'ghhookparser', 'action': 'created', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249278565', 'hash': '6c463931f6977fdecf5fa54ae376ef4a5f396efa', 'is_part_of_review': True, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7500}
2019-01-20T11:46:14.856084	{'source': 'ghhookparser', 'action': 'created', 'author': 'BhaaLseN', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249275124', 'hash': '70e112954681932bf6e53f418750d4f6d8766cea', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7500}
2019-01-20T11:45:48.605116	{'source': 'ghhookparser', 'action': 'created', 'author': 'BhaaLseN', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249275107', 'hash': '70e112954681932bf6e53f418750d4f6d8766cea', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7500}
2019-01-20T11:40:35.061849	{'source': 'ghhookparser', 'action': 'created', 'author': 'BhaaLseN', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249274625', 'hash': '0b7f1717673b05ee395c895e5a9da65898398a7c', 'is_part_of_review': True, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7717}
2019-01-20T11:40:33.783698	{'source': 'ghhookparser', 'action': 'created', 'author': 'BhaaLseN', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249274729', 'hash': '0b7f1717673b05ee395c895e5a9da65898398a7c', 'is_part_of_review': True, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7717}
2019-01-20T04:25:52.862991	{'source': 'ghhookparser', 'action': 'created', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249264609', 'hash': '70e112954681932bf6e53f418750d4f6d8766cea', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7500}
2019-01-20T04:25:48.569511	{'source': 'ghhookparser', 'action': 'created', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249264607', 'hash': '70e112954681932bf6e53f418750d4f6d8766cea', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7500}
2019-01-20T00:34:23.482163	{'source': 'ghhookparser', 'action': 'created', 'author': 'stenzek', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249261554', 'hash': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7478}
2019-01-20T00:33:31.667639	{'source': 'ghhookparser', 'action': 'created', 'author': 'stenzek', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249261544', 'hash': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7478}
2019-01-20T00:31:00.171615	{'source': 'ghhookparser', 'action': 'created', 'author': 'stenzek', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7716#discussion_r249261519', 'hash': '10701921654c8990e42e3e944c422d94c399099c', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7716}
2019-01-19T19:32:04.258331	{'source': 'ghhookparser', 'action': 'created', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254953', 'hash': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7478}
2019-01-19T19:22:02.100650	{'source': 'ghhookparser', 'action': 'edited', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254643', 'hash': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7478}
2019-01-19T19:20:32.283004	{'source': 'ghhookparser', 'action': 'created', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254643', 'hash': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7478}
2019-01-19T19:17:56.924323	{'source': 'ghhookparser', 'action': 'edited', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254087', 'hash': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7478}
2019-01-19T19:17:45.367942	{'source': 'ghhookparser', 'action': 'edited', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254087', 'hash': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7478}
2019-01-19T19:05:58.915597	{'source': 'ghhookparser', 'action': 'created', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254259', 'hash': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7478}
2019-01-19T19:00:05.496073	{'source': 'ghhookparser', 'action': 'created', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254087', 'hash': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7478}
2019-01-19T18:53:30.477852	{'source': 'ghhookparser', 'action': 'created', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7716#discussion_r249253914', 'hash': '10701921654c8990e42e3e944c422d94c399099c', 'is_part_of_review': False, 'type': 'gh_pull_request_comment', 'repo': 'dolphin-emu/dolphin', 'id': 7716}

Recent 'gh_pull_request_review' events

2019-01-20T23:16:58.049663	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'buildbot/master.cfg: Implement macOS Updater support', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/sadm/pull/104#pullrequestreview-194414731', 'comments': ['message', 'documentation_url'], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/sadm', 'pr_id': 104}
2019-01-20T23:08:03.425550	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'buildbot/master.cfg: Implement macOS Updater support', 'author': 'shuffle2', 'url': 'https://github.com/dolphin-emu/sadm/pull/104#pullrequestreview-194414324', 'comments': [{'pull_request_review_id': 194414324, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'position': 22, 'body': 'I meant: "-srcfolder Binaries/Dolphin.app" implies "Binaries/Dolphin.app" already exists. Is that the case? Or this change runs risk of breaking things.', 'path': 'buildbot/master.cfg', 'original_commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249300233', 'in_reply_to_id': 249299457, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTMwMDIzMw==', 'commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'author_association': 'MEMBER', 'diff_hunk': '@@ -340,10 +341,16 @@ def make_dolphin_osx_build(mode="normal"):\n                            descriptionDone="sign",\n                            haltOnFailure=True))\n \n+    f.addStep(ShellCommand(command="/build/codesign.sh --deep Binaries/Dolphin\\ Updater.app",\n+                           workdir="build/build",\n+                           description="signing updater",\n+                           descriptionDone="sign updater",\n+                           haltOnFailure=True))\n \n     f.addStep(ShellCommand(command=["hdiutil", "create", "dolphin.dmg",\n                                     "-format", "UDBZ",\n-                                    "-srcfolder", "Binaries/dolphin.app", "-ov",\n+                                    "-layout", "SPUD", # Needed for 7-Zip support\n+                                    "-srcfolder", "Binaries/Dolphin.app", "-ov",', 'updated_at': '2019-01-20T23:08:01Z', 'original_position': 22, 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249300233', 'created_at': '2019-01-20T23:08:01Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'url': 'https://api.github.com/users/shuffle2', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'node_id': 'MDQ6VXNlcjExMzA2Mw==', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'html_url': 'https://github.com/shuffle2', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'login': 'shuffle2', 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'id': 113063}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249300233'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249300233'}}, 'id': 249300233}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/sadm', 'pr_id': 104}
2019-01-20T22:49:37.155492	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'buildbot/master.cfg: Implement macOS Updater support', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/sadm/pull/104#pullrequestreview-194413521', 'comments': [{'pull_request_review_id': 194413521, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'position': 22, 'body': "I do think so. It's probably the cause for ``dolphin.app`` not being capitalized as ``Dolphin.app`` as it should.", 'path': 'buildbot/master.cfg', 'original_commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249299522', 'in_reply_to_id': 249299457, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI5OTUyMg==', 'commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'author_association': 'MEMBER', 'diff_hunk': '@@ -340,10 +341,16 @@ def make_dolphin_osx_build(mode="normal"):\n                            descriptionDone="sign",\n                            haltOnFailure=True))\n \n+    f.addStep(ShellCommand(command="/build/codesign.sh --deep Binaries/Dolphin\\ Updater.app",\n+                           workdir="build/build",\n+                           description="signing updater",\n+                           descriptionDone="sign updater",\n+                           haltOnFailure=True))\n \n     f.addStep(ShellCommand(command=["hdiutil", "create", "dolphin.dmg",\n                                     "-format", "UDBZ",\n-                                    "-srcfolder", "Binaries/dolphin.app", "-ov",\n+                                    "-layout", "SPUD", # Needed for 7-Zip support\n+                                    "-srcfolder", "Binaries/Dolphin.app", "-ov",', 'updated_at': '2019-01-20T22:49:35Z', 'original_position': 22, 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249299522', 'created_at': '2019-01-20T22:49:35Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249299522'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249299522'}}, 'id': 249299522}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/sadm', 'pr_id': 104}
2019-01-20T22:48:24.354475	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'buildbot/master.cfg: Implement macOS Updater support', 'author': 'shuffle2', 'url': 'https://github.com/dolphin-emu/sadm/pull/104#pullrequestreview-194413453', 'comments': [{'pull_request_review_id': 194413453, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'position': 22, 'body': 'does case of "dolphin" matter here?', 'path': 'buildbot/master.cfg', 'original_commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249299457', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI5OTQ1Nw==', 'commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'author_association': 'MEMBER', 'diff_hunk': '@@ -340,10 +341,16 @@ def make_dolphin_osx_build(mode="normal"):\n                            descriptionDone="sign",\n                            haltOnFailure=True))\n \n+    f.addStep(ShellCommand(command="/build/codesign.sh --deep Binaries/Dolphin\\ Updater.app",\n+                           workdir="build/build",\n+                           description="signing updater",\n+                           descriptionDone="sign updater",\n+                           haltOnFailure=True))\n \n     f.addStep(ShellCommand(command=["hdiutil", "create", "dolphin.dmg",\n                                     "-format", "UDBZ",\n-                                    "-srcfolder", "Binaries/dolphin.app", "-ov",\n+                                    "-layout", "SPUD", # Needed for 7-Zip support\n+                                    "-srcfolder", "Binaries/Dolphin.app", "-ov",', 'updated_at': '2019-01-20T22:48:22Z', 'original_position': 22, 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249299457', 'created_at': '2019-01-20T22:48:22Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'url': 'https://api.github.com/users/shuffle2', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'node_id': 'MDQ6VXNlcjExMzA2Mw==', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'html_url': 'https://github.com/shuffle2', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'login': 'shuffle2', 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'id': 113063}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249299457'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249299457'}}, 'id': 249299457}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/sadm', 'pr_id': 104}
2019-01-20T20:47:55.372403	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Qt/MainWindow: Also display "List Columns" menu via right-click on table\'s header.', 'author': 'spycrab', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7718#pullrequestreview-194408365', 'comments': [], 'state': 'changes_requested', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7718}
2019-01-20T13:35:52.328455	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Implement MacOS Updater', 'author': 'Warepire', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717#pullrequestreview-194393028', 'comments': [{'pull_request_review_id': 194393028, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717', 'position': 13, 'body': '```suggestion\r\n    uint32_t size = MAX_PATH;\r\n    dolphin_path.resize(size);\r\n```', 'path': 'Source/Core/Common/FileUtil.cpp', 'original_commit_id': 'b19e1bc96371db4a884b7d67522ec11e81760835', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249279161', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI3OTE2MQ==', 'commit_id': 'b19e1bc96371db4a884b7d67522ec11e81760835', 'author_association': 'NONE', 'diff_hunk': '@@ -683,6 +684,15 @@ std::string GetExePath()\n       dolphin_path = TStrToUTF8(dolphin_exe_expanded_path);\n     else\n       dolphin_path = TStrToUTF8(dolphin_exe_path);\n+#elif defined(__APPLE__)\n+    dolphin_path.resize(MAX_PATH);', 'updated_at': '2019-01-20T13:35:50Z', 'original_position': 13, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249279161', 'created_at': '2019-01-20T13:32:17Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/Warepire/followers', 'url': 'https://api.github.com/users/Warepire', 'organizations_url': 'https://api.github.com/users/Warepire/orgs', 'node_id': 'MDQ6VXNlcjQ4MzE1Nzc=', 'events_url': 'https://api.github.com/users/Warepire/events{/privacy}', 'repos_url': 'https://api.github.com/users/Warepire/repos', 'gists_url': 'https://api.github.com/users/Warepire/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/Warepire/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/Warepire/following{/other_user}', 'html_url': 'https://github.com/Warepire', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/4831577?v=4', 'login': 'Warepire', 'subscriptions_url': 'https://api.github.com/users/Warepire/subscriptions', 'starred_url': 'https://api.github.com/users/Warepire/starred{/owner}{/repo}', 'id': 4831577}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249279161'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249279161'}}, 'id': 249279161}, {'pull_request_review_id': 194393028, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717', 'position': 17, 'body': 'Some braces around this if-block for readability?', 'path': 'Source/Core/MacUpdater/UI.mm', 'original_commit_id': 'b19e1bc96371db4a884b7d67522ec11e81760835', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249279279', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI3OTI3OQ==', 'commit_id': 'b19e1bc96371db4a884b7d67522ec11e81760835', 'author_association': 'NONE', 'diff_hunk': '@@ -0,0 +1,83 @@\n+// Copyright 2019 Dolphin Emulator Project\n+// Licensed under GPLv2+\n+// Refer to the license.txt file included.\n+\n+#include "MacUpdater/UI.h"\n+#include "MacUpdater/ViewController.h"\n+\n+#include <Cocoa/Cocoa.h>\n+\n+#include <functional>\n+\n+// When we call from the main thread, we are not allowed to use\n+// dispatch_sync(dispatch_get_main_queue() as it will cause crashes) To prevent this check if we\'re\n+// already on the main thread first\n+void run_on_main(std::function<void()> fnc)\n+{\n+  if (![NSThread isMainThread])', 'updated_at': '2019-01-20T13:35:50Z', 'original_position': 17, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249279279', 'created_at': '2019-01-20T13:35:42Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/Warepire/followers', 'url': 'https://api.github.com/users/Warepire', 'organizations_url': 'https://api.github.com/users/Warepire/orgs', 'node_id': 'MDQ6VXNlcjQ4MzE1Nzc=', 'events_url': 'https://api.github.com/users/Warepire/events{/privacy}', 'repos_url': 'https://api.github.com/users/Warepire/repos', 'gists_url': 'https://api.github.com/users/Warepire/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/Warepire/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/Warepire/following{/other_user}', 'html_url': 'https://github.com/Warepire', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/4831577?v=4', 'login': 'Warepire', 'subscriptions_url': 'https://api.github.com/users/Warepire/subscriptions', 'starred_url': 'https://api.github.com/users/Warepire/starred{/owner}{/repo}', 'id': 4831577}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249279279'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249279279'}}, 'id': 249279279}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7717}
2019-01-20T13:35:51.663064	{'source': 'ghhookparser', 'action': 'edited', 'pr_title': 'Implement MacOS Updater', 'author': 'Warepire', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717#pullrequestreview-194393028', 'comments': [{'pull_request_review_id': 194393028, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717', 'position': 13, 'body': '```suggestion\r\n    uint32_t size = MAX_PATH;\r\n    dolphin_path.resize(size);\r\n```', 'path': 'Source/Core/Common/FileUtil.cpp', 'original_commit_id': 'b19e1bc96371db4a884b7d67522ec11e81760835', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249279161', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI3OTE2MQ==', 'commit_id': 'b19e1bc96371db4a884b7d67522ec11e81760835', 'author_association': 'NONE', 'diff_hunk': '@@ -683,6 +684,15 @@ std::string GetExePath()\n       dolphin_path = TStrToUTF8(dolphin_exe_expanded_path);\n     else\n       dolphin_path = TStrToUTF8(dolphin_exe_path);\n+#elif defined(__APPLE__)\n+    dolphin_path.resize(MAX_PATH);', 'updated_at': '2019-01-20T13:35:50Z', 'original_position': 13, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249279161', 'created_at': '2019-01-20T13:32:17Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/Warepire/followers', 'url': 'https://api.github.com/users/Warepire', 'organizations_url': 'https://api.github.com/users/Warepire/orgs', 'node_id': 'MDQ6VXNlcjQ4MzE1Nzc=', 'events_url': 'https://api.github.com/users/Warepire/events{/privacy}', 'repos_url': 'https://api.github.com/users/Warepire/repos', 'gists_url': 'https://api.github.com/users/Warepire/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/Warepire/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/Warepire/following{/other_user}', 'html_url': 'https://github.com/Warepire', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/4831577?v=4', 'login': 'Warepire', 'subscriptions_url': 'https://api.github.com/users/Warepire/subscriptions', 'starred_url': 'https://api.github.com/users/Warepire/starred{/owner}{/repo}', 'id': 4831577}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249279161'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249279161'}}, 'id': 249279161}, {'pull_request_review_id': 194393028, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717', 'position': 17, 'body': 'Some braces around this if-block for readability?', 'path': 'Source/Core/MacUpdater/UI.mm', 'original_commit_id': 'b19e1bc96371db4a884b7d67522ec11e81760835', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249279279', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI3OTI3OQ==', 'commit_id': 'b19e1bc96371db4a884b7d67522ec11e81760835', 'author_association': 'NONE', 'diff_hunk': '@@ -0,0 +1,83 @@\n+// Copyright 2019 Dolphin Emulator Project\n+// Licensed under GPLv2+\n+// Refer to the license.txt file included.\n+\n+#include "MacUpdater/UI.h"\n+#include "MacUpdater/ViewController.h"\n+\n+#include <Cocoa/Cocoa.h>\n+\n+#include <functional>\n+\n+// When we call from the main thread, we are not allowed to use\n+// dispatch_sync(dispatch_get_main_queue() as it will cause crashes) To prevent this check if we\'re\n+// already on the main thread first\n+void run_on_main(std::function<void()> fnc)\n+{\n+  if (![NSThread isMainThread])', 'updated_at': '2019-01-20T13:35:50Z', 'original_position': 17, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249279279', 'created_at': '2019-01-20T13:35:42Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/Warepire/followers', 'url': 'https://api.github.com/users/Warepire', 'organizations_url': 'https://api.github.com/users/Warepire/orgs', 'node_id': 'MDQ6VXNlcjQ4MzE1Nzc=', 'events_url': 'https://api.github.com/users/Warepire/events{/privacy}', 'repos_url': 'https://api.github.com/users/Warepire/repos', 'gists_url': 'https://api.github.com/users/Warepire/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/Warepire/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/Warepire/following{/other_user}', 'html_url': 'https://github.com/Warepire', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/4831577?v=4', 'login': 'Warepire', 'subscriptions_url': 'https://api.github.com/users/Warepire/subscriptions', 'starred_url': 'https://api.github.com/users/Warepire/starred{/owner}{/repo}', 'id': 4831577}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249279279'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249279279'}}, 'id': 249279279}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7717}
2019-01-20T13:17:47.079152	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Android: Add IR pointer control to touch overlay', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500#pullrequestreview-194392499', 'comments': [{'pull_request_review_id': 194392499, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7500', 'position': 114, 'body': 'Gotcha, cleaned up.', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java', 'original_commit_id': '70e112954681932bf6e53f418750d4f6d8766cea', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249278579', 'in_reply_to_id': 249275107, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI3ODU3OQ==', 'commit_id': '6c463931f6977fdecf5fa54ae376ef4a5f396efa', 'author_association': 'MEMBER', 'diff_hunk': '@@ -166,35 +199,43 @@ public boolean onTouch(View v, MotionEvent event)\n       {\n         case MotionEvent.ACTION_DOWN:\n         case MotionEvent.ACTION_POINTER_DOWN:\n-        case MotionEvent.ACTION_MOVE:\n-          // Up, Down, Left, Right\n-          boolean[] pressed = {false, false, false, false};\n           // If a pointer enters the bounds of a button, press that button.\n           if (dpad.getBounds()\n                   .contains((int) event.getX(pointerIndex), (int) event.getY(pointerIndex)))\n           {\n+            dpad.setTrackId(event.getPointerId(pointerIndex));\n+            pressed = true;\n+          }\n+        case MotionEvent.ACTION_MOVE:\n+          if (dpad.getTrackId() == event.getPointerId(pointerIndex))\n+          {\n+            // Up, Down, Left, Right\n+            boolean[] dpadPressed = {false, false, false, false};\n+\n             if (dpad.getBounds().top + (dpad.getHeight() / 3) > (int) event.getY(pointerIndex))\n-              pressed[0] = true;\n+              dpadPressed[0] = true;\n             if (dpad.getBounds().bottom - (dpad.getHeight() / 3) < (int) event.getY(pointerIndex))\n-              pressed[1] = true;\n+              dpadPressed[1] = true;\n             if (dpad.getBounds().left + (dpad.getWidth() / 3) > (int) event.getX(pointerIndex))\n-              pressed[2] = true;\n+              dpadPressed[2] = true;\n             if (dpad.getBounds().right - (dpad.getWidth() / 3) < (int) event.getX(pointerIndex))\n-              pressed[3] = true;\n+              dpadPressed[3] = true;\n \n             // Release the buttons first, then press\n-            for (int i = 0; i < pressed.length; i++)\n-              if (!pressed[i])\n+            for (int i = 0; i < dpadPressed.length; i++)', 'updated_at': '2019-01-20T13:17:45Z', 'original_position': 114, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249278579', 'created_at': '2019-01-20T13:17:45Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7500'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249278579'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249278579'}}, 'id': 249278579}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7500}
2019-01-20T13:17:23.636508	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Android: Add IR pointer control to touch overlay', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500#pullrequestreview-194392483', 'comments': [{'pull_request_review_id': 194392483, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7500', 'position': None, 'body': 'No, cleaned up', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlayPointer.java', 'original_commit_id': '70e112954681932bf6e53f418750d4f6d8766cea', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249278565', 'in_reply_to_id': 249275124, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI3ODU2NQ==', 'commit_id': '6c463931f6977fdecf5fa54ae376ef4a5f396efa', 'author_association': 'MEMBER', 'diff_hunk': '@@ -0,0 +1,137 @@\n+package org.dolphinemu.dolphinemu.overlay;\n+\n+import android.app.Activity;\n+import android.content.Context;\n+import android.os.Handler;\n+import android.util.DisplayMetrics;\n+import android.view.Display;\n+import android.view.MotionEvent;\n+\n+import org.dolphinemu.dolphinemu.NativeLibrary;\n+\n+import java.util.ArrayList;\n+\n+public class InputOverlayPointer\n+{\n+  public static final int DOUBLE_TAP_A = 0;\n+  public static final int DOUBLE_TAP_B = 1;\n+  public static final int DOUBLE_TAP_2 = 2;\n+  public static final int DOUBLE_TAP_CLASSIC_A = 3;\n+\n+  private final float[] axes = {0f, 0f};\n+\n+  private float maxHeight;\n+  private float maxWidth;\n+  private float aspectAdjusted;\n+  private boolean xAdjusted;\n+  private boolean doubleTap = false;\n+  private int doubleTapButton;\n+  private int trackId = -1;\n+\n+  public static ArrayList<Integer> DOUBLE_TAP_OPTIONS = new ArrayList<>();\n+\n+  static\n+  {\n+    DOUBLE_TAP_OPTIONS.add(NativeLibrary.ButtonType.WIIMOTE_BUTTON_A);\n+    DOUBLE_TAP_OPTIONS.add(NativeLibrary.ButtonType.WIIMOTE_BUTTON_B);\n+    DOUBLE_TAP_OPTIONS.add(NativeLibrary.ButtonType.WIIMOTE_BUTTON_2);\n+    DOUBLE_TAP_OPTIONS.add(NativeLibrary.ButtonType.CLASSIC_BUTTON_A);\n+  }\n+\n+  public InputOverlayPointer(Context context, int button)\n+  {\n+    Display display = ((Activity) context).getWindowManager().getDefaultDisplay();\n+    DisplayMetrics outMetrics = new DisplayMetrics();\n+    display.getMetrics(outMetrics);\n+    doubleTapButton = button;\n+\n+    // Adjusting for device aspect ratio. This only needs to be done on width since the render height\n+    // will fill the screen\n+    Integer y = outMetrics.heightPixels;\n+    Integer x = outMetrics.widthPixels;\n+\n+    Float deviceAR = (float) x / y;\n+    Float gameAR = NativeLibrary.GetGameAspectRatio();\n+    aspectAdjusted = gameAR / deviceAR;\n+\n+    if (gameAR < deviceAR)\n+    {\n+      xAdjusted = true;\n+      Integer gameX = Math.round((float) y * gameAR);\n+      Integer buffer = (x - gameX);\n+\n+      maxWidth = (float) (x - buffer) / 2;\n+      maxHeight = (float) y / 2;\n+    }\n+    else\n+    {\n+      xAdjusted = false;\n+      Integer gameY = Math.round((float) x * gameAR);\n+      Integer buffer = (y - gameY);\n+\n+      maxWidth = (float) x / 2;\n+      maxHeight = (float) (y - buffer) / 2;\n+    }\n+  }\n+\n+  public boolean onTouch(MotionEvent event)\n+  {\n+    int pointerIndex = event.getActionIndex();\n+\n+    switch (event.getAction() & MotionEvent.ACTION_MASK)\n+    {\n+      case MotionEvent.ACTION_DOWN:\n+      case MotionEvent.ACTION_POINTER_DOWN:\n+        trackId = event.getPointerId(pointerIndex);\n+        touchPress();\n+        break;\n+      case MotionEvent.ACTION_UP:\n+      case MotionEvent.ACTION_POINTER_UP:\n+        if (trackId == event.getPointerId(pointerIndex))\n+          trackId = -1;\n+        break;\n+    }\n+\n+    if (trackId == -1)\n+      return false;\n+\n+    int x = (int) event.getX(event.findPointerIndex(trackId));\n+    int y = (int) event.getY(event.findPointerIndex(trackId));\n+    if (xAdjusted)\n+    {\n+      axes[0] = (y - maxHeight) / maxHeight;\n+      axes[1] = ((x * aspectAdjusted) - maxWidth) / maxWidth;\n+    }\n+    else\n+    {\n+', 'updated_at': '2019-01-20T13:17:22Z', 'original_position': 107, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249278565', 'created_at': '2019-01-20T13:17:21Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7500'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249278565'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249278565'}}, 'id': 249278565}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7500}
2019-01-20T11:46:14.854916	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Android: Add IR pointer control to touch overlay', 'author': 'BhaaLseN', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500#pullrequestreview-194389214', 'comments': [{'pull_request_review_id': 194389214, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7500', 'position': 107, 'body': 'Is this empty line on purpose?', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlayPointer.java', 'original_commit_id': '70e112954681932bf6e53f418750d4f6d8766cea', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249275124', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI3NTEyNA==', 'commit_id': '70e112954681932bf6e53f418750d4f6d8766cea', 'author_association': 'MEMBER', 'diff_hunk': '@@ -0,0 +1,137 @@\n+package org.dolphinemu.dolphinemu.overlay;\n+\n+import android.app.Activity;\n+import android.content.Context;\n+import android.os.Handler;\n+import android.util.DisplayMetrics;\n+import android.view.Display;\n+import android.view.MotionEvent;\n+\n+import org.dolphinemu.dolphinemu.NativeLibrary;\n+\n+import java.util.ArrayList;\n+\n+public class InputOverlayPointer\n+{\n+  public static final int DOUBLE_TAP_A = 0;\n+  public static final int DOUBLE_TAP_B = 1;\n+  public static final int DOUBLE_TAP_2 = 2;\n+  public static final int DOUBLE_TAP_CLASSIC_A = 3;\n+\n+  private final float[] axes = {0f, 0f};\n+\n+  private float maxHeight;\n+  private float maxWidth;\n+  private float aspectAdjusted;\n+  private boolean xAdjusted;\n+  private boolean doubleTap = false;\n+  private int doubleTapButton;\n+  private int trackId = -1;\n+\n+  public static ArrayList<Integer> DOUBLE_TAP_OPTIONS = new ArrayList<>();\n+\n+  static\n+  {\n+    DOUBLE_TAP_OPTIONS.add(NativeLibrary.ButtonType.WIIMOTE_BUTTON_A);\n+    DOUBLE_TAP_OPTIONS.add(NativeLibrary.ButtonType.WIIMOTE_BUTTON_B);\n+    DOUBLE_TAP_OPTIONS.add(NativeLibrary.ButtonType.WIIMOTE_BUTTON_2);\n+    DOUBLE_TAP_OPTIONS.add(NativeLibrary.ButtonType.CLASSIC_BUTTON_A);\n+  }\n+\n+  public InputOverlayPointer(Context context, int button)\n+  {\n+    Display display = ((Activity) context).getWindowManager().getDefaultDisplay();\n+    DisplayMetrics outMetrics = new DisplayMetrics();\n+    display.getMetrics(outMetrics);\n+    doubleTapButton = button;\n+\n+    // Adjusting for device aspect ratio. This only needs to be done on width since the render height\n+    // will fill the screen\n+    Integer y = outMetrics.heightPixels;\n+    Integer x = outMetrics.widthPixels;\n+\n+    Float deviceAR = (float) x / y;\n+    Float gameAR = NativeLibrary.GetGameAspectRatio();\n+    aspectAdjusted = gameAR / deviceAR;\n+\n+    if (gameAR < deviceAR)\n+    {\n+      xAdjusted = true;\n+      Integer gameX = Math.round((float) y * gameAR);\n+      Integer buffer = (x - gameX);\n+\n+      maxWidth = (float) (x - buffer) / 2;\n+      maxHeight = (float) y / 2;\n+    }\n+    else\n+    {\n+      xAdjusted = false;\n+      Integer gameY = Math.round((float) x * gameAR);\n+      Integer buffer = (y - gameY);\n+\n+      maxWidth = (float) x / 2;\n+      maxHeight = (float) (y - buffer) / 2;\n+    }\n+  }\n+\n+  public boolean onTouch(MotionEvent event)\n+  {\n+    int pointerIndex = event.getActionIndex();\n+\n+    switch (event.getAction() & MotionEvent.ACTION_MASK)\n+    {\n+      case MotionEvent.ACTION_DOWN:\n+      case MotionEvent.ACTION_POINTER_DOWN:\n+        trackId = event.getPointerId(pointerIndex);\n+        touchPress();\n+        break;\n+      case MotionEvent.ACTION_UP:\n+      case MotionEvent.ACTION_POINTER_UP:\n+        if (trackId == event.getPointerId(pointerIndex))\n+          trackId = -1;\n+        break;\n+    }\n+\n+    if (trackId == -1)\n+      return false;\n+\n+    int x = (int) event.getX(event.findPointerIndex(trackId));\n+    int y = (int) event.getY(event.findPointerIndex(trackId));\n+    if (xAdjusted)\n+    {\n+      axes[0] = (y - maxHeight) / maxHeight;\n+      axes[1] = ((x * aspectAdjusted) - maxWidth) / maxWidth;\n+    }\n+    else\n+    {\n+', 'updated_at': '2019-01-20T11:46:13Z', 'original_position': 107, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249275124', 'created_at': '2019-01-20T11:46:13Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'url': 'https://api.github.com/users/BhaaLseN', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'html_url': 'https://github.com/BhaaLseN', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/826052?v=4', 'login': 'BhaaLseN', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'id': 826052}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7500'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249275124'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249275124'}}, 'id': 249275124}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7500}
2019-01-20T11:45:49.155216	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Android: Add IR pointer control to touch overlay', 'author': 'BhaaLseN', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500#pullrequestreview-194389197', 'comments': [{'pull_request_review_id': 194389197, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7500', 'position': 114, 'body': 'Uh, I specifically meant the `for` loop, sorry for not being too precise earlier (although it _also_ applies to the `if` inside). Generally the code style suggests to add curlies when either the contained block statement or the block introduction (usually a condition for `if`/`while` or the ranges and stuff for `for` loops) spans over more than one line to improve readability - even when the compiler would accept it that way.', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java', 'original_commit_id': '70e112954681932bf6e53f418750d4f6d8766cea', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249275107', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI3NTEwNw==', 'commit_id': '70e112954681932bf6e53f418750d4f6d8766cea', 'author_association': 'MEMBER', 'diff_hunk': '@@ -166,35 +199,43 @@ public boolean onTouch(View v, MotionEvent event)\n       {\n         case MotionEvent.ACTION_DOWN:\n         case MotionEvent.ACTION_POINTER_DOWN:\n-        case MotionEvent.ACTION_MOVE:\n-          // Up, Down, Left, Right\n-          boolean[] pressed = {false, false, false, false};\n           // If a pointer enters the bounds of a button, press that button.\n           if (dpad.getBounds()\n                   .contains((int) event.getX(pointerIndex), (int) event.getY(pointerIndex)))\n           {\n+            dpad.setTrackId(event.getPointerId(pointerIndex));\n+            pressed = true;\n+          }\n+        case MotionEvent.ACTION_MOVE:\n+          if (dpad.getTrackId() == event.getPointerId(pointerIndex))\n+          {\n+            // Up, Down, Left, Right\n+            boolean[] dpadPressed = {false, false, false, false};\n+\n             if (dpad.getBounds().top + (dpad.getHeight() / 3) > (int) event.getY(pointerIndex))\n-              pressed[0] = true;\n+              dpadPressed[0] = true;\n             if (dpad.getBounds().bottom - (dpad.getHeight() / 3) < (int) event.getY(pointerIndex))\n-              pressed[1] = true;\n+              dpadPressed[1] = true;\n             if (dpad.getBounds().left + (dpad.getWidth() / 3) > (int) event.getX(pointerIndex))\n-              pressed[2] = true;\n+              dpadPressed[2] = true;\n             if (dpad.getBounds().right - (dpad.getWidth() / 3) < (int) event.getX(pointerIndex))\n-              pressed[3] = true;\n+              dpadPressed[3] = true;\n \n             // Release the buttons first, then press\n-            for (int i = 0; i < pressed.length; i++)\n-              if (!pressed[i])\n+            for (int i = 0; i < dpadPressed.length; i++)', 'updated_at': '2019-01-20T11:45:47Z', 'original_position': 114, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249275107', 'created_at': '2019-01-20T11:45:47Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'url': 'https://api.github.com/users/BhaaLseN', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'html_url': 'https://github.com/BhaaLseN', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/826052?v=4', 'login': 'BhaaLseN', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'id': 826052}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7500'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249275107'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249275107'}}, 'id': 249275107}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7500}
2019-01-20T11:40:35.055039	{'source': 'ghhookparser', 'action': 'edited', 'pr_title': 'Implement MacOS Updater', 'author': 'BhaaLseN', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717#pullrequestreview-194388628', 'comments': [{'pull_request_review_id': 194388628, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717', 'position': 690, 'body': '`if` has curlies, so the `else` should have some as well.', 'path': 'Source/Core/MacUpdater/AppDelegate.mm', 'original_commit_id': '0b7f1717673b05ee395c895e5a9da65898398a7c', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249274625', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI3NDYyNQ==', 'commit_id': '0b7f1717673b05ee395c895e5a9da65898398a7c', 'author_association': 'MEMBER', 'diff_hunk': '@@ -0,0 +1,790 @@\n+// Copyright 2019 Dolphin Emulator Project\n+// Licensed under GPLv2+\n+// Refer to the license.txt file included.\n+\n+#import "AppDelegate.h"\n+\n+#include "UICommon/AutoUpdate.h"\n+\n+#include <Cocoa/Cocoa.h>\n+#include <OptionParser.h>\n+#include <algorithm>\n+#include <array>\n+#include <chrono>\n+#include <cstdio>\n+#include <ed25519/ed25519.h>\n+#include <mbedtls/base64.h>\n+#include <mbedtls/sha256.h>\n+#include <optional>\n+#include <signal.h>\n+#include <thread>\n+#include <unistd.h>\n+#include <vector>\n+#include <zlib.h>\n+\n+#include "Common/CommonPaths.h"\n+#include "Common/CommonTypes.h"\n+#include "Common/FileUtil.h"\n+#include "Common/HttpRequest.h"\n+#include "Common/StringUtil.h"\n+\n+#include "MacUpdater/UI.h"\n+\n+namespace\n+{\n+// Public key used to verify update manifests.\n+const u8 UPDATE_PUB_KEY[] = {0x2a, 0xb3, 0xd1, 0xdc, 0x6e, 0xf5, 0x07, 0xf6, 0xa0, 0x6c, 0x7c,\n+                             0x54, 0xdf, 0x54, 0xf4, 0x42, 0x80, 0xa6, 0x28, 0x8b, 0x6d, 0x70,\n+                             0x14, 0xb5, 0x4c, 0x34, 0x95, 0x20, 0x4d, 0xd4, 0xd3, 0x5d};\n+\n+const char UPDATE_TEMP_DIR[] = "TempUpdate";\n+\n+// Where to log updater output.\n+FILE* log_fp = stderr;\n+\n+void FlushLog()\n+{\n+  fflush(log_fp);\n+  fclose(log_fp);\n+}\n+\n+// Internal representation of options passed on the command-line.\n+struct Options\n+{\n+  std::string this_manifest_url;\n+  std::string next_manifest_url;\n+  std::string content_store_url;\n+  std::string install_base_path;\n+  std::optional<std::string> binary_to_restart;\n+  std::optional<pid_t> parent_pid;\n+  std::optional<std::string> log_file;\n+};\n+\n+std::optional<Options> ParseCommandLine(std::vector<std::string>& args)\n+{\n+  using optparse::OptionParser;\n+\n+  OptionParser parser =\n+      OptionParser().prog("Dolphin Updater").description("Dolphin Updater binary");\n+\n+  parser.add_option("--this-manifest-url")\n+      .dest("this-manifest-url")\n+      .help("URL to the update manifest for the currently installed version.")\n+      .metavar("URL");\n+  parser.add_option("--next-manifest-url")\n+      .dest("next-manifest-url")\n+      .help("URL to the update manifest for the to-be-installed version.")\n+      .metavar("URL");\n+  parser.add_option("--content-store-url")\n+      .dest("content-store-url")\n+      .help("Base URL of the content store where files to download are stored.")\n+      .metavar("URL");\n+  parser.add_option("--install-base-path")\n+      .dest("install-base-path")\n+      .help("Base path of the Dolphin install to be updated.")\n+      .metavar("PATH");\n+  parser.add_option("--binary-to-restart")\n+      .dest("binary-to-restart")\n+      .help("Binary to restart after the update is over.")\n+      .metavar("PATH");\n+  parser.add_option("--log-file")\n+      .dest("log-file")\n+      .help("File where to log updater debug output.")\n+      .metavar("PATH");\n+  parser.add_option("--parent-pid")\n+      .dest("parent-pid")\n+      .type("int")\n+      .help("(optional) PID of the parent process. The updater will wait for this process to "\n+            "complete before proceeding.")\n+      .metavar("PID");\n+\n+  optparse::Values options = parser.parse_args(args);\n+\n+  Options opts;\n+\n+  // Required arguments.\n+  std::vector<std::string> required{"this-manifest-url", "next-manifest-url", "content-store-url",\n+                                    "install-base-path"};\n+  for (const auto& req : required)\n+  {\n+    if (!options.is_set(req))\n+    {\n+      parser.print_help();\n+      return {};\n+    }\n+  }\n+  opts.this_manifest_url = options["this-manifest-url"];\n+  opts.next_manifest_url = options["next-manifest-url"];\n+  opts.content_store_url = options["content-store-url"];\n+  opts.install_base_path = options["install-base-path"];\n+\n+  // Optional arguments.\n+  if (options.is_set("binary-to-restart"))\n+    opts.binary_to_restart = options["binary-to-restart"];\n+  if (options.is_set("parent-pid"))\n+    opts.parent_pid = (pid_t)options.get("parent-pid");\n+  if (options.is_set("log-file"))\n+    opts.log_file = options["log-file"];\n+\n+  return opts;\n+}\n+\n+std::optional<std::string> GzipInflate(const std::string& data)\n+{\n+  z_stream zstrm;\n+  zstrm.zalloc = nullptr;\n+  zstrm.zfree = nullptr;\n+  zstrm.opaque = nullptr;\n+  zstrm.avail_in = static_cast<u32>(data.size());\n+  zstrm.next_in = reinterpret_cast<u8*>(const_cast<char*>(data.data()));\n+\n+  // 16 + MAX_WBITS means gzip. Don\'t ask me.\n+  inflateInit2(&zstrm, 16 + MAX_WBITS);\n+\n+  std::string out;\n+  char buffer[4096];\n+  int ret;\n+\n+  do\n+  {\n+    zstrm.avail_out = sizeof(buffer);\n+    zstrm.next_out = reinterpret_cast<u8*>(buffer);\n+\n+    ret = inflate(&zstrm, 0);\n+    out.append(buffer, sizeof(buffer) - zstrm.avail_out);\n+  } while (ret == Z_OK);\n+\n+  inflateEnd(&zstrm);\n+\n+  if (ret != Z_STREAM_END)\n+  {\n+    fprintf(log_fp, "Could not read the data as gzip: error %d.\\n", ret);\n+    return {};\n+  }\n+\n+  return out;\n+}\n+\n+bool VerifySignature(const std::string& data, const std::string& b64_signature)\n+{\n+  u8 signature[64];  // ed25519 sig size.\n+  size_t sig_size;\n+\n+  if (mbedtls_base64_decode(signature, sizeof(signature), &sig_size,\n+                            reinterpret_cast<const u8*>(b64_signature.data()),\n+                            b64_signature.size()) ||\n+      sig_size != sizeof(signature))\n+  {\n+    fprintf(log_fp, "Invalid base64: %s\\n", b64_signature.c_str());\n+    return false;\n+  }\n+\n+  return ed25519_verify(signature, reinterpret_cast<const u8*>(data.data()), data.size(),\n+                        UPDATE_PUB_KEY);\n+}\n+\n+struct Manifest\n+{\n+  using Filename = std::string;\n+  using Hash = std::array<u8, 16>;\n+  std::map<Filename, Hash> entries;\n+};\n+\n+bool HexDecode(const std::string& hex, u8* buffer, size_t size)\n+{\n+  if (hex.size() != size * 2)\n+    return false;\n+\n+  auto DecodeNibble = [](char c) -> std::optional<u8> {\n+    if (c >= \'0\' && c <= \'9\')\n+      return static_cast<u8>(c - \'0\');\n+    else if (c >= \'a\' && c <= \'f\')\n+      return static_cast<u8>(c - \'a\' + 10);\n+    else if (c >= \'A\' && c <= \'F\')\n+      return static_cast<u8>(c - \'A\' + 10);\n+    else\n+      return {};\n+  };\n+  for (size_t i = 0; i < size; ++i)\n+  {\n+    std::optional<u8> high = DecodeNibble(hex[2 * i]);\n+    std::optional<u8> low = DecodeNibble(hex[2 * i + 1]);\n+\n+    if (!high || !low)\n+      return false;\n+\n+    buffer[i] = (*high << 4) | *low;\n+  }\n+\n+  return true;\n+}\n+\n+std::string HexEncode(const u8* buffer, size_t size)\n+{\n+  std::string out(size * 2, \'\\0\');\n+\n+  for (size_t i = 0; i < size; ++i)\n+  {\n+    out[2 * i] = "0123456789abcdef"[buffer[i] >> 4];\n+    out[2 * i + 1] = "0123456789abcdef"[buffer[i] & 0xF];\n+  }\n+\n+  return out;\n+}\n+\n+std::optional<Manifest> ParseManifest(const std::string& manifest)\n+{\n+  Manifest parsed;\n+  size_t pos = 0;\n+\n+  while (pos < manifest.size())\n+  {\n+    size_t filename_end_pos = manifest.find(\'\\t\', pos);\n+    if (filename_end_pos == std::string::npos)\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: could not find filename end.\\n", parsed.entries.size());\n+      return {};\n+    }\n+    size_t hash_end_pos = manifest.find(\'\\n\', filename_end_pos);\n+    if (hash_end_pos == std::string::npos)\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: could not find hash end.\\n", parsed.entries.size());\n+      return {};\n+    }\n+\n+    std::string filename = manifest.substr(pos, filename_end_pos - pos);\n+    std::string hash = manifest.substr(filename_end_pos + 1, hash_end_pos - filename_end_pos - 1);\n+    if (hash.size() != 32)\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: invalid hash: \\"%s\\".\\n", parsed.entries.size(),\n+              hash.c_str());\n+      return {};\n+    }\n+\n+    Manifest::Hash decoded_hash;\n+    if (!HexDecode(hash, decoded_hash.data(), decoded_hash.size()))\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: invalid hash: \\"%s\\".\\n", parsed.entries.size(),\n+              hash.c_str());\n+      return {};\n+    }\n+\n+    parsed.entries[filename] = decoded_hash;\n+    pos = hash_end_pos + 1;\n+  }\n+\n+  return parsed;\n+}\n+\n+// Not showing a progress bar here because this part is just too quick\n+std::optional<Manifest> FetchAndParseManifest(const std::string& url)\n+{\n+  Common::HttpRequest http;\n+\n+  Common::HttpRequest::Response resp = http.Get(url);\n+  if (!resp)\n+  {\n+    fprintf(log_fp, "Manifest download failed.\\n");\n+    return {};\n+  }\n+\n+  std::string contents(reinterpret_cast<char*>(resp->data()), resp->size());\n+  std::optional<std::string> maybe_decompressed = GzipInflate(contents);\n+  if (!maybe_decompressed)\n+    return {};\n+  std::string decompressed = std::move(*maybe_decompressed);\n+\n+  // Split into manifest and signature.\n+  size_t boundary = decompressed.rfind("\\n\\n");\n+  if (boundary == std::string::npos)\n+  {\n+    fprintf(log_fp, "No signature was found in manifest.\\n");\n+    return {};\n+  }\n+\n+  std::string signature_block = decompressed.substr(boundary + 2);  // 2 for "\\n\\n".\n+  decompressed.resize(boundary + 1);                                // 1 to keep the final "\\n".\n+\n+  std::vector<std::string> signatures = SplitString(signature_block, \'\\n\');\n+  bool found_valid_signature = false;\n+  for (const auto& signature : signatures)\n+  {\n+    if (VerifySignature(decompressed, signature))\n+    {\n+      found_valid_signature = true;\n+      break;\n+    }\n+  }\n+  if (!found_valid_signature)\n+  {\n+    fprintf(log_fp, "Could not verify signature of the manifest.\\n");\n+    return {};\n+  }\n+\n+  return ParseManifest(decompressed);\n+}\n+\n+// Represent the operations to be performed by the updater.\n+struct TodoList\n+{\n+  struct DownloadOp\n+  {\n+    Manifest::Filename filename;\n+    Manifest::Hash hash;\n+  };\n+  std::vector<DownloadOp> to_download;\n+\n+  struct UpdateOp\n+  {\n+    Manifest::Filename filename;\n+    std::optional<Manifest::Hash> old_hash;\n+    Manifest::Hash new_hash;\n+  };\n+  std::vector<UpdateOp> to_update;\n+\n+  struct DeleteOp\n+  {\n+    Manifest::Filename filename;\n+    Manifest::Hash old_hash;\n+  };\n+  std::vector<DeleteOp> to_delete;\n+\n+  void Log() const\n+  {\n+    if (to_update.size())\n+    {\n+      fprintf(log_fp, "Updating:\\n");\n+      for (const auto& op : to_update)\n+      {\n+        std::string old_desc =\n+            op.old_hash ? HexEncode(op.old_hash->data(), op.old_hash->size()) : "(new)";\n+        fprintf(log_fp, "  - %s: %s -> %s\\n", op.filename.c_str(), old_desc.c_str(),\n+                HexEncode(op.new_hash.data(), op.new_hash.size()).c_str());\n+      }\n+    }\n+    if (to_delete.size())\n+    {\n+      fprintf(log_fp, "Deleting:\\n");\n+      for (const auto& op : to_delete)\n+      {\n+        fprintf(log_fp, "  - %s (%s)\\n", op.filename.c_str(),\n+                HexEncode(op.old_hash.data(), op.old_hash.size()).c_str());\n+      }\n+    }\n+  }\n+};\n+\n+TodoList ComputeActionsToDo(Manifest this_manifest, Manifest next_manifest)\n+{\n+  TodoList todo;\n+\n+  // Delete if present in this manifest but not in next manifest.\n+  for (const auto& entry : this_manifest.entries)\n+  {\n+    if (next_manifest.entries.find(entry.first) == next_manifest.entries.end())\n+    {\n+      TodoList::DeleteOp del;\n+      del.filename = entry.first;\n+      del.old_hash = entry.second;\n+      todo.to_delete.push_back(std::move(del));\n+    }\n+  }\n+\n+  // Download and update if present in next manifest with different hash from this manifest.\n+  for (const auto& entry : next_manifest.entries)\n+  {\n+    std::optional<Manifest::Hash> old_hash;\n+\n+    const auto& old_entry = this_manifest.entries.find(entry.first);\n+    if (old_entry != this_manifest.entries.end())\n+      old_hash = old_entry->second;\n+\n+    if (!old_hash || *old_hash != entry.second)\n+    {\n+      TodoList::DownloadOp download;\n+      download.filename = entry.first;\n+      download.hash = entry.second;\n+\n+      todo.to_download.push_back(std::move(download));\n+\n+      TodoList::UpdateOp update;\n+      update.filename = entry.first;\n+      update.old_hash = old_hash;\n+      update.new_hash = entry.second;\n+      todo.to_update.push_back(std::move(update));\n+    }\n+  }\n+\n+  return todo;\n+}\n+\n+std::optional<std::string> FindOrCreateTempDir(const std::string& base_path)\n+{\n+  std::string temp_path = base_path + DIR_SEP + UPDATE_TEMP_DIR;\n+  int counter = 0;\n+\n+  do\n+  {\n+    if (!File::Exists(temp_path))\n+    {\n+      if (File::CreateDir(temp_path))\n+        return temp_path;\n+      else\n+      {\n+        fprintf(log_fp, "Couldn\'t create temp directory.\\n");\n+        return {};\n+      }\n+    }\n+    else if (File::IsDirectory(temp_path))\n+    {\n+      return temp_path;\n+    }\n+    else\n+    {\n+      // Try again with a counter appended to the path.\n+      std::string suffix = UPDATE_TEMP_DIR + std::to_string(counter);\n+      temp_path = base_path + DIR_SEP + suffix;\n+    }\n+  } while (counter++ < 10);\n+\n+  fprintf(log_fp, "Could not find an appropriate temp directory name. Giving up.\\n");\n+  return {};\n+}\n+\n+void CleanUpTempDir(const std::string& temp_dir, const TodoList& todo)\n+{\n+  // This is best-effort cleanup, we ignore most errors.\n+  for (const auto& download : todo.to_download)\n+    File::Delete(temp_dir + DIR_SEP + HexEncode(download.hash.data(), download.hash.size()));\n+  File::DeleteDir(temp_dir);\n+}\n+\n+Manifest::Hash ComputeHash(const std::string& contents)\n+{\n+  std::array<u8, 32> full;\n+  mbedtls_sha256(reinterpret_cast<const u8*>(contents.data()), contents.size(), full.data(), false);\n+\n+  Manifest::Hash out;\n+  std::copy(full.begin(), full.begin() + 16, out.begin());\n+  return out;\n+}\n+\n+bool ProgressCallback(double total, double now, double, double)\n+{\n+  UI::SetCurrentProgress(static_cast<int>(now), static_cast<int>(total));\n+  return true;\n+}\n+\n+bool DownloadContent(const std::vector<TodoList::DownloadOp>& to_download,\n+                     const std::string& content_base_url, const std::string& temp_path)\n+{\n+  Common::HttpRequest req(std::chrono::seconds(30), ProgressCallback);\n+\n+  UI::SetTotalMarquee(false);\n+\n+  for (size_t i = 0; i < to_download.size(); i++)\n+  {\n+    UI::SetTotalProgress(static_cast<int>(i + 1), static_cast<int>(to_download.size()));\n+\n+    auto& download = to_download[i];\n+\n+    std::string hash_filename = HexEncode(download.hash.data(), download.hash.size());\n+    UI::SetDescription("Downloading " + download.filename + "... (File " + std::to_string(i + 1) +\n+                       " of " + std::to_string(to_download.size()) + ")");\n+    UI::SetCurrentMarquee(false);\n+\n+    // Add slashes where needed.\n+    std::string content_store_path = hash_filename;\n+    content_store_path.insert(4, "/");\n+    content_store_path.insert(2, "/");\n+\n+    std::string url = content_base_url + content_store_path;\n+    fprintf(log_fp, "Downloading %s ...\\n", url.c_str());\n+\n+    auto resp = req.Get(url);\n+    if (!resp)\n+      return false;\n+\n+    UI::SetCurrentMarquee(true);\n+    UI::SetDescription("Verifying " + download.filename + "...");\n+\n+    std::string contents(reinterpret_cast<char*>(resp->data()), resp->size());\n+    std::optional<std::string> maybe_decompressed = GzipInflate(contents);\n+    if (!maybe_decompressed)\n+      return false;\n+    std::string decompressed = std::move(*maybe_decompressed);\n+\n+    // Check that the downloaded contents have the right hash.\n+    Manifest::Hash contents_hash = ComputeHash(decompressed);\n+    if (contents_hash != download.hash)\n+    {\n+      fprintf(log_fp, "Wrong hash on downloaded content %s.\\n", url.c_str());\n+      return false;\n+    }\n+\n+    std::string out = temp_path + DIR_SEP + hash_filename;\n+    if (!File::WriteStringToFile(decompressed, out))\n+    {\n+      fprintf(log_fp, "Could not write cache file %s.\\n", out.c_str());\n+      return false;\n+    }\n+  }\n+  return true;\n+}\n+\n+bool BackupFile(const std::string& path)\n+{\n+  std::string backup_path = path + ".bak";\n+  fprintf(log_fp, "Backing up unknown pre-existing %s to .bak.\\n", path.c_str());\n+  if (!File::Rename(path, backup_path))\n+  {\n+    fprintf(log_fp, "Cound not rename %s to %s for backup.\\n", path.c_str(), backup_path.c_str());\n+    return false;\n+  }\n+  return true;\n+}\n+\n+bool UpdateFiles(const std::vector<TodoList::UpdateOp>& to_update,\n+                 const std::string& install_base_path, const std::string& temp_path)\n+{\n+  for (const auto& op : to_update)\n+  {\n+    std::string path = install_base_path + DIR_SEP + op.filename;\n+    if (!File::CreateFullPath(path))\n+    {\n+      fprintf(log_fp, "Could not create directory structure for %s.\\n", op.filename.c_str());\n+      return false;\n+    }\n+\n+    if (File::Exists(path))\n+    {\n+      std::string contents;\n+      if (!File::ReadFileToString(path, contents))\n+      {\n+        fprintf(log_fp, "Could not read existing file %s.\\n", op.filename.c_str());\n+        return false;\n+      }\n+      Manifest::Hash contents_hash = ComputeHash(contents);\n+      if (contents_hash == op.new_hash)\n+      {\n+        fprintf(log_fp, "File %s was already up to date. Partial update?\\n", op.filename.c_str());\n+        continue;\n+      }\n+      else if (!op.old_hash || contents_hash != *op.old_hash)\n+      {\n+        if (!BackupFile(path))\n+          return false;\n+      }\n+    }\n+\n+    // Now we can safely move the new contents to the location.\n+    std::string content_filename = HexEncode(op.new_hash.data(), op.new_hash.size());\n+    fprintf(log_fp, "Updating file %s from content %s...\\n", op.filename.c_str(),\n+            content_filename.c_str());\n+    if (!File::Copy(temp_path + DIR_SEP + content_filename, path))\n+    {\n+      fprintf(log_fp, "Could not update file %s.\\n", op.filename.c_str());\n+      return false;\n+    }\n+  }\n+  return true;\n+}\n+\n+bool DeleteObsoleteFiles(const std::vector<TodoList::DeleteOp>& to_delete,\n+                         const std::string& install_base_path)\n+{\n+  for (const auto& op : to_delete)\n+  {\n+    std::string path = install_base_path + DIR_SEP + op.filename;\n+\n+    if (!File::Exists(path))\n+    {\n+      fprintf(log_fp, "File %s is already missing.\\n", op.filename.c_str());\n+      continue;\n+    }\n+    else\n+    {\n+      std::string contents;\n+      if (!File::ReadFileToString(path, contents))\n+      {\n+        fprintf(log_fp, "Could not read file planned for deletion: %s.\\n", op.filename.c_str());\n+        return false;\n+      }\n+      Manifest::Hash contents_hash = ComputeHash(contents);\n+      if (contents_hash != op.old_hash)\n+      {\n+        if (!BackupFile(path))\n+          return false;\n+      }\n+\n+      File::Delete(path);\n+    }\n+  }\n+  return true;\n+}\n+\n+bool PerformUpdate(const TodoList& todo, const std::string& install_base_path,\n+                   const std::string& content_base_url, const std::string& temp_path)\n+{\n+  fprintf(log_fp, "Starting download step...\\n");\n+  if (!DownloadContent(todo.to_download, content_base_url, temp_path))\n+    return false;\n+  fprintf(log_fp, "Download step completed.\\n");\n+\n+  fprintf(log_fp, "Starting update step...\\n");\n+  if (!UpdateFiles(todo.to_update, install_base_path, temp_path))\n+    return false;\n+  fprintf(log_fp, "Update step completed.\\n");\n+\n+  fprintf(log_fp, "Starting deletion step...\\n");\n+  if (!DeleteObsoleteFiles(todo.to_delete, install_base_path))\n+    return false;\n+  fprintf(log_fp, "Deletion step completed.\\n");\n+\n+  return true;\n+}\n+\n+void FatalError(const std::string& message)\n+{\n+  fprintf(log_fp, "%s\\n", message.c_str());\n+\n+  UI::Error(message);\n+}\n+}  // namespace\n+\n+@interface AppDelegate ()\n+\n+@end\n+\n+@implementation AppDelegate\n+\n+- (void)applicationDidFinishLaunching:(NSNotification*)aNotification\n+{\n+  NSArray* arguments = [[NSProcessInfo processInfo] arguments];\n+\n+  __block std::vector<std::string> args;\n+  [arguments\n+      enumerateObjectsUsingBlock:^(NSString* _Nonnull obj, NSUInteger idx, BOOL* _Nonnull stop) {\n+        args.push_back(std::string([obj UTF8String]));\n+      }];\n+\n+  std::optional<Options> maybe_opts = ParseCommandLine(args);\n+\n+  dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul);\n+  dispatch_async(queue, ^{\n+    if (!maybe_opts)\n+    {\n+      [NSApp performSelector:@selector(terminate:) withObject:nil afterDelay:0.0];\n+      return;\n+    }\n+\n+    Options opts = std::move(*maybe_opts);\n+\n+    if (opts.log_file)\n+    {\n+      log_fp = fopen(opts.log_file.value().c_str(), "w");\n+      if (!log_fp)\n+      {\n+        log_fp = stderr;\n+      }\n+      else', 'updated_at': '2019-01-20T11:40:32Z', 'original_position': 690, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249274625', 'created_at': '2019-01-20T11:29:59Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'url': 'https://api.github.com/users/BhaaLseN', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'html_url': 'https://github.com/BhaaLseN', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/826052?v=4', 'login': 'BhaaLseN', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'id': 826052}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249274625'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249274625'}}, 'id': 249274625}, {'pull_request_review_id': 194388628, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717', 'position': 430, 'body': 'The `else` has curlies, so the `if` should have some as well.', 'path': 'Source/Core/MacUpdater/AppDelegate.mm', 'original_commit_id': '0b7f1717673b05ee395c895e5a9da65898398a7c', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249274729', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI3NDcyOQ==', 'commit_id': '0b7f1717673b05ee395c895e5a9da65898398a7c', 'author_association': 'MEMBER', 'diff_hunk': '@@ -0,0 +1,790 @@\n+// Copyright 2019 Dolphin Emulator Project\n+// Licensed under GPLv2+\n+// Refer to the license.txt file included.\n+\n+#import "AppDelegate.h"\n+\n+#include "UICommon/AutoUpdate.h"\n+\n+#include <Cocoa/Cocoa.h>\n+#include <OptionParser.h>\n+#include <algorithm>\n+#include <array>\n+#include <chrono>\n+#include <cstdio>\n+#include <ed25519/ed25519.h>\n+#include <mbedtls/base64.h>\n+#include <mbedtls/sha256.h>\n+#include <optional>\n+#include <signal.h>\n+#include <thread>\n+#include <unistd.h>\n+#include <vector>\n+#include <zlib.h>\n+\n+#include "Common/CommonPaths.h"\n+#include "Common/CommonTypes.h"\n+#include "Common/FileUtil.h"\n+#include "Common/HttpRequest.h"\n+#include "Common/StringUtil.h"\n+\n+#include "MacUpdater/UI.h"\n+\n+namespace\n+{\n+// Public key used to verify update manifests.\n+const u8 UPDATE_PUB_KEY[] = {0x2a, 0xb3, 0xd1, 0xdc, 0x6e, 0xf5, 0x07, 0xf6, 0xa0, 0x6c, 0x7c,\n+                             0x54, 0xdf, 0x54, 0xf4, 0x42, 0x80, 0xa6, 0x28, 0x8b, 0x6d, 0x70,\n+                             0x14, 0xb5, 0x4c, 0x34, 0x95, 0x20, 0x4d, 0xd4, 0xd3, 0x5d};\n+\n+const char UPDATE_TEMP_DIR[] = "TempUpdate";\n+\n+// Where to log updater output.\n+FILE* log_fp = stderr;\n+\n+void FlushLog()\n+{\n+  fflush(log_fp);\n+  fclose(log_fp);\n+}\n+\n+// Internal representation of options passed on the command-line.\n+struct Options\n+{\n+  std::string this_manifest_url;\n+  std::string next_manifest_url;\n+  std::string content_store_url;\n+  std::string install_base_path;\n+  std::optional<std::string> binary_to_restart;\n+  std::optional<pid_t> parent_pid;\n+  std::optional<std::string> log_file;\n+};\n+\n+std::optional<Options> ParseCommandLine(std::vector<std::string>& args)\n+{\n+  using optparse::OptionParser;\n+\n+  OptionParser parser =\n+      OptionParser().prog("Dolphin Updater").description("Dolphin Updater binary");\n+\n+  parser.add_option("--this-manifest-url")\n+      .dest("this-manifest-url")\n+      .help("URL to the update manifest for the currently installed version.")\n+      .metavar("URL");\n+  parser.add_option("--next-manifest-url")\n+      .dest("next-manifest-url")\n+      .help("URL to the update manifest for the to-be-installed version.")\n+      .metavar("URL");\n+  parser.add_option("--content-store-url")\n+      .dest("content-store-url")\n+      .help("Base URL of the content store where files to download are stored.")\n+      .metavar("URL");\n+  parser.add_option("--install-base-path")\n+      .dest("install-base-path")\n+      .help("Base path of the Dolphin install to be updated.")\n+      .metavar("PATH");\n+  parser.add_option("--binary-to-restart")\n+      .dest("binary-to-restart")\n+      .help("Binary to restart after the update is over.")\n+      .metavar("PATH");\n+  parser.add_option("--log-file")\n+      .dest("log-file")\n+      .help("File where to log updater debug output.")\n+      .metavar("PATH");\n+  parser.add_option("--parent-pid")\n+      .dest("parent-pid")\n+      .type("int")\n+      .help("(optional) PID of the parent process. The updater will wait for this process to "\n+            "complete before proceeding.")\n+      .metavar("PID");\n+\n+  optparse::Values options = parser.parse_args(args);\n+\n+  Options opts;\n+\n+  // Required arguments.\n+  std::vector<std::string> required{"this-manifest-url", "next-manifest-url", "content-store-url",\n+                                    "install-base-path"};\n+  for (const auto& req : required)\n+  {\n+    if (!options.is_set(req))\n+    {\n+      parser.print_help();\n+      return {};\n+    }\n+  }\n+  opts.this_manifest_url = options["this-manifest-url"];\n+  opts.next_manifest_url = options["next-manifest-url"];\n+  opts.content_store_url = options["content-store-url"];\n+  opts.install_base_path = options["install-base-path"];\n+\n+  // Optional arguments.\n+  if (options.is_set("binary-to-restart"))\n+    opts.binary_to_restart = options["binary-to-restart"];\n+  if (options.is_set("parent-pid"))\n+    opts.parent_pid = (pid_t)options.get("parent-pid");\n+  if (options.is_set("log-file"))\n+    opts.log_file = options["log-file"];\n+\n+  return opts;\n+}\n+\n+std::optional<std::string> GzipInflate(const std::string& data)\n+{\n+  z_stream zstrm;\n+  zstrm.zalloc = nullptr;\n+  zstrm.zfree = nullptr;\n+  zstrm.opaque = nullptr;\n+  zstrm.avail_in = static_cast<u32>(data.size());\n+  zstrm.next_in = reinterpret_cast<u8*>(const_cast<char*>(data.data()));\n+\n+  // 16 + MAX_WBITS means gzip. Don\'t ask me.\n+  inflateInit2(&zstrm, 16 + MAX_WBITS);\n+\n+  std::string out;\n+  char buffer[4096];\n+  int ret;\n+\n+  do\n+  {\n+    zstrm.avail_out = sizeof(buffer);\n+    zstrm.next_out = reinterpret_cast<u8*>(buffer);\n+\n+    ret = inflate(&zstrm, 0);\n+    out.append(buffer, sizeof(buffer) - zstrm.avail_out);\n+  } while (ret == Z_OK);\n+\n+  inflateEnd(&zstrm);\n+\n+  if (ret != Z_STREAM_END)\n+  {\n+    fprintf(log_fp, "Could not read the data as gzip: error %d.\\n", ret);\n+    return {};\n+  }\n+\n+  return out;\n+}\n+\n+bool VerifySignature(const std::string& data, const std::string& b64_signature)\n+{\n+  u8 signature[64];  // ed25519 sig size.\n+  size_t sig_size;\n+\n+  if (mbedtls_base64_decode(signature, sizeof(signature), &sig_size,\n+                            reinterpret_cast<const u8*>(b64_signature.data()),\n+                            b64_signature.size()) ||\n+      sig_size != sizeof(signature))\n+  {\n+    fprintf(log_fp, "Invalid base64: %s\\n", b64_signature.c_str());\n+    return false;\n+  }\n+\n+  return ed25519_verify(signature, reinterpret_cast<const u8*>(data.data()), data.size(),\n+                        UPDATE_PUB_KEY);\n+}\n+\n+struct Manifest\n+{\n+  using Filename = std::string;\n+  using Hash = std::array<u8, 16>;\n+  std::map<Filename, Hash> entries;\n+};\n+\n+bool HexDecode(const std::string& hex, u8* buffer, size_t size)\n+{\n+  if (hex.size() != size * 2)\n+    return false;\n+\n+  auto DecodeNibble = [](char c) -> std::optional<u8> {\n+    if (c >= \'0\' && c <= \'9\')\n+      return static_cast<u8>(c - \'0\');\n+    else if (c >= \'a\' && c <= \'f\')\n+      return static_cast<u8>(c - \'a\' + 10);\n+    else if (c >= \'A\' && c <= \'F\')\n+      return static_cast<u8>(c - \'A\' + 10);\n+    else\n+      return {};\n+  };\n+  for (size_t i = 0; i < size; ++i)\n+  {\n+    std::optional<u8> high = DecodeNibble(hex[2 * i]);\n+    std::optional<u8> low = DecodeNibble(hex[2 * i + 1]);\n+\n+    if (!high || !low)\n+      return false;\n+\n+    buffer[i] = (*high << 4) | *low;\n+  }\n+\n+  return true;\n+}\n+\n+std::string HexEncode(const u8* buffer, size_t size)\n+{\n+  std::string out(size * 2, \'\\0\');\n+\n+  for (size_t i = 0; i < size; ++i)\n+  {\n+    out[2 * i] = "0123456789abcdef"[buffer[i] >> 4];\n+    out[2 * i + 1] = "0123456789abcdef"[buffer[i] & 0xF];\n+  }\n+\n+  return out;\n+}\n+\n+std::optional<Manifest> ParseManifest(const std::string& manifest)\n+{\n+  Manifest parsed;\n+  size_t pos = 0;\n+\n+  while (pos < manifest.size())\n+  {\n+    size_t filename_end_pos = manifest.find(\'\\t\', pos);\n+    if (filename_end_pos == std::string::npos)\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: could not find filename end.\\n", parsed.entries.size());\n+      return {};\n+    }\n+    size_t hash_end_pos = manifest.find(\'\\n\', filename_end_pos);\n+    if (hash_end_pos == std::string::npos)\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: could not find hash end.\\n", parsed.entries.size());\n+      return {};\n+    }\n+\n+    std::string filename = manifest.substr(pos, filename_end_pos - pos);\n+    std::string hash = manifest.substr(filename_end_pos + 1, hash_end_pos - filename_end_pos - 1);\n+    if (hash.size() != 32)\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: invalid hash: \\"%s\\".\\n", parsed.entries.size(),\n+              hash.c_str());\n+      return {};\n+    }\n+\n+    Manifest::Hash decoded_hash;\n+    if (!HexDecode(hash, decoded_hash.data(), decoded_hash.size()))\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: invalid hash: \\"%s\\".\\n", parsed.entries.size(),\n+              hash.c_str());\n+      return {};\n+    }\n+\n+    parsed.entries[filename] = decoded_hash;\n+    pos = hash_end_pos + 1;\n+  }\n+\n+  return parsed;\n+}\n+\n+// Not showing a progress bar here because this part is just too quick\n+std::optional<Manifest> FetchAndParseManifest(const std::string& url)\n+{\n+  Common::HttpRequest http;\n+\n+  Common::HttpRequest::Response resp = http.Get(url);\n+  if (!resp)\n+  {\n+    fprintf(log_fp, "Manifest download failed.\\n");\n+    return {};\n+  }\n+\n+  std::string contents(reinterpret_cast<char*>(resp->data()), resp->size());\n+  std::optional<std::string> maybe_decompressed = GzipInflate(contents);\n+  if (!maybe_decompressed)\n+    return {};\n+  std::string decompressed = std::move(*maybe_decompressed);\n+\n+  // Split into manifest and signature.\n+  size_t boundary = decompressed.rfind("\\n\\n");\n+  if (boundary == std::string::npos)\n+  {\n+    fprintf(log_fp, "No signature was found in manifest.\\n");\n+    return {};\n+  }\n+\n+  std::string signature_block = decompressed.substr(boundary + 2);  // 2 for "\\n\\n".\n+  decompressed.resize(boundary + 1);                                // 1 to keep the final "\\n".\n+\n+  std::vector<std::string> signatures = SplitString(signature_block, \'\\n\');\n+  bool found_valid_signature = false;\n+  for (const auto& signature : signatures)\n+  {\n+    if (VerifySignature(decompressed, signature))\n+    {\n+      found_valid_signature = true;\n+      break;\n+    }\n+  }\n+  if (!found_valid_signature)\n+  {\n+    fprintf(log_fp, "Could not verify signature of the manifest.\\n");\n+    return {};\n+  }\n+\n+  return ParseManifest(decompressed);\n+}\n+\n+// Represent the operations to be performed by the updater.\n+struct TodoList\n+{\n+  struct DownloadOp\n+  {\n+    Manifest::Filename filename;\n+    Manifest::Hash hash;\n+  };\n+  std::vector<DownloadOp> to_download;\n+\n+  struct UpdateOp\n+  {\n+    Manifest::Filename filename;\n+    std::optional<Manifest::Hash> old_hash;\n+    Manifest::Hash new_hash;\n+  };\n+  std::vector<UpdateOp> to_update;\n+\n+  struct DeleteOp\n+  {\n+    Manifest::Filename filename;\n+    Manifest::Hash old_hash;\n+  };\n+  std::vector<DeleteOp> to_delete;\n+\n+  void Log() const\n+  {\n+    if (to_update.size())\n+    {\n+      fprintf(log_fp, "Updating:\\n");\n+      for (const auto& op : to_update)\n+      {\n+        std::string old_desc =\n+            op.old_hash ? HexEncode(op.old_hash->data(), op.old_hash->size()) : "(new)";\n+        fprintf(log_fp, "  - %s: %s -> %s\\n", op.filename.c_str(), old_desc.c_str(),\n+                HexEncode(op.new_hash.data(), op.new_hash.size()).c_str());\n+      }\n+    }\n+    if (to_delete.size())\n+    {\n+      fprintf(log_fp, "Deleting:\\n");\n+      for (const auto& op : to_delete)\n+      {\n+        fprintf(log_fp, "  - %s (%s)\\n", op.filename.c_str(),\n+                HexEncode(op.old_hash.data(), op.old_hash.size()).c_str());\n+      }\n+    }\n+  }\n+};\n+\n+TodoList ComputeActionsToDo(Manifest this_manifest, Manifest next_manifest)\n+{\n+  TodoList todo;\n+\n+  // Delete if present in this manifest but not in next manifest.\n+  for (const auto& entry : this_manifest.entries)\n+  {\n+    if (next_manifest.entries.find(entry.first) == next_manifest.entries.end())\n+    {\n+      TodoList::DeleteOp del;\n+      del.filename = entry.first;\n+      del.old_hash = entry.second;\n+      todo.to_delete.push_back(std::move(del));\n+    }\n+  }\n+\n+  // Download and update if present in next manifest with different hash from this manifest.\n+  for (const auto& entry : next_manifest.entries)\n+  {\n+    std::optional<Manifest::Hash> old_hash;\n+\n+    const auto& old_entry = this_manifest.entries.find(entry.first);\n+    if (old_entry != this_manifest.entries.end())\n+      old_hash = old_entry->second;\n+\n+    if (!old_hash || *old_hash != entry.second)\n+    {\n+      TodoList::DownloadOp download;\n+      download.filename = entry.first;\n+      download.hash = entry.second;\n+\n+      todo.to_download.push_back(std::move(download));\n+\n+      TodoList::UpdateOp update;\n+      update.filename = entry.first;\n+      update.old_hash = old_hash;\n+      update.new_hash = entry.second;\n+      todo.to_update.push_back(std::move(update));\n+    }\n+  }\n+\n+  return todo;\n+}\n+\n+std::optional<std::string> FindOrCreateTempDir(const std::string& base_path)\n+{\n+  std::string temp_path = base_path + DIR_SEP + UPDATE_TEMP_DIR;\n+  int counter = 0;\n+\n+  do\n+  {\n+    if (!File::Exists(temp_path))\n+    {\n+      if (File::CreateDir(temp_path))', 'updated_at': '2019-01-20T11:40:32Z', 'original_position': 430, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249274729', 'created_at': '2019-01-20T11:33:04Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'url': 'https://api.github.com/users/BhaaLseN', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'html_url': 'https://github.com/BhaaLseN', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/826052?v=4', 'login': 'BhaaLseN', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'id': 826052}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249274729'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249274729'}}, 'id': 249274729}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7717}
2019-01-20T11:40:34.395899	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Implement MacOS Updater', 'author': 'BhaaLseN', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7717#pullrequestreview-194388628', 'comments': [{'pull_request_review_id': 194388628, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717', 'position': 690, 'body': '`if` has curlies, so the `else` should have some as well.', 'path': 'Source/Core/MacUpdater/AppDelegate.mm', 'original_commit_id': '0b7f1717673b05ee395c895e5a9da65898398a7c', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249274625', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI3NDYyNQ==', 'commit_id': '0b7f1717673b05ee395c895e5a9da65898398a7c', 'author_association': 'MEMBER', 'diff_hunk': '@@ -0,0 +1,790 @@\n+// Copyright 2019 Dolphin Emulator Project\n+// Licensed under GPLv2+\n+// Refer to the license.txt file included.\n+\n+#import "AppDelegate.h"\n+\n+#include "UICommon/AutoUpdate.h"\n+\n+#include <Cocoa/Cocoa.h>\n+#include <OptionParser.h>\n+#include <algorithm>\n+#include <array>\n+#include <chrono>\n+#include <cstdio>\n+#include <ed25519/ed25519.h>\n+#include <mbedtls/base64.h>\n+#include <mbedtls/sha256.h>\n+#include <optional>\n+#include <signal.h>\n+#include <thread>\n+#include <unistd.h>\n+#include <vector>\n+#include <zlib.h>\n+\n+#include "Common/CommonPaths.h"\n+#include "Common/CommonTypes.h"\n+#include "Common/FileUtil.h"\n+#include "Common/HttpRequest.h"\n+#include "Common/StringUtil.h"\n+\n+#include "MacUpdater/UI.h"\n+\n+namespace\n+{\n+// Public key used to verify update manifests.\n+const u8 UPDATE_PUB_KEY[] = {0x2a, 0xb3, 0xd1, 0xdc, 0x6e, 0xf5, 0x07, 0xf6, 0xa0, 0x6c, 0x7c,\n+                             0x54, 0xdf, 0x54, 0xf4, 0x42, 0x80, 0xa6, 0x28, 0x8b, 0x6d, 0x70,\n+                             0x14, 0xb5, 0x4c, 0x34, 0x95, 0x20, 0x4d, 0xd4, 0xd3, 0x5d};\n+\n+const char UPDATE_TEMP_DIR[] = "TempUpdate";\n+\n+// Where to log updater output.\n+FILE* log_fp = stderr;\n+\n+void FlushLog()\n+{\n+  fflush(log_fp);\n+  fclose(log_fp);\n+}\n+\n+// Internal representation of options passed on the command-line.\n+struct Options\n+{\n+  std::string this_manifest_url;\n+  std::string next_manifest_url;\n+  std::string content_store_url;\n+  std::string install_base_path;\n+  std::optional<std::string> binary_to_restart;\n+  std::optional<pid_t> parent_pid;\n+  std::optional<std::string> log_file;\n+};\n+\n+std::optional<Options> ParseCommandLine(std::vector<std::string>& args)\n+{\n+  using optparse::OptionParser;\n+\n+  OptionParser parser =\n+      OptionParser().prog("Dolphin Updater").description("Dolphin Updater binary");\n+\n+  parser.add_option("--this-manifest-url")\n+      .dest("this-manifest-url")\n+      .help("URL to the update manifest for the currently installed version.")\n+      .metavar("URL");\n+  parser.add_option("--next-manifest-url")\n+      .dest("next-manifest-url")\n+      .help("URL to the update manifest for the to-be-installed version.")\n+      .metavar("URL");\n+  parser.add_option("--content-store-url")\n+      .dest("content-store-url")\n+      .help("Base URL of the content store where files to download are stored.")\n+      .metavar("URL");\n+  parser.add_option("--install-base-path")\n+      .dest("install-base-path")\n+      .help("Base path of the Dolphin install to be updated.")\n+      .metavar("PATH");\n+  parser.add_option("--binary-to-restart")\n+      .dest("binary-to-restart")\n+      .help("Binary to restart after the update is over.")\n+      .metavar("PATH");\n+  parser.add_option("--log-file")\n+      .dest("log-file")\n+      .help("File where to log updater debug output.")\n+      .metavar("PATH");\n+  parser.add_option("--parent-pid")\n+      .dest("parent-pid")\n+      .type("int")\n+      .help("(optional) PID of the parent process. The updater will wait for this process to "\n+            "complete before proceeding.")\n+      .metavar("PID");\n+\n+  optparse::Values options = parser.parse_args(args);\n+\n+  Options opts;\n+\n+  // Required arguments.\n+  std::vector<std::string> required{"this-manifest-url", "next-manifest-url", "content-store-url",\n+                                    "install-base-path"};\n+  for (const auto& req : required)\n+  {\n+    if (!options.is_set(req))\n+    {\n+      parser.print_help();\n+      return {};\n+    }\n+  }\n+  opts.this_manifest_url = options["this-manifest-url"];\n+  opts.next_manifest_url = options["next-manifest-url"];\n+  opts.content_store_url = options["content-store-url"];\n+  opts.install_base_path = options["install-base-path"];\n+\n+  // Optional arguments.\n+  if (options.is_set("binary-to-restart"))\n+    opts.binary_to_restart = options["binary-to-restart"];\n+  if (options.is_set("parent-pid"))\n+    opts.parent_pid = (pid_t)options.get("parent-pid");\n+  if (options.is_set("log-file"))\n+    opts.log_file = options["log-file"];\n+\n+  return opts;\n+}\n+\n+std::optional<std::string> GzipInflate(const std::string& data)\n+{\n+  z_stream zstrm;\n+  zstrm.zalloc = nullptr;\n+  zstrm.zfree = nullptr;\n+  zstrm.opaque = nullptr;\n+  zstrm.avail_in = static_cast<u32>(data.size());\n+  zstrm.next_in = reinterpret_cast<u8*>(const_cast<char*>(data.data()));\n+\n+  // 16 + MAX_WBITS means gzip. Don\'t ask me.\n+  inflateInit2(&zstrm, 16 + MAX_WBITS);\n+\n+  std::string out;\n+  char buffer[4096];\n+  int ret;\n+\n+  do\n+  {\n+    zstrm.avail_out = sizeof(buffer);\n+    zstrm.next_out = reinterpret_cast<u8*>(buffer);\n+\n+    ret = inflate(&zstrm, 0);\n+    out.append(buffer, sizeof(buffer) - zstrm.avail_out);\n+  } while (ret == Z_OK);\n+\n+  inflateEnd(&zstrm);\n+\n+  if (ret != Z_STREAM_END)\n+  {\n+    fprintf(log_fp, "Could not read the data as gzip: error %d.\\n", ret);\n+    return {};\n+  }\n+\n+  return out;\n+}\n+\n+bool VerifySignature(const std::string& data, const std::string& b64_signature)\n+{\n+  u8 signature[64];  // ed25519 sig size.\n+  size_t sig_size;\n+\n+  if (mbedtls_base64_decode(signature, sizeof(signature), &sig_size,\n+                            reinterpret_cast<const u8*>(b64_signature.data()),\n+                            b64_signature.size()) ||\n+      sig_size != sizeof(signature))\n+  {\n+    fprintf(log_fp, "Invalid base64: %s\\n", b64_signature.c_str());\n+    return false;\n+  }\n+\n+  return ed25519_verify(signature, reinterpret_cast<const u8*>(data.data()), data.size(),\n+                        UPDATE_PUB_KEY);\n+}\n+\n+struct Manifest\n+{\n+  using Filename = std::string;\n+  using Hash = std::array<u8, 16>;\n+  std::map<Filename, Hash> entries;\n+};\n+\n+bool HexDecode(const std::string& hex, u8* buffer, size_t size)\n+{\n+  if (hex.size() != size * 2)\n+    return false;\n+\n+  auto DecodeNibble = [](char c) -> std::optional<u8> {\n+    if (c >= \'0\' && c <= \'9\')\n+      return static_cast<u8>(c - \'0\');\n+    else if (c >= \'a\' && c <= \'f\')\n+      return static_cast<u8>(c - \'a\' + 10);\n+    else if (c >= \'A\' && c <= \'F\')\n+      return static_cast<u8>(c - \'A\' + 10);\n+    else\n+      return {};\n+  };\n+  for (size_t i = 0; i < size; ++i)\n+  {\n+    std::optional<u8> high = DecodeNibble(hex[2 * i]);\n+    std::optional<u8> low = DecodeNibble(hex[2 * i + 1]);\n+\n+    if (!high || !low)\n+      return false;\n+\n+    buffer[i] = (*high << 4) | *low;\n+  }\n+\n+  return true;\n+}\n+\n+std::string HexEncode(const u8* buffer, size_t size)\n+{\n+  std::string out(size * 2, \'\\0\');\n+\n+  for (size_t i = 0; i < size; ++i)\n+  {\n+    out[2 * i] = "0123456789abcdef"[buffer[i] >> 4];\n+    out[2 * i + 1] = "0123456789abcdef"[buffer[i] & 0xF];\n+  }\n+\n+  return out;\n+}\n+\n+std::optional<Manifest> ParseManifest(const std::string& manifest)\n+{\n+  Manifest parsed;\n+  size_t pos = 0;\n+\n+  while (pos < manifest.size())\n+  {\n+    size_t filename_end_pos = manifest.find(\'\\t\', pos);\n+    if (filename_end_pos == std::string::npos)\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: could not find filename end.\\n", parsed.entries.size());\n+      return {};\n+    }\n+    size_t hash_end_pos = manifest.find(\'\\n\', filename_end_pos);\n+    if (hash_end_pos == std::string::npos)\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: could not find hash end.\\n", parsed.entries.size());\n+      return {};\n+    }\n+\n+    std::string filename = manifest.substr(pos, filename_end_pos - pos);\n+    std::string hash = manifest.substr(filename_end_pos + 1, hash_end_pos - filename_end_pos - 1);\n+    if (hash.size() != 32)\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: invalid hash: \\"%s\\".\\n", parsed.entries.size(),\n+              hash.c_str());\n+      return {};\n+    }\n+\n+    Manifest::Hash decoded_hash;\n+    if (!HexDecode(hash, decoded_hash.data(), decoded_hash.size()))\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: invalid hash: \\"%s\\".\\n", parsed.entries.size(),\n+              hash.c_str());\n+      return {};\n+    }\n+\n+    parsed.entries[filename] = decoded_hash;\n+    pos = hash_end_pos + 1;\n+  }\n+\n+  return parsed;\n+}\n+\n+// Not showing a progress bar here because this part is just too quick\n+std::optional<Manifest> FetchAndParseManifest(const std::string& url)\n+{\n+  Common::HttpRequest http;\n+\n+  Common::HttpRequest::Response resp = http.Get(url);\n+  if (!resp)\n+  {\n+    fprintf(log_fp, "Manifest download failed.\\n");\n+    return {};\n+  }\n+\n+  std::string contents(reinterpret_cast<char*>(resp->data()), resp->size());\n+  std::optional<std::string> maybe_decompressed = GzipInflate(contents);\n+  if (!maybe_decompressed)\n+    return {};\n+  std::string decompressed = std::move(*maybe_decompressed);\n+\n+  // Split into manifest and signature.\n+  size_t boundary = decompressed.rfind("\\n\\n");\n+  if (boundary == std::string::npos)\n+  {\n+    fprintf(log_fp, "No signature was found in manifest.\\n");\n+    return {};\n+  }\n+\n+  std::string signature_block = decompressed.substr(boundary + 2);  // 2 for "\\n\\n".\n+  decompressed.resize(boundary + 1);                                // 1 to keep the final "\\n".\n+\n+  std::vector<std::string> signatures = SplitString(signature_block, \'\\n\');\n+  bool found_valid_signature = false;\n+  for (const auto& signature : signatures)\n+  {\n+    if (VerifySignature(decompressed, signature))\n+    {\n+      found_valid_signature = true;\n+      break;\n+    }\n+  }\n+  if (!found_valid_signature)\n+  {\n+    fprintf(log_fp, "Could not verify signature of the manifest.\\n");\n+    return {};\n+  }\n+\n+  return ParseManifest(decompressed);\n+}\n+\n+// Represent the operations to be performed by the updater.\n+struct TodoList\n+{\n+  struct DownloadOp\n+  {\n+    Manifest::Filename filename;\n+    Manifest::Hash hash;\n+  };\n+  std::vector<DownloadOp> to_download;\n+\n+  struct UpdateOp\n+  {\n+    Manifest::Filename filename;\n+    std::optional<Manifest::Hash> old_hash;\n+    Manifest::Hash new_hash;\n+  };\n+  std::vector<UpdateOp> to_update;\n+\n+  struct DeleteOp\n+  {\n+    Manifest::Filename filename;\n+    Manifest::Hash old_hash;\n+  };\n+  std::vector<DeleteOp> to_delete;\n+\n+  void Log() const\n+  {\n+    if (to_update.size())\n+    {\n+      fprintf(log_fp, "Updating:\\n");\n+      for (const auto& op : to_update)\n+      {\n+        std::string old_desc =\n+            op.old_hash ? HexEncode(op.old_hash->data(), op.old_hash->size()) : "(new)";\n+        fprintf(log_fp, "  - %s: %s -> %s\\n", op.filename.c_str(), old_desc.c_str(),\n+                HexEncode(op.new_hash.data(), op.new_hash.size()).c_str());\n+      }\n+    }\n+    if (to_delete.size())\n+    {\n+      fprintf(log_fp, "Deleting:\\n");\n+      for (const auto& op : to_delete)\n+      {\n+        fprintf(log_fp, "  - %s (%s)\\n", op.filename.c_str(),\n+                HexEncode(op.old_hash.data(), op.old_hash.size()).c_str());\n+      }\n+    }\n+  }\n+};\n+\n+TodoList ComputeActionsToDo(Manifest this_manifest, Manifest next_manifest)\n+{\n+  TodoList todo;\n+\n+  // Delete if present in this manifest but not in next manifest.\n+  for (const auto& entry : this_manifest.entries)\n+  {\n+    if (next_manifest.entries.find(entry.first) == next_manifest.entries.end())\n+    {\n+      TodoList::DeleteOp del;\n+      del.filename = entry.first;\n+      del.old_hash = entry.second;\n+      todo.to_delete.push_back(std::move(del));\n+    }\n+  }\n+\n+  // Download and update if present in next manifest with different hash from this manifest.\n+  for (const auto& entry : next_manifest.entries)\n+  {\n+    std::optional<Manifest::Hash> old_hash;\n+\n+    const auto& old_entry = this_manifest.entries.find(entry.first);\n+    if (old_entry != this_manifest.entries.end())\n+      old_hash = old_entry->second;\n+\n+    if (!old_hash || *old_hash != entry.second)\n+    {\n+      TodoList::DownloadOp download;\n+      download.filename = entry.first;\n+      download.hash = entry.second;\n+\n+      todo.to_download.push_back(std::move(download));\n+\n+      TodoList::UpdateOp update;\n+      update.filename = entry.first;\n+      update.old_hash = old_hash;\n+      update.new_hash = entry.second;\n+      todo.to_update.push_back(std::move(update));\n+    }\n+  }\n+\n+  return todo;\n+}\n+\n+std::optional<std::string> FindOrCreateTempDir(const std::string& base_path)\n+{\n+  std::string temp_path = base_path + DIR_SEP + UPDATE_TEMP_DIR;\n+  int counter = 0;\n+\n+  do\n+  {\n+    if (!File::Exists(temp_path))\n+    {\n+      if (File::CreateDir(temp_path))\n+        return temp_path;\n+      else\n+      {\n+        fprintf(log_fp, "Couldn\'t create temp directory.\\n");\n+        return {};\n+      }\n+    }\n+    else if (File::IsDirectory(temp_path))\n+    {\n+      return temp_path;\n+    }\n+    else\n+    {\n+      // Try again with a counter appended to the path.\n+      std::string suffix = UPDATE_TEMP_DIR + std::to_string(counter);\n+      temp_path = base_path + DIR_SEP + suffix;\n+    }\n+  } while (counter++ < 10);\n+\n+  fprintf(log_fp, "Could not find an appropriate temp directory name. Giving up.\\n");\n+  return {};\n+}\n+\n+void CleanUpTempDir(const std::string& temp_dir, const TodoList& todo)\n+{\n+  // This is best-effort cleanup, we ignore most errors.\n+  for (const auto& download : todo.to_download)\n+    File::Delete(temp_dir + DIR_SEP + HexEncode(download.hash.data(), download.hash.size()));\n+  File::DeleteDir(temp_dir);\n+}\n+\n+Manifest::Hash ComputeHash(const std::string& contents)\n+{\n+  std::array<u8, 32> full;\n+  mbedtls_sha256(reinterpret_cast<const u8*>(contents.data()), contents.size(), full.data(), false);\n+\n+  Manifest::Hash out;\n+  std::copy(full.begin(), full.begin() + 16, out.begin());\n+  return out;\n+}\n+\n+bool ProgressCallback(double total, double now, double, double)\n+{\n+  UI::SetCurrentProgress(static_cast<int>(now), static_cast<int>(total));\n+  return true;\n+}\n+\n+bool DownloadContent(const std::vector<TodoList::DownloadOp>& to_download,\n+                     const std::string& content_base_url, const std::string& temp_path)\n+{\n+  Common::HttpRequest req(std::chrono::seconds(30), ProgressCallback);\n+\n+  UI::SetTotalMarquee(false);\n+\n+  for (size_t i = 0; i < to_download.size(); i++)\n+  {\n+    UI::SetTotalProgress(static_cast<int>(i + 1), static_cast<int>(to_download.size()));\n+\n+    auto& download = to_download[i];\n+\n+    std::string hash_filename = HexEncode(download.hash.data(), download.hash.size());\n+    UI::SetDescription("Downloading " + download.filename + "... (File " + std::to_string(i + 1) +\n+                       " of " + std::to_string(to_download.size()) + ")");\n+    UI::SetCurrentMarquee(false);\n+\n+    // Add slashes where needed.\n+    std::string content_store_path = hash_filename;\n+    content_store_path.insert(4, "/");\n+    content_store_path.insert(2, "/");\n+\n+    std::string url = content_base_url + content_store_path;\n+    fprintf(log_fp, "Downloading %s ...\\n", url.c_str());\n+\n+    auto resp = req.Get(url);\n+    if (!resp)\n+      return false;\n+\n+    UI::SetCurrentMarquee(true);\n+    UI::SetDescription("Verifying " + download.filename + "...");\n+\n+    std::string contents(reinterpret_cast<char*>(resp->data()), resp->size());\n+    std::optional<std::string> maybe_decompressed = GzipInflate(contents);\n+    if (!maybe_decompressed)\n+      return false;\n+    std::string decompressed = std::move(*maybe_decompressed);\n+\n+    // Check that the downloaded contents have the right hash.\n+    Manifest::Hash contents_hash = ComputeHash(decompressed);\n+    if (contents_hash != download.hash)\n+    {\n+      fprintf(log_fp, "Wrong hash on downloaded content %s.\\n", url.c_str());\n+      return false;\n+    }\n+\n+    std::string out = temp_path + DIR_SEP + hash_filename;\n+    if (!File::WriteStringToFile(decompressed, out))\n+    {\n+      fprintf(log_fp, "Could not write cache file %s.\\n", out.c_str());\n+      return false;\n+    }\n+  }\n+  return true;\n+}\n+\n+bool BackupFile(const std::string& path)\n+{\n+  std::string backup_path = path + ".bak";\n+  fprintf(log_fp, "Backing up unknown pre-existing %s to .bak.\\n", path.c_str());\n+  if (!File::Rename(path, backup_path))\n+  {\n+    fprintf(log_fp, "Cound not rename %s to %s for backup.\\n", path.c_str(), backup_path.c_str());\n+    return false;\n+  }\n+  return true;\n+}\n+\n+bool UpdateFiles(const std::vector<TodoList::UpdateOp>& to_update,\n+                 const std::string& install_base_path, const std::string& temp_path)\n+{\n+  for (const auto& op : to_update)\n+  {\n+    std::string path = install_base_path + DIR_SEP + op.filename;\n+    if (!File::CreateFullPath(path))\n+    {\n+      fprintf(log_fp, "Could not create directory structure for %s.\\n", op.filename.c_str());\n+      return false;\n+    }\n+\n+    if (File::Exists(path))\n+    {\n+      std::string contents;\n+      if (!File::ReadFileToString(path, contents))\n+      {\n+        fprintf(log_fp, "Could not read existing file %s.\\n", op.filename.c_str());\n+        return false;\n+      }\n+      Manifest::Hash contents_hash = ComputeHash(contents);\n+      if (contents_hash == op.new_hash)\n+      {\n+        fprintf(log_fp, "File %s was already up to date. Partial update?\\n", op.filename.c_str());\n+        continue;\n+      }\n+      else if (!op.old_hash || contents_hash != *op.old_hash)\n+      {\n+        if (!BackupFile(path))\n+          return false;\n+      }\n+    }\n+\n+    // Now we can safely move the new contents to the location.\n+    std::string content_filename = HexEncode(op.new_hash.data(), op.new_hash.size());\n+    fprintf(log_fp, "Updating file %s from content %s...\\n", op.filename.c_str(),\n+            content_filename.c_str());\n+    if (!File::Copy(temp_path + DIR_SEP + content_filename, path))\n+    {\n+      fprintf(log_fp, "Could not update file %s.\\n", op.filename.c_str());\n+      return false;\n+    }\n+  }\n+  return true;\n+}\n+\n+bool DeleteObsoleteFiles(const std::vector<TodoList::DeleteOp>& to_delete,\n+                         const std::string& install_base_path)\n+{\n+  for (const auto& op : to_delete)\n+  {\n+    std::string path = install_base_path + DIR_SEP + op.filename;\n+\n+    if (!File::Exists(path))\n+    {\n+      fprintf(log_fp, "File %s is already missing.\\n", op.filename.c_str());\n+      continue;\n+    }\n+    else\n+    {\n+      std::string contents;\n+      if (!File::ReadFileToString(path, contents))\n+      {\n+        fprintf(log_fp, "Could not read file planned for deletion: %s.\\n", op.filename.c_str());\n+        return false;\n+      }\n+      Manifest::Hash contents_hash = ComputeHash(contents);\n+      if (contents_hash != op.old_hash)\n+      {\n+        if (!BackupFile(path))\n+          return false;\n+      }\n+\n+      File::Delete(path);\n+    }\n+  }\n+  return true;\n+}\n+\n+bool PerformUpdate(const TodoList& todo, const std::string& install_base_path,\n+                   const std::string& content_base_url, const std::string& temp_path)\n+{\n+  fprintf(log_fp, "Starting download step...\\n");\n+  if (!DownloadContent(todo.to_download, content_base_url, temp_path))\n+    return false;\n+  fprintf(log_fp, "Download step completed.\\n");\n+\n+  fprintf(log_fp, "Starting update step...\\n");\n+  if (!UpdateFiles(todo.to_update, install_base_path, temp_path))\n+    return false;\n+  fprintf(log_fp, "Update step completed.\\n");\n+\n+  fprintf(log_fp, "Starting deletion step...\\n");\n+  if (!DeleteObsoleteFiles(todo.to_delete, install_base_path))\n+    return false;\n+  fprintf(log_fp, "Deletion step completed.\\n");\n+\n+  return true;\n+}\n+\n+void FatalError(const std::string& message)\n+{\n+  fprintf(log_fp, "%s\\n", message.c_str());\n+\n+  UI::Error(message);\n+}\n+}  // namespace\n+\n+@interface AppDelegate ()\n+\n+@end\n+\n+@implementation AppDelegate\n+\n+- (void)applicationDidFinishLaunching:(NSNotification*)aNotification\n+{\n+  NSArray* arguments = [[NSProcessInfo processInfo] arguments];\n+\n+  __block std::vector<std::string> args;\n+  [arguments\n+      enumerateObjectsUsingBlock:^(NSString* _Nonnull obj, NSUInteger idx, BOOL* _Nonnull stop) {\n+        args.push_back(std::string([obj UTF8String]));\n+      }];\n+\n+  std::optional<Options> maybe_opts = ParseCommandLine(args);\n+\n+  dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul);\n+  dispatch_async(queue, ^{\n+    if (!maybe_opts)\n+    {\n+      [NSApp performSelector:@selector(terminate:) withObject:nil afterDelay:0.0];\n+      return;\n+    }\n+\n+    Options opts = std::move(*maybe_opts);\n+\n+    if (opts.log_file)\n+    {\n+      log_fp = fopen(opts.log_file.value().c_str(), "w");\n+      if (!log_fp)\n+      {\n+        log_fp = stderr;\n+      }\n+      else', 'updated_at': '2019-01-20T11:40:32Z', 'original_position': 690, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249274625', 'created_at': '2019-01-20T11:29:59Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'url': 'https://api.github.com/users/BhaaLseN', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'html_url': 'https://github.com/BhaaLseN', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/826052?v=4', 'login': 'BhaaLseN', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'id': 826052}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249274625'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249274625'}}, 'id': 249274625}, {'pull_request_review_id': 194388628, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717', 'position': 430, 'body': 'The `else` has curlies, so the `if` should have some as well.', 'path': 'Source/Core/MacUpdater/AppDelegate.mm', 'original_commit_id': '0b7f1717673b05ee395c895e5a9da65898398a7c', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249274729', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI3NDcyOQ==', 'commit_id': '0b7f1717673b05ee395c895e5a9da65898398a7c', 'author_association': 'MEMBER', 'diff_hunk': '@@ -0,0 +1,790 @@\n+// Copyright 2019 Dolphin Emulator Project\n+// Licensed under GPLv2+\n+// Refer to the license.txt file included.\n+\n+#import "AppDelegate.h"\n+\n+#include "UICommon/AutoUpdate.h"\n+\n+#include <Cocoa/Cocoa.h>\n+#include <OptionParser.h>\n+#include <algorithm>\n+#include <array>\n+#include <chrono>\n+#include <cstdio>\n+#include <ed25519/ed25519.h>\n+#include <mbedtls/base64.h>\n+#include <mbedtls/sha256.h>\n+#include <optional>\n+#include <signal.h>\n+#include <thread>\n+#include <unistd.h>\n+#include <vector>\n+#include <zlib.h>\n+\n+#include "Common/CommonPaths.h"\n+#include "Common/CommonTypes.h"\n+#include "Common/FileUtil.h"\n+#include "Common/HttpRequest.h"\n+#include "Common/StringUtil.h"\n+\n+#include "MacUpdater/UI.h"\n+\n+namespace\n+{\n+// Public key used to verify update manifests.\n+const u8 UPDATE_PUB_KEY[] = {0x2a, 0xb3, 0xd1, 0xdc, 0x6e, 0xf5, 0x07, 0xf6, 0xa0, 0x6c, 0x7c,\n+                             0x54, 0xdf, 0x54, 0xf4, 0x42, 0x80, 0xa6, 0x28, 0x8b, 0x6d, 0x70,\n+                             0x14, 0xb5, 0x4c, 0x34, 0x95, 0x20, 0x4d, 0xd4, 0xd3, 0x5d};\n+\n+const char UPDATE_TEMP_DIR[] = "TempUpdate";\n+\n+// Where to log updater output.\n+FILE* log_fp = stderr;\n+\n+void FlushLog()\n+{\n+  fflush(log_fp);\n+  fclose(log_fp);\n+}\n+\n+// Internal representation of options passed on the command-line.\n+struct Options\n+{\n+  std::string this_manifest_url;\n+  std::string next_manifest_url;\n+  std::string content_store_url;\n+  std::string install_base_path;\n+  std::optional<std::string> binary_to_restart;\n+  std::optional<pid_t> parent_pid;\n+  std::optional<std::string> log_file;\n+};\n+\n+std::optional<Options> ParseCommandLine(std::vector<std::string>& args)\n+{\n+  using optparse::OptionParser;\n+\n+  OptionParser parser =\n+      OptionParser().prog("Dolphin Updater").description("Dolphin Updater binary");\n+\n+  parser.add_option("--this-manifest-url")\n+      .dest("this-manifest-url")\n+      .help("URL to the update manifest for the currently installed version.")\n+      .metavar("URL");\n+  parser.add_option("--next-manifest-url")\n+      .dest("next-manifest-url")\n+      .help("URL to the update manifest for the to-be-installed version.")\n+      .metavar("URL");\n+  parser.add_option("--content-store-url")\n+      .dest("content-store-url")\n+      .help("Base URL of the content store where files to download are stored.")\n+      .metavar("URL");\n+  parser.add_option("--install-base-path")\n+      .dest("install-base-path")\n+      .help("Base path of the Dolphin install to be updated.")\n+      .metavar("PATH");\n+  parser.add_option("--binary-to-restart")\n+      .dest("binary-to-restart")\n+      .help("Binary to restart after the update is over.")\n+      .metavar("PATH");\n+  parser.add_option("--log-file")\n+      .dest("log-file")\n+      .help("File where to log updater debug output.")\n+      .metavar("PATH");\n+  parser.add_option("--parent-pid")\n+      .dest("parent-pid")\n+      .type("int")\n+      .help("(optional) PID of the parent process. The updater will wait for this process to "\n+            "complete before proceeding.")\n+      .metavar("PID");\n+\n+  optparse::Values options = parser.parse_args(args);\n+\n+  Options opts;\n+\n+  // Required arguments.\n+  std::vector<std::string> required{"this-manifest-url", "next-manifest-url", "content-store-url",\n+                                    "install-base-path"};\n+  for (const auto& req : required)\n+  {\n+    if (!options.is_set(req))\n+    {\n+      parser.print_help();\n+      return {};\n+    }\n+  }\n+  opts.this_manifest_url = options["this-manifest-url"];\n+  opts.next_manifest_url = options["next-manifest-url"];\n+  opts.content_store_url = options["content-store-url"];\n+  opts.install_base_path = options["install-base-path"];\n+\n+  // Optional arguments.\n+  if (options.is_set("binary-to-restart"))\n+    opts.binary_to_restart = options["binary-to-restart"];\n+  if (options.is_set("parent-pid"))\n+    opts.parent_pid = (pid_t)options.get("parent-pid");\n+  if (options.is_set("log-file"))\n+    opts.log_file = options["log-file"];\n+\n+  return opts;\n+}\n+\n+std::optional<std::string> GzipInflate(const std::string& data)\n+{\n+  z_stream zstrm;\n+  zstrm.zalloc = nullptr;\n+  zstrm.zfree = nullptr;\n+  zstrm.opaque = nullptr;\n+  zstrm.avail_in = static_cast<u32>(data.size());\n+  zstrm.next_in = reinterpret_cast<u8*>(const_cast<char*>(data.data()));\n+\n+  // 16 + MAX_WBITS means gzip. Don\'t ask me.\n+  inflateInit2(&zstrm, 16 + MAX_WBITS);\n+\n+  std::string out;\n+  char buffer[4096];\n+  int ret;\n+\n+  do\n+  {\n+    zstrm.avail_out = sizeof(buffer);\n+    zstrm.next_out = reinterpret_cast<u8*>(buffer);\n+\n+    ret = inflate(&zstrm, 0);\n+    out.append(buffer, sizeof(buffer) - zstrm.avail_out);\n+  } while (ret == Z_OK);\n+\n+  inflateEnd(&zstrm);\n+\n+  if (ret != Z_STREAM_END)\n+  {\n+    fprintf(log_fp, "Could not read the data as gzip: error %d.\\n", ret);\n+    return {};\n+  }\n+\n+  return out;\n+}\n+\n+bool VerifySignature(const std::string& data, const std::string& b64_signature)\n+{\n+  u8 signature[64];  // ed25519 sig size.\n+  size_t sig_size;\n+\n+  if (mbedtls_base64_decode(signature, sizeof(signature), &sig_size,\n+                            reinterpret_cast<const u8*>(b64_signature.data()),\n+                            b64_signature.size()) ||\n+      sig_size != sizeof(signature))\n+  {\n+    fprintf(log_fp, "Invalid base64: %s\\n", b64_signature.c_str());\n+    return false;\n+  }\n+\n+  return ed25519_verify(signature, reinterpret_cast<const u8*>(data.data()), data.size(),\n+                        UPDATE_PUB_KEY);\n+}\n+\n+struct Manifest\n+{\n+  using Filename = std::string;\n+  using Hash = std::array<u8, 16>;\n+  std::map<Filename, Hash> entries;\n+};\n+\n+bool HexDecode(const std::string& hex, u8* buffer, size_t size)\n+{\n+  if (hex.size() != size * 2)\n+    return false;\n+\n+  auto DecodeNibble = [](char c) -> std::optional<u8> {\n+    if (c >= \'0\' && c <= \'9\')\n+      return static_cast<u8>(c - \'0\');\n+    else if (c >= \'a\' && c <= \'f\')\n+      return static_cast<u8>(c - \'a\' + 10);\n+    else if (c >= \'A\' && c <= \'F\')\n+      return static_cast<u8>(c - \'A\' + 10);\n+    else\n+      return {};\n+  };\n+  for (size_t i = 0; i < size; ++i)\n+  {\n+    std::optional<u8> high = DecodeNibble(hex[2 * i]);\n+    std::optional<u8> low = DecodeNibble(hex[2 * i + 1]);\n+\n+    if (!high || !low)\n+      return false;\n+\n+    buffer[i] = (*high << 4) | *low;\n+  }\n+\n+  return true;\n+}\n+\n+std::string HexEncode(const u8* buffer, size_t size)\n+{\n+  std::string out(size * 2, \'\\0\');\n+\n+  for (size_t i = 0; i < size; ++i)\n+  {\n+    out[2 * i] = "0123456789abcdef"[buffer[i] >> 4];\n+    out[2 * i + 1] = "0123456789abcdef"[buffer[i] & 0xF];\n+  }\n+\n+  return out;\n+}\n+\n+std::optional<Manifest> ParseManifest(const std::string& manifest)\n+{\n+  Manifest parsed;\n+  size_t pos = 0;\n+\n+  while (pos < manifest.size())\n+  {\n+    size_t filename_end_pos = manifest.find(\'\\t\', pos);\n+    if (filename_end_pos == std::string::npos)\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: could not find filename end.\\n", parsed.entries.size());\n+      return {};\n+    }\n+    size_t hash_end_pos = manifest.find(\'\\n\', filename_end_pos);\n+    if (hash_end_pos == std::string::npos)\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: could not find hash end.\\n", parsed.entries.size());\n+      return {};\n+    }\n+\n+    std::string filename = manifest.substr(pos, filename_end_pos - pos);\n+    std::string hash = manifest.substr(filename_end_pos + 1, hash_end_pos - filename_end_pos - 1);\n+    if (hash.size() != 32)\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: invalid hash: \\"%s\\".\\n", parsed.entries.size(),\n+              hash.c_str());\n+      return {};\n+    }\n+\n+    Manifest::Hash decoded_hash;\n+    if (!HexDecode(hash, decoded_hash.data(), decoded_hash.size()))\n+    {\n+      fprintf(log_fp, "Manifest entry %zu: invalid hash: \\"%s\\".\\n", parsed.entries.size(),\n+              hash.c_str());\n+      return {};\n+    }\n+\n+    parsed.entries[filename] = decoded_hash;\n+    pos = hash_end_pos + 1;\n+  }\n+\n+  return parsed;\n+}\n+\n+// Not showing a progress bar here because this part is just too quick\n+std::optional<Manifest> FetchAndParseManifest(const std::string& url)\n+{\n+  Common::HttpRequest http;\n+\n+  Common::HttpRequest::Response resp = http.Get(url);\n+  if (!resp)\n+  {\n+    fprintf(log_fp, "Manifest download failed.\\n");\n+    return {};\n+  }\n+\n+  std::string contents(reinterpret_cast<char*>(resp->data()), resp->size());\n+  std::optional<std::string> maybe_decompressed = GzipInflate(contents);\n+  if (!maybe_decompressed)\n+    return {};\n+  std::string decompressed = std::move(*maybe_decompressed);\n+\n+  // Split into manifest and signature.\n+  size_t boundary = decompressed.rfind("\\n\\n");\n+  if (boundary == std::string::npos)\n+  {\n+    fprintf(log_fp, "No signature was found in manifest.\\n");\n+    return {};\n+  }\n+\n+  std::string signature_block = decompressed.substr(boundary + 2);  // 2 for "\\n\\n".\n+  decompressed.resize(boundary + 1);                                // 1 to keep the final "\\n".\n+\n+  std::vector<std::string> signatures = SplitString(signature_block, \'\\n\');\n+  bool found_valid_signature = false;\n+  for (const auto& signature : signatures)\n+  {\n+    if (VerifySignature(decompressed, signature))\n+    {\n+      found_valid_signature = true;\n+      break;\n+    }\n+  }\n+  if (!found_valid_signature)\n+  {\n+    fprintf(log_fp, "Could not verify signature of the manifest.\\n");\n+    return {};\n+  }\n+\n+  return ParseManifest(decompressed);\n+}\n+\n+// Represent the operations to be performed by the updater.\n+struct TodoList\n+{\n+  struct DownloadOp\n+  {\n+    Manifest::Filename filename;\n+    Manifest::Hash hash;\n+  };\n+  std::vector<DownloadOp> to_download;\n+\n+  struct UpdateOp\n+  {\n+    Manifest::Filename filename;\n+    std::optional<Manifest::Hash> old_hash;\n+    Manifest::Hash new_hash;\n+  };\n+  std::vector<UpdateOp> to_update;\n+\n+  struct DeleteOp\n+  {\n+    Manifest::Filename filename;\n+    Manifest::Hash old_hash;\n+  };\n+  std::vector<DeleteOp> to_delete;\n+\n+  void Log() const\n+  {\n+    if (to_update.size())\n+    {\n+      fprintf(log_fp, "Updating:\\n");\n+      for (const auto& op : to_update)\n+      {\n+        std::string old_desc =\n+            op.old_hash ? HexEncode(op.old_hash->data(), op.old_hash->size()) : "(new)";\n+        fprintf(log_fp, "  - %s: %s -> %s\\n", op.filename.c_str(), old_desc.c_str(),\n+                HexEncode(op.new_hash.data(), op.new_hash.size()).c_str());\n+      }\n+    }\n+    if (to_delete.size())\n+    {\n+      fprintf(log_fp, "Deleting:\\n");\n+      for (const auto& op : to_delete)\n+      {\n+        fprintf(log_fp, "  - %s (%s)\\n", op.filename.c_str(),\n+                HexEncode(op.old_hash.data(), op.old_hash.size()).c_str());\n+      }\n+    }\n+  }\n+};\n+\n+TodoList ComputeActionsToDo(Manifest this_manifest, Manifest next_manifest)\n+{\n+  TodoList todo;\n+\n+  // Delete if present in this manifest but not in next manifest.\n+  for (const auto& entry : this_manifest.entries)\n+  {\n+    if (next_manifest.entries.find(entry.first) == next_manifest.entries.end())\n+    {\n+      TodoList::DeleteOp del;\n+      del.filename = entry.first;\n+      del.old_hash = entry.second;\n+      todo.to_delete.push_back(std::move(del));\n+    }\n+  }\n+\n+  // Download and update if present in next manifest with different hash from this manifest.\n+  for (const auto& entry : next_manifest.entries)\n+  {\n+    std::optional<Manifest::Hash> old_hash;\n+\n+    const auto& old_entry = this_manifest.entries.find(entry.first);\n+    if (old_entry != this_manifest.entries.end())\n+      old_hash = old_entry->second;\n+\n+    if (!old_hash || *old_hash != entry.second)\n+    {\n+      TodoList::DownloadOp download;\n+      download.filename = entry.first;\n+      download.hash = entry.second;\n+\n+      todo.to_download.push_back(std::move(download));\n+\n+      TodoList::UpdateOp update;\n+      update.filename = entry.first;\n+      update.old_hash = old_hash;\n+      update.new_hash = entry.second;\n+      todo.to_update.push_back(std::move(update));\n+    }\n+  }\n+\n+  return todo;\n+}\n+\n+std::optional<std::string> FindOrCreateTempDir(const std::string& base_path)\n+{\n+  std::string temp_path = base_path + DIR_SEP + UPDATE_TEMP_DIR;\n+  int counter = 0;\n+\n+  do\n+  {\n+    if (!File::Exists(temp_path))\n+    {\n+      if (File::CreateDir(temp_path))', 'updated_at': '2019-01-20T11:40:32Z', 'original_position': 430, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249274729', 'created_at': '2019-01-20T11:33:04Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'url': 'https://api.github.com/users/BhaaLseN', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'html_url': 'https://github.com/BhaaLseN', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/826052?v=4', 'login': 'BhaaLseN', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'id': 826052}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7717'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7717#discussion_r249274729'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249274729'}}, 'id': 249274729}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7717}
2019-01-20T04:25:52.861095	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Android: Add IR pointer control to touch overlay', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500#pullrequestreview-194378338', 'comments': [{'pull_request_review_id': 194378338, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7500', 'position': 114, 'body': 'fixed', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java', 'original_commit_id': 'e35ea50a06ebe5666348991cb736bee0a2d01670', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249264609', 'in_reply_to_id': 248001300, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI2NDYwOQ==', 'commit_id': '70e112954681932bf6e53f418750d4f6d8766cea', 'author_association': 'MEMBER', 'diff_hunk': '@@ -166,35 +177,40 @@ public boolean onTouch(View v, MotionEvent event)\n       {\n         case MotionEvent.ACTION_DOWN:\n         case MotionEvent.ACTION_POINTER_DOWN:\n-        case MotionEvent.ACTION_MOVE:\n-          // Up, Down, Left, Right\n-          boolean[] pressed = {false, false, false, false};\n           // If a pointer enters the bounds of a button, press that button.\n           if (dpad.getBounds()\n                   .contains((int) event.getX(pointerIndex), (int) event.getY(pointerIndex)))\n           {\n+            dpad.setTrackId(event.getPointerId(pointerIndex));\n+            pressed = true;\n+          }\n+        case MotionEvent.ACTION_MOVE:\n+          if (dpad.getTrackId() == event.getPointerId(pointerIndex))\n+          {\n+            // Up, Down, Left, Right\n+            boolean[] dpadPressed = {false, false, false, false};\n+\n             if (dpad.getBounds().top + (dpad.getHeight() / 3) > (int) event.getY(pointerIndex))\n-              pressed[0] = true;\n+              dpadPressed[0] = true;\n             if (dpad.getBounds().bottom - (dpad.getHeight() / 3) < (int) event.getY(pointerIndex))\n-              pressed[1] = true;\n+              dpadPressed[1] = true;\n             if (dpad.getBounds().left + (dpad.getWidth() / 3) > (int) event.getX(pointerIndex))\n-              pressed[2] = true;\n+              dpadPressed[2] = true;\n             if (dpad.getBounds().right - (dpad.getWidth() / 3) < (int) event.getX(pointerIndex))\n-              pressed[3] = true;\n+              dpadPressed[3] = true;\n \n             // Release the buttons first, then press\n-            for (int i = 0; i < pressed.length; i++)\n-              if (!pressed[i])\n+            for (int i = 0; i < dpadPressed.length; i++)', 'updated_at': '2019-01-20T04:25:51Z', 'original_position': 78, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249264609', 'created_at': '2019-01-20T04:25:51Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7500'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249264609'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249264609'}}, 'id': 249264609}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7500}
2019-01-20T04:25:49.245755	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Android: Add IR pointer control to touch overlay', 'author': 'zackhow', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7500#pullrequestreview-194378337', 'comments': [{'pull_request_review_id': 194378337, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7500', 'position': None, 'body': 'fixed', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java', 'original_commit_id': 'e35ea50a06ebe5666348991cb736bee0a2d01670', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249264607', 'in_reply_to_id': 248001671, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI2NDYwNw==', 'commit_id': '70e112954681932bf6e53f418750d4f6d8766cea', 'author_association': 'MEMBER', 'diff_hunk': '@@ -617,22 +650,38 @@ public void refreshControls()\n             getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT ?\n                     "-Portrait" : "";\n \n-    // Add all the enabled overlay items back to the HashSet.\n-    if (EmulationActivity.isGameCubeGame() || mPreferences.getInt("wiiController", 3) == 0)\n+    if (mPreferences.getBoolean("showInputOverlay", true))\n     {\n-      addGameCubeOverlayControls(orientation);\n-    }\n-    else if (mPreferences.getInt("wiiController", 3) == 4)\n-    {\n-      addClassicOverlayControls(orientation);\n-    }\n-    else\n-    {\n-      addWiimoteOverlayControls(orientation);\n-      if (mPreferences.getInt("wiiController", 3) == 3)\n+      // Add all the enabled overlay items back to the HashSet.\n+      if (EmulationActivity.isGameCubeGame() || mPreferences.getInt("wiiController", 3) == 0)\n+      {\n+        addGameCubeOverlayControls(orientation);\n+      }\n+      else if (mPreferences.getInt("wiiController", 3) == 4)\n       {\n-        addNunchukOverlayControls(orientation);\n+        addClassicOverlayControls(orientation);\n       }\n+      else\n+      {\n+        addWiimoteOverlayControls(orientation);\n+        if (mPreferences.getInt("wiiController", 3) == 3)\n+        {\n+          addNunchukOverlayControls(orientation);\n+        }\n+      }\n+    }\n+\n+    if (!EmulationActivity.isGameCubeGame())\n+    {\n+      int doubleTapButton = mPreferences.getInt("doubleTapButton",\n+              InputOverlayPointer.DOUBLE_TAP_OPTIONS.get(InputOverlayPointer.DOUBLE_TAP_A));\n+\n+      if (mPreferences.getInt("wiiController", OVERLAY_WIIMOTE_NUNCHUCK) !=\n+              InputOverlay.OVERLAY_WIIMOTE_CLASSIC &&\n+              doubleTapButton == InputOverlayPointer.DOUBLE_TAP_CLASSIC_A)\n+        doubleTapButton = InputOverlayPointer.DOUBLE_TAP_A;', 'updated_at': '2019-01-20T04:25:47Z', 'original_position': 182, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249264607', 'created_at': '2019-01-20T04:25:47Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7500'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7500#discussion_r249264607'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249264607'}}, 'id': 249264607}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7500}
2019-01-20T00:34:24.325509	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Replace raster font with dear imgui', 'author': 'stenzek', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#pullrequestreview-194374948', 'comments': [{'pull_request_review_id': 194374948, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478', 'position': 129, 'body': 'Fair point, it does seem a little confusing. We can just multiply it by m_framebuffer_scale instead. This was before I realized that DisplayFramebufferScale actually has no effect on imgui rendering.', 'path': 'Source/Core/VideoCommon/RenderBase.cpp', 'original_commit_id': '50f5ab1abc7fa159e4c9d89931b817748f088855', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249261554', 'in_reply_to_id': 249254087, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI2MTU1NA==', 'commit_id': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'author_association': 'MEMBER', 'diff_hunk': '@@ -261,139 +262,62 @@ bool Renderer::CheckForHostConfigChanges()\n // Create On-Screen-Messages\n void Renderer::DrawDebugText()\n {\n-  std::string final_yellow, final_cyan;\n+  const float scale = ImGui::GetIO().DisplayFramebufferScale.x;', 'updated_at': '2019-01-20T00:34:22Z', 'original_position': 13, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249261554', 'created_at': '2019-01-20T00:34:22Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249261554'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249261554'}}, 'id': 249261554}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7478}
2019-01-20T00:33:31.663835	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Replace raster font with dear imgui', 'author': 'stenzek', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#pullrequestreview-194374933', 'comments': [{'pull_request_review_id': 194374933, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478', 'position': 5, 'body': 'Texture cache is initialized after renderer, and the base renderer class uploads the imgui font atlas, so this buffer must exist already.', 'path': 'Source/Core/VideoBackends/Vulkan/VKTexture.cpp', 'original_commit_id': '69ff6dd7722a1feb416b303cccdafcefb4d427d9', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249261544', 'in_reply_to_id': 249254259, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI2MTU0NA==', 'commit_id': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'author_association': 'MEMBER', 'diff_hunk': '@@ -290,7 +290,7 @@ void VKTexture::Load(u32 level, u32 width, u32 height, u32 row_length, const u8*\n   if (upload_size <= STAGING_TEXTURE_UPLOAD_THRESHOLD &&\n       upload_size <= MAXIMUM_TEXTURE_UPLOAD_BUFFER_SIZE)\n   {\n-    StreamBuffer* stream_buffer = TextureCache::GetInstance()->GetTextureUploadBuffer();\n+    StreamBuffer* stream_buffer = g_object_cache->GetTextureUploadBuffer();', 'updated_at': '2019-01-20T00:33:30Z', 'original_position': 5, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249261544', 'created_at': '2019-01-20T00:33:30Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249261544'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249261544'}}, 'id': 249261544}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7478}
2019-01-20T00:31:00.167504	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Stereoscopy regression fixes', 'author': 'stenzek', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7716#pullrequestreview-194374891', 'comments': [{'pull_request_review_id': 194374891, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7716', 'position': 104, 'body': "With entry_to_update always being a new texture, the existing textures shouldn't have any references to it.", 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp', 'original_commit_id': 'ade255a5ffafd69255f3387fe7e0a1a7b4bd6eec', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249261519', 'in_reply_to_id': 249253914, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI2MTUxOQ==', 'commit_id': '10701921654c8990e42e3e944c422d94c399099c', 'author_association': 'MEMBER', 'diff_hunk': '@@ -1315,14 +1308,13 @@ bool TextureCacheBase::LoadTextureFromOverlappingTextures(TCacheEntry* entry_to_\n   // instead, which would reduce the amount of copying work here.\n   std::vector<TCacheEntry*> candidates;\n \n-  auto iter = FindOverlappingTextures(entry_to_update->addr, entry_to_update->size_in_bytes);\n+  auto iter = FindOverlappingTextures(tex_info.address, tex_info.total_bytes);\n   while (iter.first != iter.second)\n   {\n     TCacheEntry* entry = iter.first->second;\n-    if (entry != entry_to_update && entry->IsCopy() && !entry->tmem_only &&\n-        entry->references.count(entry_to_update) == 0 &&', 'updated_at': '2019-01-20T00:30:58Z', 'original_position': 82, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7716#discussion_r249261519', 'created_at': '2019-01-20T00:30:58Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7716'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7716#discussion_r249261519'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249261519'}}, 'id': 249261519}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7716}
2019-01-19T19:57:59.485955	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Replace raster font with dear imgui', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#pullrequestreview-194368357', 'comments': [], 'state': 'approved', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7478}
2019-01-19T19:32:04.877468	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Replace raster font with dear imgui', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#pullrequestreview-194367570', 'comments': [{'pull_request_review_id': 194367570, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478', 'position': 601, 'body': "In addition to the additional functionality for imgui, I think splitting out 'SwapImpl' into a few more specialized functions is a nice improvement.  👍 ", 'path': 'Source/Core/VideoCommon/RenderBase.cpp', 'original_commit_id': '9bde316196b2d3345dd17fd7153a0e1a480bfa75', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249254953', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI1NDk1Mw==', 'commit_id': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'author_association': 'MEMBER', 'diff_hunk': '@@ -890,16 +944,27 @@ void Renderer::Swap(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, const\n       // with the loader, and it has not been unmapped yet. Force a pipeline flush to avoid this.\n       g_vertex_manager->Flush();\n \n-      // Draw any imgui overlays we have. Note that "draw" here means "create commands", the actual\n-      // draw calls don\'t get issued until DrawImGui is called, which happens in SwapImpl.\n-      DrawDebugText();\n-      OSD::DrawMessages();\n-      ImGui::Render();\n+      // Render the XFB to the screen.', 'updated_at': '2019-01-19T19:32:03Z', 'original_position': 173, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254953', 'created_at': '2019-01-19T19:32:03Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'url': 'https://api.github.com/users/iwubcode', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'html_url': 'https://github.com/iwubcode', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'login': 'iwubcode', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'id': 15224722}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254953'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249254953'}}, 'id': 249254953}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7478}
2019-01-19T19:20:33.043168	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Replace raster font with dear imgui', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#pullrequestreview-194367178', 'comments': [{'pull_request_review_id': 194367178, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478', 'position': 402, 'body': 'Just did a quick read on this, it might be useful for storing some of the windows locations (pre scale)', 'path': 'Source/Core/VideoCommon/RenderBase.cpp', 'original_commit_id': '9ac371638f4a88fc9bc7bc59b8d8e062d7102364', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249254643', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI1NDY0Mw==', 'commit_id': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'author_association': 'MEMBER', 'diff_hunk': '@@ -638,6 +641,251 @@ void Renderer::RecordVideoMemory()\n                                              texMem);\n }\n \n+static std::string GenerateImGuiVertexShader()\n+{\n+  const APIType api_type = g_ActiveConfig.backend_info.api_type;\n+  std::stringstream ss;\n+\n+  // Uniform buffer contains the viewport size, and we transform in the vertex shader.\n+  if (api_type == APIType::D3D)\n+    ss << "cbuffer PSBlock : register(b0) {\\n";\n+  else if (api_type == APIType::OpenGL)\n+    ss << "UBO_BINDING(std140, 1) uniform PSBlock {\\n";\n+  else if (api_type == APIType::Vulkan)\n+    ss << "UBO_BINDING(std140, 1) uniform PSBlock {\\n";\n+  ss << "float2 u_rcp_viewport_size_mul2;\\n";\n+  ss << "};\\n";\n+\n+  if (api_type == APIType::D3D)\n+  {\n+    ss << "void main(in float2 rawpos : POSITION,\\n"\n+       << "          in float2 rawtex0 : TEXCOORD,\\n"\n+       << "          in float4 rawcolor0 : COLOR,\\n"\n+       << "          out float2 frag_uv : TEXCOORD,\\n"\n+       << "          out float4 frag_color : COLOR,\\n"\n+       << "          out float4 out_pos : SV_Position)\\n";\n+  }\n+  else\n+  {\n+    ss << "ATTRIBUTE_LOCATION(" << SHADER_POSITION_ATTRIB << ") in float2 rawpos;\\n"\n+       << "ATTRIBUTE_LOCATION(" << SHADER_TEXTURE0_ATTRIB << ") in float2 rawtex0;\\n"\n+       << "ATTRIBUTE_LOCATION(" << SHADER_COLOR0_ATTRIB << ") in float4 rawcolor0;\\n"\n+       << "VARYING_LOCATION(0) out float2 frag_uv;\\n"\n+       << "VARYING_LOCATION(1) out float4 frag_color;\\n"\n+       << "void main()\\n";\n+  }\n+\n+  ss << "{\\n"\n+     << "  frag_uv = rawtex0;\\n"\n+     << "  frag_color = rawcolor0;\\n";\n+\n+  ss << "  " << (api_type == APIType::D3D ? "out_pos" : "gl_Position")\n+     << "= float4(rawpos.x * u_rcp_viewport_size_mul2.x - 1.0, 1.0 - rawpos.y * "\n+        "u_rcp_viewport_size_mul2.y, 0.0, 1.0);\\n";\n+\n+  // Clip-space is flipped in Vulkan\n+  if (api_type == APIType::Vulkan)\n+    ss << "  gl_Position.y = -gl_Position.y;\\n";\n+\n+  ss << "}\\n";\n+  return ss.str();\n+}\n+\n+static std::string GenerateImGuiPixelShader()\n+{\n+  const APIType api_type = g_ActiveConfig.backend_info.api_type;\n+\n+  std::stringstream ss;\n+  if (api_type == APIType::D3D)\n+  {\n+    ss << "Texture2DArray tex0 : register(t0);\\n"\n+       << "SamplerState samp0 : register(s0);\\n"\n+       << "void main(in float2 frag_uv : TEXCOORD,\\n"\n+       << "          in float4 frag_color : COLOR,\\n"\n+       << "          out float4 ocol0 : SV_Target)\\n";\n+  }\n+  else\n+  {\n+    ss << "SAMPLER_BINDING(0) uniform sampler2DArray samp0;\\n"\n+       << "VARYING_LOCATION(0) in float2 frag_uv; \\n"\n+       << "VARYING_LOCATION(1) in float4 frag_color;\\n"\n+       << "FRAGMENT_OUTPUT_LOCATION(0) out float4 ocol0;\\n"\n+       << "void main()\\n";\n+  }\n+\n+  ss << "{\\n";\n+\n+  if (api_type == APIType::D3D)\n+    ss << "  ocol0 = tex0.Sample(samp0, float3(frag_uv, 0.0)) * frag_color;\\n";\n+  else\n+    ss << "  ocol0 = texture(samp0, float3(frag_uv, 0.0)) * frag_color;\\n";\n+\n+  ss << "}\\n";\n+\n+  return ss.str();\n+}\n+\n+bool Renderer::InitializeImGui()\n+{\n+  if (!ImGui::CreateContext())\n+  {\n+    PanicAlert("Creating ImGui context failed");\n+    return false;\n+  }\n+\n+  // Don\'t create an ini file. TODO: Do we want this in the future?', 'updated_at': '2019-01-19T19:20:31Z', 'original_position': 122, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254643', 'created_at': '2019-01-19T19:20:31Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'url': 'https://api.github.com/users/iwubcode', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'html_url': 'https://github.com/iwubcode', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'login': 'iwubcode', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'id': 15224722}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254643'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249254643'}}, 'id': 249254643}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7478}
2019-01-19T19:05:58.914608	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Replace raster font with dear imgui', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#pullrequestreview-194366760', 'comments': [{'pull_request_review_id': 194366760, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478', 'position': 5, 'body': 'Just curious, why this was necessary?', 'path': 'Source/Core/VideoBackends/Vulkan/VKTexture.cpp', 'original_commit_id': '69ff6dd7722a1feb416b303cccdafcefb4d427d9', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249254259', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI1NDI1OQ==', 'commit_id': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'author_association': 'MEMBER', 'diff_hunk': '@@ -290,7 +290,7 @@ void VKTexture::Load(u32 level, u32 width, u32 height, u32 row_length, const u8*\n   if (upload_size <= STAGING_TEXTURE_UPLOAD_THRESHOLD &&\n       upload_size <= MAXIMUM_TEXTURE_UPLOAD_BUFFER_SIZE)\n   {\n-    StreamBuffer* stream_buffer = TextureCache::GetInstance()->GetTextureUploadBuffer();\n+    StreamBuffer* stream_buffer = g_object_cache->GetTextureUploadBuffer();', 'updated_at': '2019-01-19T19:05:57Z', 'original_position': 5, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254259', 'created_at': '2019-01-19T19:05:57Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'url': 'https://api.github.com/users/iwubcode', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'html_url': 'https://github.com/iwubcode', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'login': 'iwubcode', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'id': 15224722}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254259'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249254259'}}, 'id': 249254259}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7478}
2019-01-19T19:00:05.494876	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Replace raster font with dear imgui', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7478#pullrequestreview-194366565', 'comments': [{'pull_request_review_id': 194366565, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478', 'position': 129, 'body': 'I noticed this scale value is only for horizontal, do we need to have something for the vertical scale so that the values scale up appropriately?', 'path': 'Source/Core/VideoCommon/RenderBase.cpp', 'original_commit_id': '50f5ab1abc7fa159e4c9d89931b817748f088855', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249254087', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI1NDA4Nw==', 'commit_id': '1f11cde364d7f4aa6c2e24b09ff1b24d9d74625b', 'author_association': 'MEMBER', 'diff_hunk': '@@ -261,139 +262,62 @@ bool Renderer::CheckForHostConfigChanges()\n // Create On-Screen-Messages\n void Renderer::DrawDebugText()\n {\n-  std::string final_yellow, final_cyan;\n+  const float scale = ImGui::GetIO().DisplayFramebufferScale.x;', 'updated_at': '2019-01-19T19:00:03Z', 'original_position': 13, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254087', 'created_at': '2019-01-19T19:00:03Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'url': 'https://api.github.com/users/iwubcode', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'html_url': 'https://github.com/iwubcode', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'login': 'iwubcode', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'id': 15224722}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7478#discussion_r249254087'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249254087'}}, 'id': 249254087}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7478}
2019-01-19T18:55:35.877438	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Stereoscopy regression fixes', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7716#pullrequestreview-194366435', 'comments': [], 'state': 'approved', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7716}
2019-01-19T18:53:30.476799	{'source': 'ghhookparser', 'action': 'submitted', 'pr_title': 'Stereoscopy regression fixes', 'author': 'iwubcode', 'url': 'https://github.com/dolphin-emu/dolphin/pull/7716#pullrequestreview-194366366', 'comments': [{'pull_request_review_id': 194366366, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7716', 'position': 104, 'body': "Was this intentionally removed?  I haven't been following the code base, maybe this is to match the other function?", 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp', 'original_commit_id': 'ade255a5ffafd69255f3387fe7e0a1a7b4bd6eec', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249253914', 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI1MzkxNA==', 'commit_id': '10701921654c8990e42e3e944c422d94c399099c', 'author_association': 'MEMBER', 'diff_hunk': '@@ -1315,14 +1308,13 @@ bool TextureCacheBase::LoadTextureFromOverlappingTextures(TCacheEntry* entry_to_\n   // instead, which would reduce the amount of copying work here.\n   std::vector<TCacheEntry*> candidates;\n \n-  auto iter = FindOverlappingTextures(entry_to_update->addr, entry_to_update->size_in_bytes);\n+  auto iter = FindOverlappingTextures(tex_info.address, tex_info.total_bytes);\n   while (iter.first != iter.second)\n   {\n     TCacheEntry* entry = iter.first->second;\n-    if (entry != entry_to_update && entry->IsCopy() && !entry->tmem_only &&\n-        entry->references.count(entry_to_update) == 0 &&', 'updated_at': '2019-01-19T18:53:29Z', 'original_position': 82, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7716#discussion_r249253914', 'created_at': '2019-01-19T18:53:29Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'url': 'https://api.github.com/users/iwubcode', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'html_url': 'https://github.com/iwubcode', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'login': 'iwubcode', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'id': 15224722}, '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7716'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7716#discussion_r249253914'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/249253914'}}, 'id': 249253914}], 'state': 'commented', 'type': 'gh_pull_request_review', 'repo': 'dolphin-emu/dolphin', 'pr_id': 7716}

Recent 'gh_push' events

2019-01-17T12:40:05.052498	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Debugger restore tabbed docking', 'removed': [], 'hash': 'b557faa386716525ee5baa3dc253e8e71c8a226c', 'author': {'email': 'taolas@gmail.com', 'name': 'TryTwo', 'username': 'TryTwo'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/b557faa386716525ee5baa3dc253e8e71c8a226c', 'modified': ['Source/Core/DolphinQt/MainWindow.cpp'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7696 from TryTwo/Debugger_Restore_Tabbed_Docking\n\nQt/Debugger restore tabbed docking', 'removed': [], 'hash': '3627ef8a0489765eb10ab29a7988866b52493239', 'author': {'email': 'leo@leolam.fr', 'name': 'Léo Lam', 'username': 'leoetlino'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/3627ef8a0489765eb10ab29a7988866b52493239', 'modified': ['Source/Core/DolphinQt/MainWindow.cpp'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'leoetlino', 'before_sha': '2c2910c129b205fc2941c4f278b247d678953061', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': '3627ef8a0489765eb10ab29a7988866b52493239'}
2019-01-16T21:23:42.530648	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Android: Update Picasso lib to latest version', 'removed': [], 'hash': '1da69811b8a15a31d7db9573dbe57a2dba6cf6e8', 'author': {'email': 'mahdi.hijaz@hotmail.com', 'name': 'mahdihijazi', 'username': 'mahdihijazi'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/1da69811b8a15a31d7db9573dbe57a2dba6cf6e8', 'modified': ['Source/Android/app/build.gradle', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PicassoUtils.java'], 'distinct': True, 'added': []}, {'message': 'Android: Remove rxjava lib\n\nNo need to keep rxjava lib around for one simple use case', 'removed': [], 'hash': '5e1a3f11a522a9363659578e3d4d120a7a984df4', 'author': {'email': 'mahdi.hijaz@hotmail.com', 'name': 'mahdihijazi', 'username': 'mahdihijazi'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/5e1a3f11a522a9363659578e3d4d120a7a984df4', 'modified': ['Source/Android/app/build.gradle', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryStateReceiver.java'], 'distinct': True, 'added': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Action1.java']}, {'message': 'Android: Remove dead code and related lib <circleimageview>', 'removed': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java', 'Source/Android/app/src/main/res/layout/dialog_game_details.xml'], 'hash': '593b69728d7e7813a3e3bbd1bfea2f2f56f3a38e', 'author': {'email': 'mahdi.hijaz@hotmail.com', 'name': 'mahdihijazi', 'username': 'mahdihijazi'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/593b69728d7e7813a3e3bbd1bfea2f2f56f3a38e', 'modified': ['Source/Android/app/build.gradle'], 'distinct': True, 'added': []}, {'message': 'Android: Fix gradle warning\n\nPicasso is using an old version of the support lib which creates a conflict\nfor the exifinterface support librar, this will make sure to use the\nversion Dolphin is using which is 27.1.1', 'removed': [], 'hash': '6be72e8cbb50f9c554006eaa8f42df64fd8d008d', 'author': {'email': 'mahdi.hijaz@hotmail.com', 'name': 'mahdihijazi', 'username': 'mahdihijazi'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/6be72e8cbb50f9c554006eaa8f42df64fd8d008d', 'modified': ['Source/Android/app/build.gradle'], 'distinct': True, 'added': []}, {'message': 'Android: Remove legacy hack that is not needed anymore', 'removed': [], 'hash': 'fe9212a515c83ec5edeacae86c37fa7c773ec207', 'author': {'email': 'mahdi.hijaz@hotmail.com', 'name': 'mahdihijazi', 'username': 'mahdihijazi'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/fe9212a515c83ec5edeacae86c37fa7c773ec207', 'modified': ['Source/Android/gradle.properties'], 'distinct': True, 'added': []}, {'message': 'Android: Remove the use of restericted API and give AS a break', 'removed': [], 'hash': '9a45c6289685c77a73995af8372ee1eb2b07c896', 'author': {'email': 'mahdi.hijaz@hotmail.com', 'name': 'mahdihijazi', 'username': 'mahdihijazi'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/9a45c6289685c77a73995af8372ee1eb2b07c896', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7522 from mahdihijazi/updates\n\nAndroid: Bunch of cleanups & Updates', 'removed': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java', 'Source/Android/app/src/main/res/layout/dialog_game_details.xml'], 'hash': '2c2910c129b205fc2941c4f278b247d678953061', 'author': {'email': 'leo@leolam.fr', 'name': 'Léo Lam', 'username': 'leoetlino'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/2c2910c129b205fc2941c4f278b247d678953061', 'modified': ['Source/Android/app/build.gradle', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryStateReceiver.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PicassoUtils.java', 'Source/Android/gradle.properties'], 'distinct': True, 'added': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Action1.java']}], 'deleted': False, 'pusher': 'leoetlino', 'before_sha': 'c7373701cc4ad7e3ea223aabb0556386e2671cb3', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': '2c2910c129b205fc2941c4f278b247d678953061'}
2019-01-16T20:57:40.820036	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'NetPlay: Remove PadMapping type\n\nIts usage was inconsistent, confusing, and buggy, so I opted to just\nremove it entirely. It has been replaced with PadIndex for the\nappropriate instances (mainly networking), and inappropriate usages\n(where it was really just a player ID) have been replaced with the\nPlayerId type. The definition of "no mapping" has been changed from -1\nto 0 to match the defintion of "no player", as -1 (255 unsigned) is\nactually a valid player ID.\n\nThe bugs never manifested because it only occurs with a full lobby of\n255 players, at which point the last player\'s ID collides with the "no\nmapping" definition and some undefined behavior occurs. Nevertheless, I\nthought it best to fix it anyways as the usage of PadMapping was\nconfusing.', 'removed': [], 'hash': '529796bd590c36c03978a43f1ee6eed0f4cba29d', 'author': {'email': 'tecknojar@gmail.com', 'name': 'Techjar', 'username': 'Techjar'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/529796bd590c36c03978a43f1ee6eed0f4cba29d', 'modified': ['Source/Core/Core/NetPlayClient.cpp', 'Source/Core/Core/NetPlayClient.h', 'Source/Core/Core/NetPlayProto.h', 'Source/Core/Core/NetPlayServer.cpp', 'Source/Core/Core/NetPlayServer.h', 'Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7580 from Techjar/netplay-padmapping-type\n\nNetPlay: Remove PadMapping type', 'removed': [], 'hash': 'c7373701cc4ad7e3ea223aabb0556386e2671cb3', 'author': {'email': 'leo@leolam.fr', 'name': 'Léo Lam', 'username': 'leoetlino'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/c7373701cc4ad7e3ea223aabb0556386e2671cb3', 'modified': ['Source/Core/Core/NetPlayClient.cpp', 'Source/Core/Core/NetPlayClient.h', 'Source/Core/Core/NetPlayProto.h', 'Source/Core/Core/NetPlayServer.cpp', 'Source/Core/Core/NetPlayServer.h', 'Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'leoetlino', 'before_sha': 'fd3ef7ebc53d1b86737dc7b2557cd469b47d342e', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': 'c7373701cc4ad7e3ea223aabb0556386e2671cb3'}
2019-01-16T20:33:07.733723	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'ControllerEmu: Killed the Buttons group threshold setting.', 'removed': [], 'hash': 'df43fd94725ee1abda8eb0c69efcd116c48db399', 'author': {'email': 'jordan.woyak@gmail.com', 'name': 'Jordan Woyak', 'username': 'jordan-woyak'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/df43fd94725ee1abda8eb0c69efcd116c48db399', 'modified': ['Source/Core/DolphinQt/Config/Mapping/MappingButton.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Buttons.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Buttons.h', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/ModifySettingsButton.cpp'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7664 from jordan-woyak/kill-button-threshold\n\nControllerEmu: Killed the button group threshold setting.', 'removed': [], 'hash': 'e19ee2ad4f8159a9e8f630c8ebc319c748527da8', 'author': {'email': 'leo@leolam.fr', 'name': 'Léo Lam', 'username': 'leoetlino'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/e19ee2ad4f8159a9e8f630c8ebc319c748527da8', 'modified': ['Source/Core/DolphinQt/Config/Mapping/MappingButton.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Buttons.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Buttons.h', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/ModifySettingsButton.cpp'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'leoetlino', 'before_sha': '3892c3ac481cdde5c9631ba0c8845660c7a95586', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': 'e19ee2ad4f8159a9e8f630c8ebc319c748527da8'}
2019-01-16T20:32:46.944747	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Reimplement savestate loading via drag and drop', 'removed': [], 'hash': 'd69740c8b44ae10b5e420343ea44ac0ac4da1c8c', 'author': {'email': 'me@narry.land', 'name': 'Dan B', 'username': 'NarryG'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/d69740c8b44ae10b5e420343ea44ac0ac4da1c8c', 'modified': ['Source/Core/DolphinQt/RenderWidget.cpp', 'Source/Core/DolphinQt/RenderWidget.h'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7690 from NarryG/dragload-savestate\n\nReimplement savestate loading via drag and drop (resubmission of #7425)', 'removed': [], 'hash': '3892c3ac481cdde5c9631ba0c8845660c7a95586', 'author': {'email': 'leo@leolam.fr', 'name': 'Léo Lam', 'username': 'leoetlino'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/3892c3ac481cdde5c9631ba0c8845660c7a95586', 'modified': ['Source/Core/DolphinQt/RenderWidget.cpp', 'Source/Core/DolphinQt/RenderWidget.h'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'leoetlino', 'before_sha': 'a8bc6f9899630591f616c4b2ed9fca560038e203', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': '3892c3ac481cdde5c9631ba0c8845660c7a95586'}
2019-01-16T20:00:51.236846	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': "ControllerInterface: Allow hotplug callbacks to be unregistered and don't reload the entire config from the ini file on hotplug, just update the control references. This should fix a crash on shutdown on Android.", 'removed': [], 'hash': 'b425f86121c8c9f3b4a510e522d03e432677dcea', 'author': {'email': 'jordan.woyak@gmail.com', 'name': 'Jordan Woyak', 'username': 'jordan-woyak'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/b425f86121c8c9f3b4a510e522d03e432677dcea', 'modified': ['Source/Core/Core/Core.cpp', 'Source/Core/Core/HW/GCKeyboard.cpp', 'Source/Core/Core/HW/GCPad.cpp', 'Source/Core/Core/HW/Wiimote.cpp', 'Source/Core/Core/HotkeyManager.cpp', 'Source/Core/DolphinQt/MainWindow.cpp', 'Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp', 'Source/Core/InputCommon/ControllerInterface/ControllerInterface.h', 'Source/Core/InputCommon/InputConfig.cpp', 'Source/Core/InputCommon/InputConfig.h'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7693 from jordan-woyak/hotplug-callback-fix\n\nControllerInterface: Hotplug callback fixes.', 'removed': [], 'hash': 'a8bc6f9899630591f616c4b2ed9fca560038e203', 'author': {'email': 'leo@leolam.fr', 'name': 'Léo Lam', 'username': 'leoetlino'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/a8bc6f9899630591f616c4b2ed9fca560038e203', 'modified': ['Source/Core/Core/Core.cpp', 'Source/Core/Core/HW/GCKeyboard.cpp', 'Source/Core/Core/HW/GCPad.cpp', 'Source/Core/Core/HW/Wiimote.cpp', 'Source/Core/Core/HotkeyManager.cpp', 'Source/Core/DolphinQt/MainWindow.cpp', 'Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp', 'Source/Core/InputCommon/ControllerInterface/ControllerInterface.h', 'Source/Core/InputCommon/InputConfig.cpp', 'Source/Core/InputCommon/InputConfig.h'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'leoetlino', 'before_sha': 'b2de98cad168dee08a5299bd1220d88a0a6c09eb', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': 'a8bc6f9899630591f616c4b2ed9fca560038e203'}
2019-01-16T17:52:14.081001	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'DirectInput: Use more than 8 bits of precision on axis inputs.', 'removed': [], 'hash': 'a7c45fb49e7a8f11b71fe5a539148e81746998cc', 'author': {'email': 'jordan.woyak@gmail.com', 'name': 'Jordan Woyak', 'username': 'jordan-woyak'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/a7c45fb49e7a8f11b71fe5a539148e81746998cc', 'modified': ['Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7680 from jordan-woyak/dinput-axis-range\n\nDirectInput: Use more than 8 bits of precision on axis inputs.', 'removed': [], 'hash': 'b2de98cad168dee08a5299bd1220d88a0a6c09eb', 'author': {'email': 'leo@leolam.fr', 'name': 'Léo Lam', 'username': 'leoetlino'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/b2de98cad168dee08a5299bd1220d88a0a6c09eb', 'modified': ['Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'leoetlino', 'before_sha': '634ef78a261b2a36f4f1ec6841e8211db5107148', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': 'b2de98cad168dee08a5299bd1220d88a0a6c09eb'}
2019-01-16T17:51:13.343108	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Fixed crash when dereferencing the potential null pointer returned by GetSelectedGame().', 'removed': [], 'hash': 'ee5e2fd9f980cb06292b3c5f9c7b7c736f997aba', 'author': {'email': 'cristian64@gmail.com', 'name': 'Christian Aguilera', 'username': 'cristian64'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/ee5e2fd9f980cb06292b3c5f9c7b7c736f997aba', 'modified': ['Source/Core/DolphinQt/GameList/GameList.cpp'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7705 from cristian64/master\n\nFixed crash when dereferencing the potential null pointer returned by GetSelectedGame().', 'removed': [], 'hash': '634ef78a261b2a36f4f1ec6841e8211db5107148', 'author': {'email': 'leo@leolam.fr', 'name': 'Léo Lam', 'username': 'leoetlino'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/634ef78a261b2a36f4f1ec6841e8211db5107148', 'modified': ['Source/Core/DolphinQt/GameList/GameList.cpp'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'leoetlino', 'before_sha': 'c785ccba27cd110a71443075422eabfa56f40b64', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': '634ef78a261b2a36f4f1ec6841e8211db5107148'}
2019-01-16T17:48:18.829850	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Flatten GCAdapter function\n\nMake CheckDeviceAccess() more flat by inverting checks, reducing\nindentation and removing dead code.', 'removed': [], 'hash': 'fb6fae2b2b808612b2b4d8f6a8ce3dac8aaee76f', 'author': {'email': 'linkmauve@linkmauve.fr', 'name': 'Emmanuel Gil Peyrot', 'username': 'linkmauve'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/fb6fae2b2b808612b2b4d8f6a8ce3dac8aaee76f', 'modified': ['Source/Core/InputCommon/GCAdapter.cpp'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7712 from linkmauve/gcadapter-flatten\n\nFlatten a GCAdapter function', 'removed': [], 'hash': 'c785ccba27cd110a71443075422eabfa56f40b64', 'author': {'email': 'leo@leolam.fr', 'name': 'Léo Lam', 'username': 'leoetlino'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/c785ccba27cd110a71443075422eabfa56f40b64', 'modified': ['Source/Core/InputCommon/GCAdapter.cpp'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'leoetlino', 'before_sha': '59623160686bb038bcd61d11d3b2263f09822c7e', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': 'c785ccba27cd110a71443075422eabfa56f40b64'}
2019-01-15T22:49:38.761751	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'fx texture overlap', 'removed': [], 'hash': '184b2edc309fa290c6d10b25d229752acf552f41', 'author': {'email': 'zwdreams@gmail.com', 'name': 'weihuoya', 'username': 'weihuoya'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/184b2edc309fa290c6d10b25d229752acf552f41', 'modified': ['Source/Core/VideoCommon/TextureCacheBase.cpp'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7643 from weihuoya/texture-overlap\n\nTexture: fx overlap src position', 'removed': [], 'hash': '59623160686bb038bcd61d11d3b2263f09822c7e', 'author': {'email': 'stenzek@gmail.com', 'name': 'Connor McLaughlin', 'username': 'stenzek'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/59623160686bb038bcd61d11d3b2263f09822c7e', 'modified': ['Source/Core/VideoCommon/TextureCacheBase.cpp'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'stenzek', 'before_sha': '1d3e3de44b177eb7bdd07a02afefb83ac9ba5812', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': '59623160686bb038bcd61d11d3b2263f09822c7e'}
2019-01-15T18:01:40.814374	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Automatic disc change for 2-disc games', 'removed': [], 'hash': 'bd665aad5d6924783a66495eadb0628157062748', 'author': {'email': 'josjuice@gmail.com', 'name': 'JosJuice', 'username': 'JosJuice'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/bd665aad5d6924783a66495eadb0628157062748', 'modified': ['Source/Core/Core/Boot/Boot.cpp', 'Source/Core/Core/Boot/Boot.h', 'Source/Core/Core/Config/MainSettings.cpp', 'Source/Core/Core/Config/MainSettings.h', 'Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp', 'Source/Core/Core/HW/DVD/DVDInterface.cpp', 'Source/Core/Core/HW/DVD/DVDInterface.h', 'Source/Core/Core/Movie.cpp', 'Source/Core/DolphinNoGUI/MainNoGUI.cpp', 'Source/Core/DolphinQt/GameList/GameList.cpp', 'Source/Core/DolphinQt/GameList/GameList.h', 'Source/Core/DolphinQt/GameList/GameListModel.cpp', 'Source/Core/DolphinQt/GameList/GameListModel.h', 'Source/Core/DolphinQt/Main.cpp', 'Source/Core/DolphinQt/MainWindow.cpp', 'Source/Core/DolphinQt/MainWindow.h', 'Source/Core/DolphinQt/Settings/GeneralPane.cpp', 'Source/Core/DolphinQt/Settings/GeneralPane.h', 'Source/Core/UICommon/CommandLineParse.cpp'], 'distinct': True, 'added': []}, {'message': "Don't do automatic disc switching when running e.g. the Wii Menu\n\nWe only want automatic disc switching to happen when the game actually\nis running, but software like the Wii Menu also uses DVDLowStopMotor.", 'removed': [], 'hash': 'b608e80d8e5b3b99249b156369b9ceb1db4ad3d7', 'author': {'email': 'josjuice@gmail.com', 'name': 'JosJuice', 'username': 'JosJuice'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/b608e80d8e5b3b99249b156369b9ceb1db4ad3d7', 'modified': ['Source/Core/Core/HW/DVD/DVDInterface.cpp', 'Source/Core/Core/HW/DVD/DVDThread.cpp', 'Source/Core/Core/HW/DVD/DVDThread.h'], 'distinct': True, 'added': []}, {'message': 'Add a delay before automatically switching discs\n\nSome games don\'t behave as expected if we eject the disc as soon as\nwe receive the DVDLowStopMotor command. For instance, Baten Kaitos\nnever shows the prompt to switch discs or the "Reading disc..." text\n(but works correctly other than that).', 'removed': [], 'hash': '352ac91a1cd2071d37ec47be4e5f937875bf9ad3', 'author': {'email': 'josjuice@gmail.com', 'name': 'JosJuice', 'username': 'JosJuice'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/352ac91a1cd2071d37ec47be4e5f937875bf9ad3', 'modified': ['Source/Core/Core/HW/DVD/DVDInterface.cpp'], 'distinct': True, 'added': []}, {'message': 'Add Android support for automatic disc changing', 'removed': [], 'hash': '63c9831b939979c990580589e10e87784d1967e9', 'author': {'email': 'josjuice@gmail.com', 'name': 'JosJuice', 'username': 'JosJuice'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/63c9831b939979c990580589e10e87784d1967e9', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFile.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/GameFileCacheService.java', 'Source/Android/app/src/main/res/values/strings.xml', 'Source/Android/jni/AndroidCommon/AndroidCommon.cpp', 'Source/Android/jni/AndroidCommon/AndroidCommon.h', 'Source/Android/jni/GameList/GameFile.cpp', 'Source/Android/jni/MainAndroid.cpp'], 'distinct': True, 'added': []}, {'message': 'Add M3U file support for automatic disc switching', 'removed': [], 'hash': '0c622929ba0cf1d9c7030029ad86505024e5bbaa', 'author': {'email': 'josjuice@gmail.com', 'name': 'JosJuice', 'username': 'JosJuice'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/0c622929ba0cf1d9c7030029ad86505024e5bbaa', 'modified': ['Source/Core/Core/Boot/Boot.cpp', 'Source/Core/DolphinQt/Info.plist.in', 'Source/Core/DolphinQt/MainWindow.cpp', 'Source/Core/DolphinQt/Settings/PathPane.cpp'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7629 from JosJuice/auto-disc-change\n\nAutomatic disc change for 2-disc games', 'removed': [], 'hash': '1d3e3de44b177eb7bdd07a02afefb83ac9ba5812', 'author': {'email': 'JMC4789@gmail.com', 'name': 'JMC47', 'username': 'JMC47'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/1d3e3de44b177eb7bdd07a02afefb83ac9ba5812', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFile.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/GameFileCacheService.java', 'Source/Android/app/src/main/res/values/strings.xml', 'Source/Android/jni/AndroidCommon/AndroidCommon.cpp', 'Source/Android/jni/AndroidCommon/AndroidCommon.h', 'Source/Android/jni/GameList/GameFile.cpp', 'Source/Android/jni/MainAndroid.cpp', 'Source/Core/Core/Boot/Boot.cpp', 'Source/Core/Core/Boot/Boot.h', 'Source/Core/Core/Config/MainSettings.cpp', 'Source/Core/Core/Config/MainSettings.h', 'Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp', 'Source/Core/Core/HW/DVD/DVDInterface.cpp', 'Source/Core/Core/HW/DVD/DVDInterface.h', 'Source/Core/Core/HW/DVD/DVDThread.cpp', 'Source/Core/Core/HW/DVD/DVDThread.h', 'Source/Core/Core/Movie.cpp', 'Source/Core/DolphinNoGUI/MainNoGUI.cpp', 'Source/Core/DolphinQt/GameList/GameList.cpp', 'Source/Core/DolphinQt/GameList/GameList.h', 'Source/Core/DolphinQt/GameList/GameListModel.cpp', 'Source/Core/DolphinQt/GameList/GameListModel.h', 'Source/Core/DolphinQt/Info.plist.in', 'Source/Core/DolphinQt/Main.cpp', 'Source/Core/DolphinQt/MainWindow.cpp', 'Source/Core/DolphinQt/MainWindow.h', 'Source/Core/DolphinQt/Settings/GeneralPane.cpp', 'Source/Core/DolphinQt/Settings/GeneralPane.h', 'Source/Core/DolphinQt/Settings/PathPane.cpp', 'Source/Core/UICommon/CommandLineParse.cpp'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'JMC47', 'before_sha': 'e2535254ad2ad6d4f627570ec0b69ebc974f000e', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': '1d3e3de44b177eb7bdd07a02afefb83ac9ba5812'}
2019-01-15T04:56:53.884417	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Disable some Video settings for 1080° Snowboarding\n\nIf enabled, in game virtual screens don’t works and camera might go below ground.\r\nAlso fix some graphical effects in menus.', 'removed': [], 'hash': '488d1c8fdf226a53998b094dc8cf8df587faf898', 'author': {'email': 'ytrezq@myopera.com', 'name': 'ytrezq', 'username': 'ytrezq'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/488d1c8fdf226a53998b094dc8cf8df587faf898', 'modified': [], 'distinct': True, 'added': ['Data/Sys/GameSettings/NAO.ini']}, {'message': 'Merge pull request #7709 from ytrezq/master\n\nDisable some Video settings for 1080° Snowboarding', 'removed': [], 'hash': 'e2535254ad2ad6d4f627570ec0b69ebc974f000e', 'author': {'email': 'JMC4789@gmail.com', 'name': 'JMC47', 'username': 'JMC47'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/e2535254ad2ad6d4f627570ec0b69ebc974f000e', 'modified': [], 'distinct': True, 'added': ['Data/Sys/GameSettings/NAO.ini']}], 'deleted': False, 'pusher': 'JMC47', 'before_sha': '658c95588ba6c1b157bf04f83f3d119be187a852', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': 'e2535254ad2ad6d4f627570ec0b69ebc974f000e'}
2019-01-12T03:55:07.550112	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Android: only add controllers GC1 and Wiimote1 as touch controllers', 'removed': [], 'hash': '058778a2e8299e125cf4c85a048cc67ba00b60c1', 'author': {'email': 'zackhow@gmail.com', 'name': 'zackhow', 'username': 'zackhow'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/058778a2e8299e125cf4c85a048cc67ba00b60c1', 'modified': ['Source/Android/jni/ButtonManager.cpp'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7695 from zackhow/onetouch\n\nAndroid: only add controllers GC1 and Wiimote1 as touch controllers', 'removed': [], 'hash': '658c95588ba6c1b157bf04f83f3d119be187a852', 'author': {'email': 'JMC4789@gmail.com', 'name': 'JMC47', 'username': 'JMC47'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/658c95588ba6c1b157bf04f83f3d119be187a852', 'modified': ['Source/Android/jni/ButtonManager.cpp'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'JMC47', 'before_sha': 'eb55fcda53fc9c5d46b87ec227920f9ada5fb3ba', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': '658c95588ba6c1b157bf04f83f3d119be187a852'}
2019-01-11T21:17:48.853124	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Disable Deferred EFB Copies on Mario kart Wii\n\nCan cause random hangs on track load.', 'removed': [], 'hash': '0aee9f5545bda9f9a970ab6eb348473ed5a3e64c', 'author': {'email': 'JMC4789@gmail.com', 'name': 'JMC47', 'username': 'JMC47'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/0aee9f5545bda9f9a970ab6eb348473ed5a3e64c', 'modified': ['Data/Sys/GameSettings/RMC.ini'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7694 from JMC47/MKWDeferred\n\nDisable Deferred EFB Copies on Mario kart Wii', 'removed': [], 'hash': 'eb55fcda53fc9c5d46b87ec227920f9ada5fb3ba', 'author': {'email': 'Helios747@users.noreply.github.com', 'name': 'Anthony', 'username': 'Helios747'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/eb55fcda53fc9c5d46b87ec227920f9ada5fb3ba', 'modified': ['Data/Sys/GameSettings/RMC.ini'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'Helios747', 'before_sha': '012338288e30e765e2ef8ec284cdbaceb42ba5ea', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': 'eb55fcda53fc9c5d46b87ec227920f9ada5fb3ba'}
2019-01-11T00:04:29.869340	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Mapping UI: Make the mixed trigger indicator styling match that of the analog sticks.', 'removed': [], 'hash': '970073084ab18768e98fac83873fe162db52ab4e', 'author': {'email': 'jordan.woyak@gmail.com', 'name': 'Jordan Woyak', 'username': 'jordan-woyak'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/970073084ab18768e98fac83873fe162db52ab4e', 'modified': ['Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp', 'Source/Core/DolphinQt/Config/Mapping/MappingIndicator.h'], 'distinct': True, 'added': []}, {'message': 'Mapping UI: Reorganize wiimote extension layouts a bit so things fit better.', 'removed': [], 'hash': 'def5c6e5736d24ca48ee8b4a2b104fa55cec6166', 'author': {'email': 'jordan.woyak@gmail.com', 'name': 'Jordan Woyak', 'username': 'jordan-woyak'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/def5c6e5736d24ca48ee8b4a2b104fa55cec6166', 'modified': ['Source/Core/DolphinQt/Config/Mapping/WiimoteEmuExtension.cpp'], 'distinct': True, 'added': []}, {'message': 'ControllerEmu: Implement dead zone setting for triggers.', 'removed': [], 'hash': '6a6195f53c0a369782599b56cdbcc803bcb4203e', 'author': {'email': 'jordan.woyak@gmail.com', 'name': 'Jordan Woyak', 'username': 'jordan-woyak'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/6a6195f53c0a369782599b56cdbcc803bcb4203e', 'modified': ['Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.h'], 'distinct': True, 'added': []}, {'message': 'ControllerEmu: Reorganize stick reshaping code and use it for emu wiimote tilt as well. Also make the tilt mapping indicator pretty.', 'removed': [], 'hash': 'c3dc3c106ccb32911a4a6448f7b21c8beaae0c35', 'author': {'email': 'jordan.woyak@gmail.com', 'name': 'Jordan Woyak', 'username': 'jordan-woyak'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/c3dc3c106ccb32911a4a6448f7b21c8beaae0c35', 'modified': ['Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp', 'Source/Core/DolphinQt/Config/Mapping/MappingIndicator.h', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.h', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.h', 'Source/Core/InputCommon/ControllerEmu/StickGate.cpp', 'Source/Core/InputCommon/ControllerEmu/StickGate.h'], 'distinct': True, 'added': []}, {'message': 'WiimoteEmu: Remove redundant threshold setting from hotkeys button group.', 'removed': [], 'hash': '247fa8c628d9f780831140006e69ee3af2f42f2d', 'author': {'email': 'jordan.woyak@gmail.com', 'name': 'Jordan Woyak', 'username': 'jordan-woyak'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/247fa8c628d9f780831140006e69ee3af2f42f2d', 'modified': ['Source/Core/InputCommon/ControllerEmu/ControlGroup/ModifySettingsButton.cpp'], 'distinct': True, 'added': []}, {'message': 'ControllerEmu::Cursor: Add input radius/shape settings to IR Cursor mappings to allow use of round inputs in absolute mode. Make relative input option obey the center/width/height settings. Make the mapping indicator pretty and actually show what the relative/center/w/h settings are doing.', 'removed': [], 'hash': '7a00f55cfa6e65e58ebf9f279bfff61f8b0f8c13', 'author': {'email': 'jordan.woyak@gmail.com', 'name': 'Jordan Woyak', 'username': 'jordan-woyak'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/7a00f55cfa6e65e58ebf9f279bfff61f8b0f8c13', 'modified': ['Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp', 'Source/Core/DolphinQt/Config/Mapping/MappingIndicator.h', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.h', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.h', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.h', 'Source/Core/InputCommon/ControllerEmu/StickGate.cpp', 'Source/Core/InputCommon/ControllerEmu/StickGate.h'], 'distinct': True, 'added': []}, {'message': 'MappingUI: Organize some color constants and hide IR adjusted Z value when cursor is hidden.', 'removed': [], 'hash': '1c24bef594d17472ffc87755e8f10ab865425b6d', 'author': {'email': 'jordan.woyak@gmail.com', 'name': 'Jordan Woyak', 'username': 'jordan-woyak'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/1c24bef594d17472ffc87755e8f10ab865425b6d', 'modified': ['Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp'], 'distinct': True, 'added': []}, {'message': 'ControllerEmu: code cleanup.', 'removed': [], 'hash': '7efa96eda979f5e717813e7c76cefb0720bc239a', 'author': {'email': 'jordan.woyak@gmail.com', 'name': 'Jordan Woyak', 'username': 'jordan-woyak'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/7efa96eda979f5e717813e7c76cefb0720bc239a', 'modified': ['Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.h', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.h', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.h', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.h'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7662 from jordan-woyak/mapping-indicators-make-pretty\n\nControllerEmu: Make mapping indicators pretty', 'removed': [], 'hash': '012338288e30e765e2ef8ec284cdbaceb42ba5ea', 'author': {'email': 'JMC4789@gmail.com', 'name': 'JMC47', 'username': 'JMC47'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/012338288e30e765e2ef8ec284cdbaceb42ba5ea', 'modified': ['Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp', 'Source/Core/DolphinQt/Config/Mapping/MappingIndicator.h', 'Source/Core/DolphinQt/Config/Mapping/WiimoteEmuExtension.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.h', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.h', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.h', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/ModifySettingsButton.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.h', 'Source/Core/InputCommon/ControllerEmu/StickGate.cpp', 'Source/Core/InputCommon/ControllerEmu/StickGate.h'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'JMC47', 'before_sha': 'c2afcb0f6bba761c248031ee715a1db3fd4dbe05', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': '012338288e30e765e2ef8ec284cdbaceb42ba5ea'}
2019-01-10T02:17:35.744938	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Android/OGL: fix bounding box for OpenGL-ES\n\nOpenGL-ES does not have glGetBufferSubData, so use glMapBufferRange instead', 'removed': [], 'hash': '078fc74b546aa81a16cac307ede6ab8f02005749', 'author': {'email': 'zackhow@gmail.com', 'name': 'zackhow', 'username': 'zackhow'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/078fc74b546aa81a16cac307ede6ab8f02005749', 'modified': ['Source/Core/VideoBackends/OGL/BoundingBox.cpp'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7692 from zackhow/bboxadroid\n\nAndroid/OGL: fix bounding box for OpenGL-ES', 'removed': [], 'hash': 'c2afcb0f6bba761c248031ee715a1db3fd4dbe05', 'author': {'email': 'stenzek@gmail.com', 'name': 'Connor McLaughlin', 'username': 'stenzek'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/c2afcb0f6bba761c248031ee715a1db3fd4dbe05', 'modified': ['Source/Core/VideoBackends/OGL/BoundingBox.cpp'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'stenzek', 'before_sha': 'd3e1d2ea000412ee40251656c3efa4375e91f092', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': 'c2afcb0f6bba761c248031ee715a1db3fd4dbe05'}
2019-01-08T13:39:50.026665	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'ControllerInterface: Shutdown order and race condition fix.', 'removed': [], 'hash': '25d43ffd988775e63c3dfc302f9f6ec2c2eb71da', 'author': {'email': 'jordan.woyak@gmail.com', 'name': 'Jordan Woyak', 'username': 'jordan-woyak'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/25d43ffd988775e63c3dfc302f9f6ec2c2eb71da', 'modified': ['Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp', 'Source/Core/InputCommon/ControllerInterface/ControllerInterface.h'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7666 from jordan-woyak/input-shutdown-fix\n\nControllerInterface: Shutdown order and race condition fix.', 'removed': [], 'hash': 'd3e1d2ea000412ee40251656c3efa4375e91f092', 'author': {'email': 'josjuice@gmail.com', 'name': 'JosJuice', 'username': 'JosJuice'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/d3e1d2ea000412ee40251656c3efa4375e91f092', 'modified': ['Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp', 'Source/Core/InputCommon/ControllerInterface/ControllerInterface.h'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'JosJuice', 'before_sha': 'b30a338dd6be34c2a0522f53f360c37660a97b8f', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': 'd3e1d2ea000412ee40251656c3efa4375e91f092'}
2019-01-08T13:01:29.033986	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': "Android: Change all analoginputs to just inputs\n\nAndroid doesn't report values for the inputs generated by FullAnalogInput so\nthere isn't a reason to add them as such. This also avoids a bug(for android)\nwhere if there are three inputs(say 12, 11, and 121), and you generate a FullAnalogInput\nwith 12/11 then it will create another input with the name 121 which can cause conficts\nwith the real 121 input. This is probably not an issue on PC since most Axis inputs\nare named and not numbered.", 'removed': [], 'hash': '02c649ba2024425a76b85e7bb78499dca6e7bbce', 'author': {'email': 'zackhow@gmail.com', 'name': 'zackhow', 'username': 'zackhow'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/02c649ba2024425a76b85e7bb78499dca6e7bbce', 'modified': ['Source/Core/InputCommon/ControllerInterface/Android/Android.cpp'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7683 from zackhow/removefullanalog\n\nAndroid: Change all AnalogInputs to just inputs', 'removed': [], 'hash': 'b30a338dd6be34c2a0522f53f360c37660a97b8f', 'author': {'email': 'josjuice@gmail.com', 'name': 'JosJuice', 'username': 'JosJuice'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/b30a338dd6be34c2a0522f53f360c37660a97b8f', 'modified': ['Source/Core/InputCommon/ControllerInterface/Android/Android.cpp'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'JosJuice', 'before_sha': 'd7b0b4fc5b9a09e545aec8cdc6202659a138080b', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': 'b30a338dd6be34c2a0522f53f360c37660a97b8f'}
2019-01-08T12:02:04.309105	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Fix "Vitual Console" Typo in M.ini', 'removed': [], 'hash': '42c701d518667825251345a02f7d0fbcd9cea0f5', 'author': {'email': 'JMC4789@gmail.com', 'name': 'JMC47', 'username': 'JMC47'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/42c701d518667825251345a02f7d0fbcd9cea0f5', 'modified': ['Data/Sys/GameSettings/M.ini'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7686 from JMC47/MegaDriveTypo\n\nFix "Vitual Console" Typo in M.ini', 'removed': [], 'hash': 'd7b0b4fc5b9a09e545aec8cdc6202659a138080b', 'author': {'email': 'josjuice@gmail.com', 'name': 'JosJuice', 'username': 'JosJuice'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/d7b0b4fc5b9a09e545aec8cdc6202659a138080b', 'modified': ['Data/Sys/GameSettings/M.ini'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'JosJuice', 'before_sha': '0da592922674bf4010c91548b844b2688a191add', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': 'd7b0b4fc5b9a09e545aec8cdc6202659a138080b'}
2019-01-08T11:57:27.676790	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Always flush on swap', 'removed': [], 'hash': '66a7db3850480bf7f1303fc1251d64a01091fef2', 'author': {'email': 'zwdreams@gmail.com', 'name': 'weihuoya', 'username': 'weihuoya'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/66a7db3850480bf7f1303fc1251d64a01091fef2', 'modified': ['Source/Core/VideoBackends/OGL/Render.cpp', 'Source/Core/VideoBackends/OGL/Render.h', 'Source/Core/VideoBackends/Vulkan/Renderer.cpp', 'Source/Core/VideoBackends/Vulkan/Renderer.h', 'Source/Core/VideoCommon/RenderBase.cpp', 'Source/Core/VideoCommon/RenderBase.h'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7626 from weihuoya/vulkan-oom\n\nAlways clean cache on render swap', 'removed': [], 'hash': '0da592922674bf4010c91548b844b2688a191add', 'author': {'email': 'stenzek@gmail.com', 'name': 'Connor McLaughlin', 'username': 'stenzek'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/0da592922674bf4010c91548b844b2688a191add', 'modified': ['Source/Core/VideoBackends/OGL/Render.cpp', 'Source/Core/VideoBackends/OGL/Render.h', 'Source/Core/VideoBackends/Vulkan/Renderer.cpp', 'Source/Core/VideoBackends/Vulkan/Renderer.h', 'Source/Core/VideoCommon/RenderBase.cpp', 'Source/Core/VideoCommon/RenderBase.h'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'stenzek', 'before_sha': '80c8c39d2e0b5b8630da361767e752897152a6f2', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': '0da592922674bf4010c91548b844b2688a191add'}
2019-01-08T08:00:47.204674	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'gamesetting for sengoku utage', 'removed': [], 'hash': '78cf6ae98286d700de589b6db6f8dc9245129d59', 'author': {'email': 'zwdreams@gmail.com', 'name': 'weihuoya', 'username': 'weihuoya'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/78cf6ae98286d700de589b6db6f8dc9245129d59', 'modified': [], 'distinct': True, 'added': ['Data/Sys/GameSettings/S3H.ini']}, {'message': 'Merge pull request #7684 from weihuoya/sengoku-her\n\nGamesetting for Sengoku BASARA 3 Utage', 'removed': [], 'hash': '80c8c39d2e0b5b8630da361767e752897152a6f2', 'author': {'email': 'josjuice@gmail.com', 'name': 'JosJuice', 'username': 'JosJuice'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/80c8c39d2e0b5b8630da361767e752897152a6f2', 'modified': [], 'distinct': True, 'added': ['Data/Sys/GameSettings/S3H.ini']}], 'deleted': False, 'pusher': 'JosJuice', 'before_sha': '339782460163544e23b8ede87e38d1389af6aea5', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': '80c8c39d2e0b5b8630da361767e752897152a6f2'}
2019-01-07T21:55:37.917240	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Qt/ControllersWindow: Fix Wiimote settings not being re-enabled after quitting NetPlay\n\nWe no longer allow accessing controller config while NetPlay is\nrunning, so this check is no longer needed.', 'removed': [], 'hash': 'a2545a18b21000f874e2704157a4004de8ae0bb2', 'author': {'email': 'tecknojar@gmail.com', 'name': 'Techjar', 'username': 'Techjar'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/a2545a18b21000f874e2704157a4004de8ae0bb2', 'modified': ['Source/Core/DolphinQt/Config/ControllersWindow.cpp'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7588 from Techjar/controller-dialog-wiimote-disabled-bug\n\nQt/ControllersWindow: Fix Wiimote settings not being re-enabled after quitting NetPlay', 'removed': [], 'hash': '339782460163544e23b8ede87e38d1389af6aea5', 'author': {'email': 'JMC4789@gmail.com', 'name': 'JMC47', 'username': 'JMC47'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/339782460163544e23b8ede87e38d1389af6aea5', 'modified': ['Source/Core/DolphinQt/Config/ControllersWindow.cpp'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'JMC47', 'before_sha': '3da06970d9e497e497b452182ec99fa6e960d15a', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': '339782460163544e23b8ede87e38d1389af6aea5'}
2019-01-07T21:50:59.634968	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'ConfigManager: add save/load for Jit debug options', 'removed': [], 'hash': '233b00fb7e5a743ffc9da0ed5467f185041ea31d', 'author': {'email': 'zackhow@gmail.com', 'name': 'zackhow', 'username': 'zackhow'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/233b00fb7e5a743ffc9da0ed5467f185041ea31d', 'modified': ['Source/Core/Core/ConfigManager.cpp', 'Source/Core/Core/ConfigManager.h'], 'distinct': True, 'added': []}, {'message': 'Android: Add jit debug menu options', 'removed': [], 'hash': '7b2629717bed9a0fc0baf7fb8adc157f650ba594', 'author': {'email': 'zackhow@gmail.com', 'name': 'zackhow', 'username': 'zackhow'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/7b2629717bed9a0fc0baf7fb8adc157f650ba594', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java', 'Source/Android/app/src/main/res/values/strings.xml'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7605 from zackhow/jitarmconfigs\n\nAndroid: Add Jit debug options to menu.', 'removed': [], 'hash': '3da06970d9e497e497b452182ec99fa6e960d15a', 'author': {'email': 'Helios747@users.noreply.github.com', 'name': 'Anthony', 'username': 'Helios747'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/3da06970d9e497e497b452182ec99fa6e960d15a', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java', 'Source/Android/app/src/main/res/values/strings.xml', 'Source/Core/Core/ConfigManager.cpp', 'Source/Core/Core/ConfigManager.h'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'Helios747', 'before_sha': 'c73adf8d8ee4ace728e27d806b481569efe65e35', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': '3da06970d9e497e497b452182ec99fa6e960d15a'}
2019-01-07T21:48:52.638881	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Fix Emulated Dance Mat\n\nI have no idea how it got so broken, but this makes it so both the\nActive Life and DDR Mario/Wii games can be fully configured.', 'removed': [], 'hash': 'f8586bb83c90cbe3b07ad974d37aff2e14bce732', 'author': {'email': 'JMC4789@gmail.com', 'name': 'JMC47', 'username': 'JMC47'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/f8586bb83c90cbe3b07ad974d37aff2e14bce732', 'modified': ['Source/Core/Core/HW/SI/SI_DeviceDanceMat.cpp'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7656 from JMC47/DanceMatFix\n\nFix Emulated Dance Mat', 'removed': [], 'hash': 'c73adf8d8ee4ace728e27d806b481569efe65e35', 'author': {'email': 'Helios747@users.noreply.github.com', 'name': 'Anthony', 'username': 'Helios747'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/c73adf8d8ee4ace728e27d806b481569efe65e35', 'modified': ['Source/Core/Core/HW/SI/SI_DeviceDanceMat.cpp'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'Helios747', 'before_sha': '3e7803b240d14deae9adc9617611c27043336aa7', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': 'c73adf8d8ee4ace728e27d806b481569efe65e35'}
2019-01-07T21:47:18.132409	{'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'base_ref_name': None, 'commits': [{'message': 'Android: fix/ignore L2/R2 buttons\n\nL2/R2 will trigger a key press and an axis event if the trigger is pressed fully down\nWas incorrectly ignoring L1/R1 key presses', 'removed': [], 'hash': '0c0e045eda0b248d514c98f286ebe4f926bfb9d8', 'author': {'email': 'zackhow@gmail.com', 'name': 'zackhow', 'username': 'zackhow'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/0c0e045eda0b248d514c98f286ebe4f926bfb9d8', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/ControllerMappingHelper.java'], 'distinct': True, 'added': []}, {'message': 'Merge pull request #7622 from zackhow/ds4trig\n\nAndroid: fix/ignore L2/R2 buttons', 'removed': [], 'hash': '3e7803b240d14deae9adc9617611c27043336aa7', 'author': {'email': 'Helios747@users.noreply.github.com', 'name': 'Anthony', 'username': 'Helios747'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/3e7803b240d14deae9adc9617611c27043336aa7', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/ControllerMappingHelper.java'], 'distinct': True, 'added': []}], 'deleted': False, 'pusher': 'Helios747', 'before_sha': '88ef810cbc597b153cb4894bba3246598abb0d16', 'repo': 'dolphin-emu/dolphin', 'forced': False, 'created': False, 'type': 'gh_push', 'after_sha': '3e7803b240d14deae9adc9617611c27043336aa7'}

Recent 'internal_log' events

2019-01-21T04:31:15.378252	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 147, 'pathname': '/home/central/sadm/central/github.py', 'args': "('dolphin-emu/trusted-developers', 'degasus,aldelaro5,unknownbrackets,Sonicadvance1,adamdmoss,jezze,hdcmeta,linkmauve,archshift,riking,magcius,FioraAeterna,jloehr,RisingFog,RachelBryk,hackbar,Techjar,Helios747,Starsam80,shuffle2,mahdihijazi,magumagu,delroth,spxtr,rukai,rohit-n,leoetlino,zackhow,Linktothepast,Ebola16,stevoisiak,spycrab,BhaaLseN,phire,iwubcode,meffij,galop1n,absolome,comex,JosJuice,mimimi085181,marcan,Armada651,bentley,skidau,Buddybenj,Orphis,shonumi,cylgom,ligfx,sepalani,EmptyChaos,aroulin,Ziek,mrgreywater,kayru,LPFaint99,Tilka,NanoByte011,JMC47,stenzek,JonnyH,MerryMage,Hydr8gon,Alcaro,vladfi1,Tinob,jordan-woyak,yourWaifu,booto,Aestek,clinchergt,kamiyo,mathieui,Ryanel,endrift,gwicks,MayImilae,Zopieux,LAGonauta,Parlane,Phatcat,randomstuff,hrydgard,OrN,moncefmechri,AdmiralCurtiss,glennricster,sigmabeta,Sintendo,hthh,neobrain,mmastrac,lioncash')", 'msg': 'New GH %s: %s'}
2019-01-21T04:31:14.853914	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:31:14.288561	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:31:13.721368	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:31:13.071148	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:31:12.608925	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:31:12.608318	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 132, 'pathname': '/home/central/sadm/central/github.py', 'args': "('dolphin-emu', 'trusted-developers')", 'msg': 'Refreshing list of trusted users (from %s/%s)'}
2019-01-21T04:29:52.987690	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 147, 'pathname': '/home/central/sadm/central/github.py', 'args': "('dolphin-emu/core-developers', 'degasus,Parlane,Sonicadvance1,Armada651,leoetlino,phire,JosJuice,stenzek,linkmauve,delroth,hrydgard,shuffle2,spycrab,Tilka,skidau,Helios747,lioncash')", 'msg': 'New GH %s: %s'}
2019-01-21T04:29:52.434557	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:29:51.900953	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:29:51.900347	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 132, 'pathname': '/home/central/sadm/central/github.py', 'args': "('dolphin-emu', 'core-developers')", 'msg': 'Refreshing list of trusted users (from %s/%s)'}
2019-01-21T04:26:12.507985	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 147, 'pathname': '/home/central/sadm/central/github.py', 'args': "('dolphin-emu/trusted-developers', 'degasus,aldelaro5,unknownbrackets,Sonicadvance1,adamdmoss,jezze,hdcmeta,linkmauve,archshift,riking,magcius,FioraAeterna,jloehr,RisingFog,RachelBryk,hackbar,Techjar,Helios747,Starsam80,shuffle2,mahdihijazi,magumagu,delroth,spxtr,rukai,rohit-n,leoetlino,zackhow,Linktothepast,Ebola16,stevoisiak,spycrab,BhaaLseN,phire,iwubcode,meffij,galop1n,absolome,comex,JosJuice,mimimi085181,marcan,Armada651,bentley,skidau,Buddybenj,Orphis,shonumi,cylgom,ligfx,sepalani,EmptyChaos,aroulin,Ziek,mrgreywater,kayru,LPFaint99,Tilka,NanoByte011,JMC47,stenzek,JonnyH,MerryMage,Hydr8gon,Alcaro,vladfi1,Tinob,jordan-woyak,yourWaifu,booto,Aestek,clinchergt,kamiyo,mathieui,Ryanel,endrift,gwicks,MayImilae,Zopieux,LAGonauta,Parlane,Phatcat,randomstuff,hrydgard,OrN,moncefmechri,AdmiralCurtiss,glennricster,sigmabeta,Sintendo,hthh,neobrain,mmastrac,lioncash')", 'msg': 'New GH %s: %s'}
2019-01-21T04:26:11.997862	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:26:11.463944	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:26:10.926601	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:26:10.341561	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:26:09.893566	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:26:09.892357	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 132, 'pathname': '/home/central/sadm/central/github.py', 'args': "('dolphin-emu', 'trusted-developers')", 'msg': 'Refreshing list of trusted users (from %s/%s)'}
2019-01-21T04:22:16.691297	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:22:16.690623	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 196, 'pathname': '/home/central/sadm/central/github.py', 'args': '()', 'msg': "Watched repo 'dolphin-emu/gcdsp-ida' has our hook installed"}
2019-01-21T04:22:16.212533	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:22:15.647587	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:22:15.646952	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 196, 'pathname': '/home/central/sadm/central/github.py', 'args': '()', 'msg': "Watched repo 'dolphin-emu/hwtests' has our hook installed"}
2019-01-21T04:22:15.178787	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}
2019-01-21T04:22:14.670974	{'level': 'INFO', 'source': 'logging', 'type': 'internal_log', 'lineno': 657, 'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com'}

Recent 'irc_message' events

2019-01-21T03:32:29.009514	{'source': 'ircclient', 'type': 'irc_message', 'who': 'Techjar', 'direct': False, 'what': 'like x being pronounced "icks" or something in their native language', 'modes': set(), 'where': '#dolphin-dev'}
2019-01-21T03:32:08.302768	{'source': 'ircclient', 'type': 'irc_message', 'who': 'Techjar', 'direct': False, 'what': 'yeah that has to be some kind of language barrier thing', 'modes': set(), 'where': '#dolphin-dev'}
2019-01-21T03:19:50.259505	{'source': 'ircclient', 'type': 'irc_message', 'who': 'billygoat', 'direct': False, 'what': "lot of just 'fx' commits", 'modes': set(), 'where': '#dolphin-dev'}
2019-01-21T03:19:40.913284	{'source': 'ircclient', 'type': 'irc_message', 'who': 'billygoat', 'direct': False, 'what': 'Its a lot better than his own commit messages', 'modes': set(), 'where': '#dolphin-dev'}
2019-01-21T03:08:31.608026	{'source': 'ircclient', 'type': 'irc_message', 'who': 'Techjar', 'direct': False, 'what': "i'd like if the PR title was more descriptive", 'modes': set(), 'where': '#dolphin-dev'}
2019-01-21T03:08:17.438204	{'source': 'ircclient', 'type': 'irc_message', 'who': 'Techjar', 'direct': False, 'what': 'yeah i was gonna mention that', 'modes': set(), 'where': '#dolphin-dev'}
2019-01-21T03:06:45.369361	{'source': 'ircclient', 'type': 'irc_message', 'who': 'Stenzek', 'direct': False, 'what': '(it probably should be called MSAA not FSAA as well)', 'modes': set(), 'where': '#dolphin-dev'}
2019-01-21T03:06:24.774956	{'source': 'ircclient', 'type': 'irc_message', 'who': 'Stenzek', 'direct': False, 'what': "so he's correct there", 'modes': set(), 'where': '#dolphin-dev'}
2019-01-21T03:05:45.114476	{'source': 'ircclient', 'type': 'irc_message', 'who': 'Stenzek', 'direct': False, 'what': 'anisotropy is basically 1 << n, where n is the setting. So 0 is 1/disabled, 1 is 2x, 2 is 4x, and so on. Multisamples is the number of samples in the framebuffer, so 1 = no msaa, 2 = 2 samples per pixel, etc', 'modes': set(), 'where': '#dolphin-dev'}
2019-01-21T03:03:45.810885	{'source': 'ircclient', 'type': 'irc_message', 'who': 'billygoat', 'direct': False, 'what': "I guess I'm just not getting where he thinks it should be 2x", 'modes': set(), 'where': '#dolphin-dev'}
2019-01-21T03:02:59.284622	{'source': 'ircclient', 'type': 'irc_message', 'who': 'JMC47', 'direct': False, 'what': "that's true", 'modes': {'v'}, 'where': '#dolphin-dev'}
2019-01-21T03:02:58.034569	{'source': 'ircclient', 'type': 'irc_message', 'who': 'JMC47', 'direct': False, 'what': 'yeah', 'modes': {'v'}, 'where': '#dolphin-dev'}
2019-01-21T02:58:58.584992	{'source': 'ircclient', 'type': 'irc_message', 'who': 'Stenzek', 'direct': False, 'what': 'ugh, PR titles like that may as well just be blank', 'modes': set(), 'where': '#dolphin-dev'}
2019-01-21T02:51:59.040616	{'source': 'ircclient', 'type': 'irc_message', 'who': 'JMC47', 'direct': False, 'what': "if that's what you're mentioning", 'modes': {'v'}, 'where': '#dolphin-dev'}
2019-01-21T02:51:54.997943	{'source': 'ircclient', 'type': 'irc_message', 'who': 'JMC47', 'direct': False, 'what': 'MSAA should be off by default', 'modes': {'v'}, 'where': '#dolphin-dev'}
2019-01-21T02:24:51.403211	{'source': 'ircclient', 'type': 'irc_message', 'who': 'billygoat', 'direct': False, 'what': 'Is that corrrect? We default to 2x if not set in GFX?', 'modes': set(), 'where': '#dolphin-dev'}
2019-01-20T23:22:16.146448	{'source': 'ircclient', 'type': 'irc_message', 'who': 'JosJuice', 'direct': False, 'what': "Please don't bring me into this", 'modes': set(), 'where': '#dolphin-dev'}
2019-01-20T23:21:28.043806	{'source': 'ircclient', 'type': 'irc_message', 'who': 'Larsenv', 'direct': False, 'what': 'video game preservation server featuring JosJuice and JMC47', 'modes': set(), 'where': '#dolphin-dev'}
2019-01-20T23:21:09.058350	{'source': 'ircclient', 'type': 'irc_message', 'who': 'spycrab0', 'direct': False, 'what': 'Larsenv: ?', 'modes': {'o'}, 'where': '#dolphin-dev'}
2019-01-20T23:20:21.725470	{'source': 'ircclient', 'type': 'irc_message', 'who': 'Larsenv', 'direct': False, 'what': 'https://discord.gg/Drjcnyp', 'modes': set(), 'where': '#dolphin-dev'}
2019-01-20T23:10:06.086774	{'source': 'ircclient', 'type': 'irc_message', 'who': 'spycrab0', 'direct': False, 'what': "shuffle2: it should exist. It's used as a parameter to codesign.sh...", 'modes': {'o'}, 'where': '#dolphin-dev'}
2019-01-20T23:06:49.552541	{'source': 'ircclient', 'type': 'irc_message', 'who': 'spycrab0', 'direct': False, 'what': "JMC47: didn't do it for the users. It was mostly a learning excercise tbh", 'modes': {'o'}, 'where': '#dolphin-dev'}
2019-01-20T22:59:50.725966	{'source': 'ircclient', 'type': 'irc_message', 'who': 'spycrab0', 'direct': False, 'what': 'Anyway, yeah that sucks. Hm...the issue kinda makes me want to have a go at it tbh...', 'modes': {'o'}, 'where': '#dolphin-dev'}
2019-01-20T22:52:50.551787	{'source': 'ircclient', 'type': 'irc_message', 'who': 'spycrab0', 'direct': False, 'what': "Oh, didn't even know you could boot it up in text mode!", 'modes': {'o'}, 'where': '#dolphin-dev'}
2019-01-20T22:52:05.430060	{'source': 'ircclient', 'type': 'irc_message', 'who': 'delroth', 'direct': False, 'what': "spycrab0: because I don't boot it in graphics mode unless debugging", 'modes': {'o'}, 'where': '#dolphin-dev'}

Recent 'issue' events

2019-01-21T00:33:10.484034	{'issue': 11531, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 2, 'author': 'billygoat', 'title': '[Android] Device rumble is disabled whenever the app loses focus'}
2019-01-20T17:25:27.067177	{'issue': 11531, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 1, 'author': 'billygoat', 'title': '[Android] Device rumble is disabled whenever the app loses focus'}
2019-01-19T23:09:57.562069	{'issue': 11533, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 8, 'author': 'legluondunet', 'title': 'wiimotes motion plus axes X/Y cross reversed'}
2019-01-19T23:05:43.342076	{'issue': 11533, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 7, 'author': 'JosJuice', 'title': 'wiimotes motion plus axes X/Y cross reversed'}
2019-01-19T23:04:50.282409	{'issue': 11533, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 6, 'author': 'legluondunet', 'title': 'wiimotes motion plus axes X/Y cross reversed'}
2019-01-19T22:52:37.074545	{'issue': 11533, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 5, 'author': 'JosJuice', 'title': 'wiimotes motion plus axes X/Y cross reversed'}
2019-01-19T22:46:45.874428	{'issue': 11533, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 4, 'author': 'legluondunet', 'title': 'wiimotes motion plus axes X/Y cross reversed'}
2019-01-19T22:21:33.244862	{'issue': 11533, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 3, 'author': 'JosJuice', 'title': 'wiimotes motion plus axes X/Y cross reversed'}
2019-01-19T22:19:50.951326	{'issue': 11533, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 2, 'author': 'legluondunet', 'title': 'wiimotes motion plus axes X/Y cross reversed'}
2019-01-19T21:45:11.806769	{'issue': 11533, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 1, 'author': 'Billiard26', 'title': 'wiimotes motion plus axes X/Y cross reversed'}
2019-01-19T20:24:18.910466	{'issue': 11533, 'source': 'redmine', 'new': True, 'type': 'issue', 'update': 0, 'author': 'legluondunet', 'title': 'wiimotes motion plus axes X/Y cross reversed'}
2019-01-19T20:12:40.228356	{'issue': 11527, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 4, 'author': 'JosJuice', 'title': 'Feature Request: Add setting in GUI to change global user directory location'}
2019-01-19T20:03:45.059862	{'issue': 11527, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 3, 'author': '8times9', 'title': 'Feature Request: Add setting in GUI to change global user directory location'}
2019-01-19T18:03:41.721475	{'issue': 11511, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 24, 'author': 'markwest76', 'title': 'Consistent Crashing with Rock Band (2008)'}
2019-01-19T06:32:59.302520	{'issue': 11532, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 1, 'author': 'Helios', 'title': 'Call of Duty Black '}
2019-01-19T03:59:17.839061	{'issue': 11532, 'source': 'redmine', 'new': True, 'type': 'issue', 'update': 0, 'author': 'insamity', 'title': 'Call of Duty Black '}
2019-01-18T07:33:29.396237	{'issue': 11511, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 23, 'author': 'InlineData', 'title': 'Consistent Crashing with Rock Band (2008)'}
2019-01-17T21:37:49.354899	{'issue': 11511, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 22, 'author': 'JosJuice', 'title': 'Consistent Crashing with Rock Band (2008)'}
2019-01-17T21:14:22.709975	{'issue': 11531, 'source': 'redmine', 'new': True, 'type': 'issue', 'update': 0, 'author': 'MrMrMANGOMILK', 'title': '[Android] Device rumble is disabled whenever the app loses focus'}
2019-01-17T20:43:36.102700	{'issue': 11511, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 21, 'author': 'markwest76', 'title': 'Consistent Crashing with Rock Band (2008)'}
2019-01-17T12:47:57.394199	{'issue': 11511, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 20, 'author': 'leoetlino', 'title': 'Consistent Crashing with Rock Band (2008)'}
2019-01-17T09:45:04.331052	{'issue': 11511, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 19, 'author': 'markwest76', 'title': 'Consistent Crashing with Rock Band (2008)'}
2019-01-17T04:14:37.831544	{'issue': 7288, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 14, 'author': 'blackman91', 'title': 'Mario Kart Wii custom patch not working properly with JIT recompiler'}
2019-01-17T03:59:01.123497	{'issue': 7288, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 13, 'author': 'blackman91', 'title': 'Mario Kart Wii custom patch not working properly with JIT recompiler'}
2019-01-17T03:51:16.509016	{'issue': 7288, 'source': 'redmine', 'new': False, 'type': 'issue', 'update': 12, 'author': 'blackman91', 'title': 'Mario Kart Wii custom patch not working properly with JIT recompiler'}

Recent 'pull_request_fifoci_status' events

2019-01-21T00:38:48.137138	{'source': 'buildbot', 'service': 'pr-fifoci-ogl-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7724, 'type': 'pull_request_fifoci_status', 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08'}
2019-01-21T00:36:23.342870	{'source': 'buildbot', 'service': 'pr-fifoci-sw-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7724, 'type': 'pull_request_fifoci_status', 'hash': 'd3b09a69c537ae7fd26af7699b8900843a773b08'}
2019-01-21T00:07:11.573264	{'source': 'buildbot', 'service': 'pr-fifoci-ogl-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7723, 'type': 'pull_request_fifoci_status', 'hash': 'f663da25cdfcf0a828a44573fb58c8be17bd42be'}
2019-01-21T00:04:48.710241	{'source': 'buildbot', 'service': 'pr-fifoci-sw-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7723, 'type': 'pull_request_fifoci_status', 'hash': 'f663da25cdfcf0a828a44573fb58c8be17bd42be'}
2019-01-20T23:54:11.157551	{'source': 'buildbot', 'service': 'pr-fifoci-ogl-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7663, 'type': 'pull_request_fifoci_status', 'hash': 'a3d0711240d68ea6b0db9ee3e7aa7dfe5fae27f1'}
2019-01-20T23:51:46.085318	{'source': 'buildbot', 'service': 'pr-fifoci-sw-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7663, 'type': 'pull_request_fifoci_status', 'hash': 'a3d0711240d68ea6b0db9ee3e7aa7dfe5fae27f1'}
2019-01-20T21:18:07.634412	{'source': 'buildbot', 'service': 'pr-fifoci-ogl-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7722, 'type': 'pull_request_fifoci_status', 'hash': '3ee9445989a59cbb6df861d1f8e8c0971fe4ed91'}
2019-01-20T21:15:45.079880	{'source': 'buildbot', 'service': 'pr-fifoci-sw-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7722, 'type': 'pull_request_fifoci_status', 'hash': '3ee9445989a59cbb6df861d1f8e8c0971fe4ed91'}
2019-01-20T17:21:51.146611	{'source': 'buildbot', 'service': 'pr-fifoci-ogl-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7500, 'type': 'pull_request_fifoci_status', 'hash': '09b22ade6f80c3e5b139d7de3da6bb8947ebaca2'}
2019-01-20T17:19:28.390737	{'source': 'buildbot', 'service': 'pr-fifoci-sw-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7500, 'type': 'pull_request_fifoci_status', 'hash': '09b22ade6f80c3e5b139d7de3da6bb8947ebaca2'}
2019-01-20T16:45:48.336231	{'source': 'buildbot', 'service': 'pr-fifoci-ogl-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7500, 'type': 'pull_request_fifoci_status', 'hash': '6e1196760302f7f1dc464156165bd59cf3e5df08'}
2019-01-20T16:43:23.685116	{'source': 'buildbot', 'service': 'pr-fifoci-sw-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7500, 'type': 'pull_request_fifoci_status', 'hash': '6e1196760302f7f1dc464156165bd59cf3e5df08'}
2019-01-20T16:36:15.282950	{'source': 'buildbot', 'service': 'pr-fifoci-ogl-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7721, 'type': 'pull_request_fifoci_status', 'hash': '00f786384d49679d8cb2259fa6037dd3f28fc2f6'}
2019-01-20T16:33:55.200356	{'source': 'buildbot', 'service': 'pr-fifoci-sw-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7721, 'type': 'pull_request_fifoci_status', 'hash': '00f786384d49679d8cb2259fa6037dd3f28fc2f6'}
2019-01-20T16:18:27.165664	{'source': 'buildbot', 'service': 'pr-fifoci-ogl-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7720, 'type': 'pull_request_fifoci_status', 'hash': '45141cbcd3321e13eeab4c324990b0ef94e5b376'}
2019-01-20T16:16:02.402443	{'source': 'buildbot', 'service': 'pr-fifoci-sw-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7720, 'type': 'pull_request_fifoci_status', 'hash': '45141cbcd3321e13eeab4c324990b0ef94e5b376'}
2019-01-20T14:58:19.861222	{'source': 'buildbot', 'service': 'pr-fifoci-ogl-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7717, 'type': 'pull_request_fifoci_status', 'hash': '2f3eb10131aa70dee03f9eaeaa0929031aa4a214'}
2019-01-20T14:56:00.110867	{'source': 'buildbot', 'service': 'pr-fifoci-sw-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7717, 'type': 'pull_request_fifoci_status', 'hash': '2f3eb10131aa70dee03f9eaeaa0929031aa4a214'}
2019-01-20T14:45:08.705243	{'source': 'buildbot', 'service': 'pr-fifoci-ogl-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7717, 'type': 'pull_request_fifoci_status', 'hash': '97d83aea4d0f97c98bd3d77ff7a578ae8850e86e'}
2019-01-20T14:42:49.674331	{'source': 'buildbot', 'service': 'pr-fifoci-sw-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7717, 'type': 'pull_request_fifoci_status', 'hash': '97d83aea4d0f97c98bd3d77ff7a578ae8850e86e'}
2019-01-20T13:23:51.788719	{'source': 'buildbot', 'service': 'pr-fifoci-ogl-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7500, 'type': 'pull_request_fifoci_status', 'hash': '6c463931f6977fdecf5fa54ae376ef4a5f396efa'}
2019-01-20T13:21:30.152302	{'source': 'buildbot', 'service': 'pr-fifoci-sw-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7500, 'type': 'pull_request_fifoci_status', 'hash': '6c463931f6977fdecf5fa54ae376ef4a5f396efa'}
2019-01-20T12:29:31.204632	{'source': 'buildbot', 'service': 'pr-fifoci-ogl-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7717, 'type': 'pull_request_fifoci_status', 'hash': 'b19e1bc96371db4a884b7d67522ec11e81760835'}
2019-01-20T12:27:13.372066	{'source': 'buildbot', 'service': 'pr-fifoci-sw-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7717, 'type': 'pull_request_fifoci_status', 'hash': 'b19e1bc96371db4a884b7d67522ec11e81760835'}
2019-01-20T12:15:46.411561	{'source': 'buildbot', 'service': 'pr-fifoci-ogl-lin-mesa', 'repo': 'dolphin-emu/dolphin', 'pr': 7719, 'type': 'pull_request_fifoci_status', 'hash': 'c0800b52dcdf8012b192eace082083408380fec7'}

Recent 'raw_bb_hook' events

2019-01-21T00:38:46.852986	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77366, 'properties': {'warnings-count': [22, 'WarningCountingShellCommand'], 'shortrev': ['d3b09a', 'Trigger'], 'revision': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'Build'], 'builddir': ['/home/buildslave/slave/pr-fifoci-ogl-lin-mesa', 'Worker'], 'got_revision': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'GitNoBranch'], 'branch': ['refs/pull/7724/head', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'Trigger'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'workername': ['hive', 'Worker'], 'project': ['', 'Build'], 'buildnumber': [3558, 'Build'], 'branchname': ['pr-7724', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'slavename': ['hive', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'pr_id': [7724, 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22541, 'complete_at': None, 'parent_buildid': 55017, 'submitted_at': 1548030694, 'parent_relationship': 'Triggered from', 'complete': False, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'sourcestamps': [{'project': '', 'revision': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030694, 'ssid': 6235, 'codebase': ''}]}, 'number': 3558, 'buildid': 55020, 'url': 'https://buildbot.dolphin-emu.org/#builders/30/builds/3558', 'buildrequest': {'buildrequestid': 77366, 'buildsetid': 22541, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030695, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 30, 'submitted_at': 1548030694, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-fifoci-ogl-lin-mesa', 'masterids': [1], 'builderid': 30, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548031127, 'builderid': 30, 'started_at': 1548030695, 'state_string': 'build successful', 'workerid': 6, 'masterid': 1}}
2019-01-21T00:36:22.317833	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77364, 'properties': {'warnings-count': [22, 'WarningCountingShellCommand'], 'shortrev': ['d3b09a', 'Trigger'], 'revision': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'Build'], 'builddir': ['/home/buildslave/slave/pr-fifoci-sw-lin-mesa', 'Worker'], 'got_revision': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'GitNoBranch'], 'branch': ['refs/pull/7724/head', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'workername': ['hive', 'Worker'], 'project': ['', 'Build'], 'buildnumber': [3558, 'Build'], 'branchname': ['pr-7724', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'slavename': ['hive', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'pr_id': [7724, 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22541, 'complete_at': None, 'parent_buildid': 55017, 'submitted_at': 1548030694, 'parent_relationship': 'Triggered from', 'complete': False, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'sourcestamps': [{'project': '', 'revision': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030694, 'ssid': 6235, 'codebase': ''}]}, 'number': 3558, 'buildid': 55021, 'url': 'https://buildbot.dolphin-emu.org/#builders/17/builds/3558', 'buildrequest': {'buildrequestid': 77364, 'buildsetid': 22541, 'priority': 0, 'results': 0, 'complete': True, 'claimed_at': 1548030695, 'complete_at': 1548030982, 'claimed_by_masterid': 1, 'builderid': 17, 'submitted_at': 1548030694, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'builderid': 17, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548030982, 'builderid': 17, 'started_at': 1548030696, 'state_string': 'build successful', 'workerid': 6, 'masterid': 1}}
2019-01-21T00:35:36.080704	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77357, 'properties': {'warnings-count': [0, 'WarningCountingShellCommand'], 'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'builddir': ['C:\\buildbot\\pr-win-x64', 'Worker'], 'repository': ['', 'Build'], 'scheduler': ['pr', 'Scheduler'], 'build_url': ['https://dl.dolphin-emu.org/prs/pr-7724-dolphin-latest-x64.7z', 'SetProperty'], 'got_revision': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'GitNoBranch'], 'buildername': ['pr-win-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'project': ['', 'Build'], 'buildnumber': [3811, 'Build'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['windows', 'Worker (deprecated)'], 'branch': ['refs/pull/7724/head', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3811, 'buildid': 55024, 'url': 'https://buildbot.dolphin-emu.org/#builders/20/builds/3811', 'buildrequest': {'buildrequestid': 77357, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030819, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 20, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-win-x64', 'masterids': [1], 'builderid': 20, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548030936, 'builderid': 20, 'started_at': 1548030820, 'state_string': 'build successful', 'workerid': 4, 'masterid': 1}}
2019-01-21T00:33:39.990385	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77357, 'properties': {'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'buildnumber': [3811, 'Build'], 'workername': ['windows', 'Worker'], 'project': ['', 'Build'], 'buildername': ['pr-win-x64', 'Builder'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['windows', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3811, 'buildid': 55024, 'url': 'https://buildbot.dolphin-emu.org/#builders/20/builds/3811', 'buildrequest': {'buildrequestid': 77357, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030819, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 20, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-win-x64', 'masterids': [1], 'builderid': 20, 'description': None, 'tags': []}, 'results': None, 'complete': False, 'complete_at': None, 'builderid': 20, 'started_at': 1548030820, 'state_string': 'starting', 'workerid': 4, 'masterid': 1}}
2019-01-21T00:33:39.894892	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77355, 'properties': {'warnings-count': [0, 'WarningCountingShellCommand'], 'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'builddir': ['C:\\buildbot\\pr-win-dbg-x64', 'Worker'], 'repository': ['', 'Build'], 'scheduler': ['pr', 'Scheduler'], 'build_url': ['https://dl.dolphin-emu.org/prs/pr-7724-dolphin-latest-dbg-x64.7z', 'SetProperty'], 'got_revision': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'GitNoBranch'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'project': ['', 'Build'], 'buildnumber': [3797, 'Build'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['windows', 'Worker (deprecated)'], 'branch': ['refs/pull/7724/head', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3797, 'buildid': 55018, 'url': 'https://buildbot.dolphin-emu.org/#builders/7/builds/3797', 'buildrequest': {'buildrequestid': 77355, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030679, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 7, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-win-dbg-x64', 'masterids': [1], 'builderid': 7, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548030820, 'builderid': 7, 'started_at': 1548030679, 'state_string': 'build successful', 'workerid': 4, 'masterid': 1}}
2019-01-21T00:33:09.936382	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77356, 'properties': {'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'builddir': ['/home/buildslave/worker/pr-android', 'Worker'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'got_revision': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'GitNoBranch'], 'buildnumber': [3761, 'Build'], 'workername': ['ubuntu', 'Worker'], 'project': ['', 'Build'], 'buildername': ['pr-android', 'Builder'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['ubuntu', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3761, 'buildid': 55022, 'url': 'https://buildbot.dolphin-emu.org/#builders/8/builds/3761', 'buildrequest': {'buildrequestid': 77356, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030707, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 8, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-android', 'masterids': [1], 'builderid': 8, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548030790, 'builderid': 8, 'started_at': 1548030708, 'state_string': 'build successful', 'workerid': 9, 'masterid': 1}}
2019-01-21T00:32:47.801882	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77358, 'properties': {'warnings-count': [24, 'WarningCountingShellCommand'], 'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'builddir': ['/home/delroth/buildslave/pr-deb-dbg-x64', 'Worker'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'got_revision': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'GitNoBranch'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'workername': ['debian', 'Worker'], 'project': ['', 'Build'], 'buildnumber': [3211, 'Build'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['debian', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3211, 'buildid': 55023, 'url': 'https://buildbot.dolphin-emu.org/#builders/21/builds/3211', 'buildrequest': {'buildrequestid': 77358, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030723, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 21, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-deb-dbg-x64', 'masterids': [1], 'builderid': 21, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548030768, 'builderid': 21, 'started_at': 1548030723, 'state_string': 'build successful', 'workerid': 12, 'masterid': 1}}
2019-01-21T00:32:03.292869	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77358, 'properties': {'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'buildnumber': [3211, 'Build'], 'workername': ['debian', 'Worker'], 'project': ['', 'Build'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['debian', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3211, 'buildid': 55023, 'url': 'https://buildbot.dolphin-emu.org/#builders/21/builds/3211', 'buildrequest': {'buildrequestid': 77358, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030723, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 21, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-deb-dbg-x64', 'masterids': [1], 'builderid': 21, 'description': None, 'tags': []}, 'results': None, 'complete': False, 'complete_at': None, 'builderid': 21, 'started_at': 1548030723, 'state_string': 'starting', 'workerid': 12, 'masterid': 1}}
2019-01-21T00:32:03.147451	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77354, 'properties': {'warnings-count': [24, 'WarningCountingShellCommand'], 'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'builddir': ['/home/delroth/buildslave/pr-deb-x64', 'Worker'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'got_revision': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'GitNoBranch'], 'buildername': ['pr-deb-x64', 'Builder'], 'workername': ['debian', 'Worker'], 'project': ['', 'Build'], 'buildnumber': [3225, 'Build'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['debian', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3225, 'buildid': 55016, 'url': 'https://buildbot.dolphin-emu.org/#builders/6/builds/3225', 'buildrequest': {'buildrequestid': 77354, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030679, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 6, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-deb-x64', 'masterids': [1], 'builderid': 6, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548030723, 'builderid': 6, 'started_at': 1548030679, 'state_string': 'build successful', 'workerid': 12, 'masterid': 1}}
2019-01-21T00:31:47.786696	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77356, 'properties': {'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'buildnumber': [3761, 'Build'], 'workername': ['ubuntu', 'Worker'], 'project': ['', 'Build'], 'buildername': ['pr-android', 'Builder'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['ubuntu', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3761, 'buildid': 55022, 'url': 'https://buildbot.dolphin-emu.org/#builders/8/builds/3761', 'buildrequest': {'buildrequestid': 77356, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030707, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 8, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-android', 'masterids': [1], 'builderid': 8, 'description': None, 'tags': []}, 'results': None, 'complete': False, 'complete_at': None, 'builderid': 8, 'started_at': 1548030708, 'state_string': 'starting', 'workerid': 9, 'masterid': 1}}
2019-01-21T00:31:47.695975	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77359, 'properties': {'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'builddir': ['/home/buildslave/worker/lint', 'Worker'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'got_revision': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'GitNoBranch'], 'buildnumber': [3741, 'Build'], 'workername': ['ubuntu', 'Worker'], 'project': ['', 'Build'], 'buildername': ['lint', 'Builder'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['ubuntu', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3741, 'buildid': 55019, 'url': 'https://buildbot.dolphin-emu.org/#builders/22/builds/3741', 'buildrequest': {'buildrequestid': 77359, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030695, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 22, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'lint', 'masterids': [1], 'builderid': 22, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548030708, 'builderid': 22, 'started_at': 1548030695, 'state_string': 'build successful', 'workerid': 9, 'masterid': 1}}
2019-01-21T00:31:35.935821	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77364, 'properties': {'shortrev': ['d3b09a', 'Trigger'], 'revision': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'Build'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'Trigger'], 'buildnumber': [3558, 'Build'], 'workername': ['hive', 'Worker'], 'project': ['', 'Build'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'branchname': ['pr-7724', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'slavename': ['hive', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'pr_id': [7724, 'Trigger'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22541, 'complete_at': None, 'parent_buildid': 55017, 'submitted_at': 1548030694, 'parent_relationship': 'Triggered from', 'complete': False, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'sourcestamps': [{'project': '', 'revision': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030694, 'ssid': 6235, 'codebase': ''}]}, 'number': 3558, 'buildid': 55021, 'url': 'https://buildbot.dolphin-emu.org/#builders/17/builds/3558', 'buildrequest': {'buildrequestid': 77364, 'buildsetid': 22541, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030695, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 17, 'submitted_at': 1548030694, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'builderid': 17, 'description': None, 'tags': []}, 'results': None, 'complete': False, 'complete_at': None, 'builderid': 17, 'started_at': 1548030696, 'state_string': 'starting', 'workerid': 6, 'masterid': 1}}
2019-01-21T00:31:35.393742	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77366, 'properties': {'shortrev': ['d3b09a', 'Trigger'], 'revision': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'Build'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'Trigger'], 'buildnumber': [3558, 'Build'], 'workername': ['hive', 'Worker'], 'project': ['', 'Build'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'branchname': ['pr-7724', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'slavename': ['hive', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'pr_id': [7724, 'Trigger'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22541, 'complete_at': None, 'parent_buildid': 55017, 'submitted_at': 1548030694, 'parent_relationship': 'Triggered from', 'complete': False, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'sourcestamps': [{'project': '', 'revision': 'd3b09a69c537ae7fd26af7699b8900843a773b08', 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030694, 'ssid': 6235, 'codebase': ''}]}, 'number': 3558, 'buildid': 55020, 'url': 'https://buildbot.dolphin-emu.org/#builders/30/builds/3558', 'buildrequest': {'buildrequestid': 77366, 'buildsetid': 22541, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030695, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 30, 'submitted_at': 1548030694, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-fifoci-ogl-lin-mesa', 'masterids': [1], 'builderid': 30, 'description': None, 'tags': []}, 'results': None, 'complete': False, 'complete_at': None, 'builderid': 30, 'started_at': 1548030695, 'state_string': 'starting', 'workerid': 6, 'masterid': 1}}
2019-01-21T00:31:35.346327	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77359, 'properties': {'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'buildnumber': [3741, 'Build'], 'workername': ['ubuntu', 'Worker'], 'project': ['', 'Build'], 'buildername': ['lint', 'Builder'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['ubuntu', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3741, 'buildid': 55019, 'url': 'https://buildbot.dolphin-emu.org/#builders/22/builds/3741', 'buildrequest': {'buildrequestid': 77359, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030695, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 22, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'lint', 'masterids': [1], 'builderid': 22, 'description': None, 'tags': []}, 'results': None, 'complete': False, 'complete_at': None, 'builderid': 22, 'started_at': 1548030695, 'state_string': 'starting', 'workerid': 9, 'masterid': 1}}
2019-01-21T00:31:35.157174	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77353, 'properties': {'warnings-count': [13, 'WarningCountingShellCommand'], 'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'builddir': ['/home/buildslave/worker/pr-ubu-x64', 'Worker'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'got_revision': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'GitNoBranch'], 'buildername': ['pr-ubu-x64', 'Builder'], 'workername': ['ubuntu', 'Worker'], 'project': ['', 'Build'], 'buildnumber': [3750, 'Build'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['ubuntu', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3750, 'buildid': 55017, 'url': 'https://buildbot.dolphin-emu.org/#builders/2/builds/3750', 'buildrequest': {'buildrequestid': 77353, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030679, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 2, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-ubu-x64', 'masterids': [1], 'builderid': 2, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548030695, 'builderid': 2, 'started_at': 1548030679, 'state_string': 'build successful', 'workerid': 9, 'masterid': 1}}
2019-01-21T00:31:19.289367	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77355, 'properties': {'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'buildnumber': [3797, 'Build'], 'workername': ['windows', 'Worker'], 'project': ['', 'Build'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['windows', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3797, 'buildid': 55018, 'url': 'https://buildbot.dolphin-emu.org/#builders/7/builds/3797', 'buildrequest': {'buildrequestid': 77355, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030679, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 7, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-win-dbg-x64', 'masterids': [1], 'builderid': 7, 'description': None, 'tags': []}, 'results': None, 'complete': False, 'complete_at': None, 'builderid': 7, 'started_at': 1548030679, 'state_string': 'starting', 'workerid': 4, 'masterid': 1}}
2019-01-21T00:31:19.255370	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77353, 'properties': {'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'buildnumber': [3750, 'Build'], 'workername': ['ubuntu', 'Worker'], 'project': ['', 'Build'], 'buildername': ['pr-ubu-x64', 'Builder'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['ubuntu', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3750, 'buildid': 55017, 'url': 'https://buildbot.dolphin-emu.org/#builders/2/builds/3750', 'buildrequest': {'buildrequestid': 77353, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030679, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 2, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-ubu-x64', 'masterids': [1], 'builderid': 2, 'description': None, 'tags': []}, 'results': None, 'complete': False, 'complete_at': None, 'builderid': 2, 'started_at': 1548030679, 'state_string': 'starting', 'workerid': 9, 'masterid': 1}}
2019-01-21T00:31:19.251506	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77354, 'properties': {'shortrev': ['d3b09a', 'try build'], 'revision': [None, 'Build'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7724/head', 'Build'], 'headrev': ['d3b09a69c537ae7fd26af7699b8900843a773b08', 'try build'], 'buildnumber': [3225, 'Build'], 'workername': ['debian', 'Worker'], 'project': ['', 'Build'], 'buildername': ['pr-deb-x64', 'Builder'], 'branchname': ['pr-7724', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['debian', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7724, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22540, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548030678, 'parent_relationship': None, 'complete': False, 'external_idstring': '7724-d3b09a', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7724/head', 'created_at': 1548030679, 'ssid': 6234, 'codebase': ''}]}, 'number': 3225, 'buildid': 55016, 'url': 'https://buildbot.dolphin-emu.org/#builders/6/builds/3225', 'buildrequest': {'buildrequestid': 77354, 'buildsetid': 22540, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548030679, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 6, 'submitted_at': 1548030678, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-deb-x64', 'masterids': [1], 'builderid': 6, 'description': None, 'tags': []}, 'results': None, 'complete': False, 'complete_at': None, 'builderid': 6, 'started_at': 1548030679, 'state_string': 'starting', 'workerid': 12, 'masterid': 1}}
2019-01-21T00:07:10.493720	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77350, 'properties': {'warnings-count': [18, 'WarningCountingShellCommand'], 'shortrev': ['f663da', 'Trigger'], 'revision': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'Build'], 'builddir': ['/home/buildslave/slave/pr-fifoci-ogl-lin-mesa', 'Worker'], 'got_revision': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'GitNoBranch'], 'branch': ['refs/pull/7723/head', 'Build'], 'headrev': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'Trigger'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'workername': ['hive', 'Worker'], 'project': ['', 'Build'], 'buildnumber': [3557, 'Build'], 'branchname': ['pr-7723', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'slavename': ['hive', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'pr_id': [7723, 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22538, 'complete_at': None, 'parent_buildid': 55008, 'submitted_at': 1548028834, 'parent_relationship': 'Triggered from', 'complete': False, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'sourcestamps': [{'project': '', 'revision': 'f663da25cdfcf0a828a44573fb58c8be17bd42be', 'repository': '', 'patch': None, 'branch': 'refs/pull/7723/head', 'created_at': 1548028835, 'ssid': 6233, 'codebase': ''}]}, 'number': 3557, 'buildid': 55010, 'url': 'https://buildbot.dolphin-emu.org/#builders/30/builds/3557', 'buildrequest': {'buildrequestid': 77350, 'buildsetid': 22538, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548028835, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 30, 'submitted_at': 1548028834, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-fifoci-ogl-lin-mesa', 'masterids': [1], 'builderid': 30, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548029230, 'builderid': 30, 'started_at': 1548028836, 'state_string': 'build successful', 'workerid': 6, 'masterid': 1}}
2019-01-21T00:04:47.610513	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77348, 'properties': {'warnings-count': [18, 'WarningCountingShellCommand'], 'shortrev': ['f663da', 'Trigger'], 'revision': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'Build'], 'builddir': ['/home/buildslave/slave/pr-fifoci-sw-lin-mesa', 'Worker'], 'got_revision': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'GitNoBranch'], 'branch': ['refs/pull/7723/head', 'Build'], 'headrev': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'workername': ['hive', 'Worker'], 'project': ['', 'Build'], 'buildnumber': [3557, 'Build'], 'branchname': ['pr-7723', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'slavename': ['hive', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'pr_id': [7723, 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22538, 'complete_at': None, 'parent_buildid': 55008, 'submitted_at': 1548028834, 'parent_relationship': 'Triggered from', 'complete': False, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'sourcestamps': [{'project': '', 'revision': 'f663da25cdfcf0a828a44573fb58c8be17bd42be', 'repository': '', 'patch': None, 'branch': 'refs/pull/7723/head', 'created_at': 1548028835, 'ssid': 6233, 'codebase': ''}]}, 'number': 3557, 'buildid': 55011, 'url': 'https://buildbot.dolphin-emu.org/#builders/17/builds/3557', 'buildrequest': {'buildrequestid': 77348, 'buildsetid': 22538, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548028835, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 17, 'submitted_at': 1548028834, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'builderid': 17, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548029088, 'builderid': 17, 'started_at': 1548028836, 'state_string': 'build successful', 'workerid': 6, 'masterid': 1}}
2019-01-21T00:04:39.887180	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77341, 'properties': {'warnings-count': [0, 'WarningCountingShellCommand'], 'shortrev': ['f663da', 'try build'], 'revision': [None, 'Build'], 'builddir': ['C:\\buildbot\\pr-win-x64', 'Worker'], 'repository': ['', 'Build'], 'scheduler': ['pr', 'Scheduler'], 'build_url': ['https://dl.dolphin-emu.org/prs/pr-7723-dolphin-latest-x64.7z', 'SetProperty'], 'got_revision': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'GitNoBranch'], 'buildername': ['pr-win-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'project': ['', 'Build'], 'buildnumber': [3810, 'Build'], 'branchname': ['pr-7723', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['windows', 'Worker (deprecated)'], 'branch': ['refs/pull/7723/head', 'Build'], 'headrev': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'try build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7723, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22537, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548028818, 'parent_relationship': None, 'complete': False, 'external_idstring': '7723-f663da', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7723/head', 'created_at': 1548028819, 'ssid': 6232, 'codebase': ''}]}, 'number': 3810, 'buildid': 55015, 'url': 'https://buildbot.dolphin-emu.org/#builders/20/builds/3810', 'buildrequest': {'buildrequestid': 77341, 'buildsetid': 22537, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548028959, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 20, 'submitted_at': 1548028818, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-win-x64', 'masterids': [1], 'builderid': 20, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548029080, 'builderid': 20, 'started_at': 1548028960, 'state_string': 'build successful', 'workerid': 4, 'masterid': 1}}
2019-01-21T00:02:40.012611	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77341, 'properties': {'shortrev': ['f663da', 'try build'], 'revision': [None, 'Build'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7723/head', 'Build'], 'headrev': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'try build'], 'buildnumber': [3810, 'Build'], 'workername': ['windows', 'Worker'], 'project': ['', 'Build'], 'buildername': ['pr-win-x64', 'Builder'], 'branchname': ['pr-7723', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['windows', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7723, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22537, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548028818, 'parent_relationship': None, 'complete': False, 'external_idstring': '7723-f663da', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7723/head', 'created_at': 1548028819, 'ssid': 6232, 'codebase': ''}]}, 'number': 3810, 'buildid': 55015, 'url': 'https://buildbot.dolphin-emu.org/#builders/20/builds/3810', 'buildrequest': {'buildrequestid': 77341, 'buildsetid': 22537, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548028959, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 20, 'submitted_at': 1548028818, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-win-x64', 'masterids': [1], 'builderid': 20, 'description': None, 'tags': []}, 'results': None, 'complete': False, 'complete_at': None, 'builderid': 20, 'started_at': 1548028960, 'state_string': 'starting', 'workerid': 4, 'masterid': 1}}
2019-01-21T00:02:39.929277	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77339, 'properties': {'warnings-count': [0, 'WarningCountingShellCommand'], 'shortrev': ['f663da', 'try build'], 'revision': [None, 'Build'], 'builddir': ['C:\\buildbot\\pr-win-dbg-x64', 'Worker'], 'repository': ['', 'Build'], 'scheduler': ['pr', 'Scheduler'], 'build_url': ['https://dl.dolphin-emu.org/prs/pr-7723-dolphin-latest-dbg-x64.7z', 'SetProperty'], 'got_revision': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'GitNoBranch'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'project': ['', 'Build'], 'buildnumber': [3796, 'Build'], 'branchname': ['pr-7723', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['windows', 'Worker (deprecated)'], 'branch': ['refs/pull/7723/head', 'Build'], 'headrev': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'try build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7723, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22537, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548028818, 'parent_relationship': None, 'complete': False, 'external_idstring': '7723-f663da', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7723/head', 'created_at': 1548028819, 'ssid': 6232, 'codebase': ''}]}, 'number': 3796, 'buildid': 55009, 'url': 'https://buildbot.dolphin-emu.org/#builders/7/builds/3796', 'buildrequest': {'buildrequestid': 77339, 'buildsetid': 22537, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548028819, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 7, 'submitted_at': 1548028818, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-win-dbg-x64', 'masterids': [1], 'builderid': 7, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548028960, 'builderid': 7, 'started_at': 1548028819, 'state_string': 'build successful', 'workerid': 4, 'masterid': 1}}
2019-01-21T00:02:13.953047	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77340, 'properties': {'shortrev': ['f663da', 'try build'], 'revision': [None, 'Build'], 'builddir': ['/home/buildslave/worker/pr-android', 'Worker'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7723/head', 'Build'], 'got_revision': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'GitNoBranch'], 'buildnumber': [3760, 'Build'], 'workername': ['ubuntu', 'Worker'], 'project': ['', 'Build'], 'buildername': ['pr-android', 'Builder'], 'branchname': ['pr-7723', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['ubuntu', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'headrev': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'try build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7723, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22537, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548028818, 'parent_relationship': None, 'complete': False, 'external_idstring': '7723-f663da', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7723/head', 'created_at': 1548028819, 'ssid': 6232, 'codebase': ''}]}, 'number': 3760, 'buildid': 55013, 'url': 'https://buildbot.dolphin-emu.org/#builders/8/builds/3760', 'buildrequest': {'buildrequestid': 77340, 'buildsetid': 22537, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548028849, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 8, 'submitted_at': 1548028818, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-android', 'masterids': [1], 'builderid': 8, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548028934, 'builderid': 8, 'started_at': 1548028849, 'state_string': 'build successful', 'workerid': 9, 'masterid': 1}}
2019-01-21T00:01:49.959467	{'source': 'webserver', 'type': 'raw_bb_hook', 'raw': {'buildrequestid': 77342, 'properties': {'warnings-count': [20, 'WarningCountingShellCommand'], 'shortrev': ['f663da', 'try build'], 'revision': [None, 'Build'], 'builddir': ['/home/delroth/buildslave/pr-deb-dbg-x64', 'Worker'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/7723/head', 'Build'], 'got_revision': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'GitNoBranch'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'workername': ['debian', 'Worker'], 'project': ['', 'Build'], 'buildnumber': [3210, 'Build'], 'branchname': ['pr-7723', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'slavename': ['debian', 'Worker (deprecated)'], 'repository': ['', 'Build'], 'headrev': ['f663da25cdfcf0a828a44573fb58c8be17bd42be', 'try build'], 'baserev': ['3627ef8a0489765eb10ab29a7988866b52493239', 'try build'], 'pr_id': [7723, 'try build'], 'codebase': ['', 'Build']}, 'buildset': {'results': -1, 'bsid': 22537, 'complete_at': None, 'parent_buildid': None, 'submitted_at': 1548028818, 'parent_relationship': None, 'complete': False, 'external_idstring': '7723-f663da', 'reason': "'try' job by user Central (on behalf of: zackhow)", 'sourcestamps': [{'project': '', 'revision': None, 'repository': '', 'patch': None, 'branch': 'refs/pull/7723/head', 'created_at': 1548028819, 'ssid': 6232, 'codebase': ''}]}, 'number': 3210, 'buildid': 55014, 'url': 'https://buildbot.dolphin-emu.org/#builders/21/builds/3210', 'buildrequest': {'buildrequestid': 77342, 'buildsetid': 22537, 'priority': 0, 'results': -1, 'complete': False, 'claimed_at': 1548028864, 'complete_at': None, 'claimed_by_masterid': 1, 'builderid': 21, 'submitted_at': 1548028818, 'waited_for': False, 'claimed': True}, 'builder': {'name': 'pr-deb-dbg-x64', 'masterids': [1], 'builderid': 21, 'description': None, 'tags': []}, 'results': 0, 'complete': True, 'complete_at': 1548028910, 'builderid': 21, 'started_at': 1548028865, 'state_string': 'build successful', 'workerid': 12, 'masterid': 1}}

Recent 'raw_gh_hook' events

2019-01-21T02:33:01.539157	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 143, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T02:30:41Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 143, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "- don't mark setting changed with same setting value\r\n- MSAA default is 1 in cpp code\r\n- discard setting with empty setting value\r\n- remove margin in setting activity\r\n- remove no used ApplicationTest.java", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687'}, 'locked': False, 'closed_at': None, 'number': 7687, 'labels': [], 'comments': 4, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQyOTQyMzY2', 'state': 'open', 'updated_at': '2019-01-21T02:33:00Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687', 'created_at': '2019-01-08T11:27:14Z', 'title': 'Android: some minor changes', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/comments', 'id': 396864591}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-21T02:33:00Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687#issuecomment-455930417', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'created_at': '2019-01-21T02:33:00Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455930417', 'body': 'MSAA values are `1, 2, 4, 8` not `0, 1, 2, 3`.', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkzMDQxNw==', 'id': 455930417}}}
2019-01-21T02:30:41.159054	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'pull_request', 'raw': {'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.diff', 'body': "- don't mark setting changed with same setting value\r\n- MSAA default is 1 in cpp code\r\n- discard setting with empty setting value\r\n- remove margin in setting activity\r\n- remove no used ApplicationTest.java", 'merged_by': None, 'requested_reviewers': [], 'maintainer_can_modify': True, 'merged': False, 'author_association': 'CONTRIBUTOR', 'number': 7687, 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'labels': [], 'merged_at': None, 'additions': 23, 'state': 'open', 'review_comments': 0, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687/comments', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/comments', 'assignees': [], 'mergeable': None, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687', 'commits': 1, 'milestone': None, 'merge_commit_sha': '656d625b00a24744a3bd4deb8f2255a16d140b32', 'rebaseable': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQyOTQyMzY2', 'mergeable_state': 'unknown', 'locked': False, 'changed_files': 7, '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7687'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/bddd0fb44e7f0765d3446610c703c8e97fd23f80'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687/commits'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/comments'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687/comments'}}, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687/commits', 'closed_at': None, 'base': {'ref': 'master', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'label': 'dolphin-emu:master', 'repo': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 143, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T02:18:09Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 143, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'sha': '3627ef8a0489765eb10ab29a7988866b52493239'}, 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.patch', 'comments': 4, 'head': {'ref': 'android-minor-fx', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'label': 'weihuoya:android-minor-fx', 'repo': {'forks_count': 4, 'events_url': 'https://api.github.com/repos/weihuoya/dolphin/events', 'pulls_url': 'https://api.github.com/repos/weihuoya/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/weihuoya/dolphin/languages', 'git_url': 'git://github.com/weihuoya/dolphin.git', 'name': 'dolphin', 'watchers_count': 43, 'forks': 4, 'milestones_url': 'https://api.github.com/repos/weihuoya/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/weihuoya/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'watchers': 43, 'labels_url': 'https://api.github.com/repos/weihuoya/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/weihuoya/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/weihuoya/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/weihuoya/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/weihuoya/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/weihuoya/dolphin/teams', 'tags_url': 'https://api.github.com/repos/weihuoya/dolphin/tags', 'stargazers_count': 43, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDMwMTE4NTU=', 'clone_url': 'https://github.com/weihuoya/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/weihuoya/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/weihuoya/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/weihuoya/dolphin', 'contributors_url': 'https://api.github.com/repos/weihuoya/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/weihuoya/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/weihuoya/dolphin/notifications{?since,all,participating}', 'fork': True, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'weihuoya/dolphin', 'open_issues_count': 0, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/weihuoya/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/weihuoya/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/weihuoya/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/weihuoya/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/weihuoya/dolphin', 'trees_url': 'https://api.github.com/repos/weihuoya/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/weihuoya/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/weihuoya/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T02:30:37Z', 'archived': False, 'svn_url': 'https://github.com/weihuoya/dolphin', 'has_projects': True, 'subscription_url': 'https://api.github.com/repos/weihuoya/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/weihuoya/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/weihuoya/dolphin/issues{/number}', 'size': 338909, 'open_issues': 0, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator.', 'releases_url': 'https://api.github.com/repos/weihuoya/dolphin/releases{/id}', 'ssh_url': 'git@github.com:weihuoya/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/weihuoya/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/weihuoya/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/weihuoya/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/weihuoya/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/weihuoya/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-18T12:58:39Z', 'statuses_url': 'https://api.github.com/repos/weihuoya/dolphin/statuses/{sha}', 'created_at': '2018-07-31T12:34:59Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/weihuoya/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/weihuoya/dolphin/git/refs{/sha}', 'id': 143011855}, 'sha': 'bddd0fb44e7f0765d3446610c703c8e97fd23f80'}, 'deletions': 30, 'updated_at': '2019-01-21T02:30:40Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/bddd0fb44e7f0765d3446610c703c8e97fd23f80', 'created_at': '2019-01-08T11:27:14Z', 'title': 'Android: some minor changes', 'requested_teams': [], 'id': 242942366}, 'action': 'synchronize', 'number': 7687, 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 143, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T02:18:09Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 143, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'after': 'bddd0fb44e7f0765d3446610c703c8e97fd23f80', 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'before': 'b9aeed503f8ac3c88ca4a308f0394001799f353b'}}
2019-01-21T02:18:54.312022	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 143, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T02:18:09Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 143, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "- don't mark setting changed with same setting value\r\n- MSAA default is 1 in cpp code\r\n- discard setting with empty setting value\r\n- remove margin in setting activity\r\n- remove no used ApplicationTest.java", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687'}, 'locked': False, 'closed_at': None, 'number': 7687, 'labels': [], 'comments': 3, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQyOTQyMzY2', 'state': 'open', 'updated_at': '2019-01-21T02:18:53Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687', 'created_at': '2019-01-08T11:27:14Z', 'title': 'Android: some minor changes', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/comments', 'id': 396864591}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-21T02:18:53Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687#issuecomment-455928629', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'created_at': '2019-01-21T02:18:53Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455928629', 'body': 'fix MSAA values in `arrays.xml`', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkyODYyOQ==', 'id': 455928629}}}
2019-01-21T02:18:09.288722	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'pull_request', 'raw': {'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.diff', 'body': "- don't mark setting changed with same setting value\r\n- MSAA default is 1 in cpp code\r\n- discard setting with empty setting value\r\n- remove margin in setting activity\r\n- remove no used ApplicationTest.java", 'merged_by': None, 'requested_reviewers': [], 'maintainer_can_modify': True, 'merged': False, 'author_association': 'CONTRIBUTOR', 'number': 7687, 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'labels': [], 'merged_at': None, 'additions': 23, 'state': 'open', 'review_comments': 0, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687/comments', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/comments', 'assignees': [], 'mergeable': None, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687', 'commits': 1, 'milestone': None, 'merge_commit_sha': 'eda53d85a08861e18cd07688ff737f1e4cd973ff', 'rebaseable': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQyOTQyMzY2', 'mergeable_state': 'unknown', 'locked': False, 'changed_files': 7, '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7687'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/b9aeed503f8ac3c88ca4a308f0394001799f353b'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687/commits'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/comments'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687/comments'}}, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687/commits', 'closed_at': None, 'base': {'ref': 'master', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'label': 'dolphin-emu:master', 'repo': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 143, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T00:31:08Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 143, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'sha': '3627ef8a0489765eb10ab29a7988866b52493239'}, 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.patch', 'comments': 3, 'head': {'ref': 'android-minor-fx', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'label': 'weihuoya:android-minor-fx', 'repo': {'forks_count': 4, 'events_url': 'https://api.github.com/repos/weihuoya/dolphin/events', 'pulls_url': 'https://api.github.com/repos/weihuoya/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/weihuoya/dolphin/languages', 'git_url': 'git://github.com/weihuoya/dolphin.git', 'name': 'dolphin', 'watchers_count': 43, 'forks': 4, 'milestones_url': 'https://api.github.com/repos/weihuoya/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/weihuoya/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'watchers': 43, 'labels_url': 'https://api.github.com/repos/weihuoya/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/weihuoya/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/weihuoya/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/weihuoya/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/weihuoya/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/weihuoya/dolphin/teams', 'tags_url': 'https://api.github.com/repos/weihuoya/dolphin/tags', 'stargazers_count': 43, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDMwMTE4NTU=', 'clone_url': 'https://github.com/weihuoya/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/weihuoya/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/weihuoya/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/weihuoya/dolphin', 'contributors_url': 'https://api.github.com/repos/weihuoya/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/weihuoya/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/weihuoya/dolphin/notifications{?since,all,participating}', 'fork': True, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'weihuoya/dolphin', 'open_issues_count': 0, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/weihuoya/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/weihuoya/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/weihuoya/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/weihuoya/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/weihuoya/dolphin', 'trees_url': 'https://api.github.com/repos/weihuoya/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/weihuoya/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/weihuoya/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T02:18:06Z', 'archived': False, 'svn_url': 'https://github.com/weihuoya/dolphin', 'has_projects': True, 'subscription_url': 'https://api.github.com/repos/weihuoya/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/weihuoya/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/weihuoya/dolphin/issues{/number}', 'size': 338909, 'open_issues': 0, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator.', 'releases_url': 'https://api.github.com/repos/weihuoya/dolphin/releases{/id}', 'ssh_url': 'git@github.com:weihuoya/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/weihuoya/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/weihuoya/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/weihuoya/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/weihuoya/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/weihuoya/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-18T12:58:39Z', 'statuses_url': 'https://api.github.com/repos/weihuoya/dolphin/statuses/{sha}', 'created_at': '2018-07-31T12:34:59Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/weihuoya/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/weihuoya/dolphin/git/refs{/sha}', 'id': 143011855}, 'sha': 'b9aeed503f8ac3c88ca4a308f0394001799f353b'}, 'deletions': 30, 'updated_at': '2019-01-21T02:18:08Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/b9aeed503f8ac3c88ca4a308f0394001799f353b', 'created_at': '2019-01-08T11:27:14Z', 'title': 'Android: some minor changes', 'requested_teams': [], 'id': 242942366}, 'action': 'synchronize', 'number': 7687, 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 143, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T00:31:08Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 143, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'after': 'b9aeed503f8ac3c88ca4a308f0394001799f353b', 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'before': '5dbed79990243206cc2df147afb8d0b52f006e20'}}
2019-01-21T02:08:25.874219	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 143, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T00:31:08Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 143, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "- don't mark setting changed with same setting value\r\n- MSAA default is 1 in cpp code\r\n- discard setting with empty setting value\r\n- remove margin in setting activity\r\n- remove no used ApplicationTest.java", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7687', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7687.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687'}, 'locked': False, 'closed_at': None, 'number': 7687, 'labels': [], 'comments': 2, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQyOTQyMzY2', 'state': 'open', 'updated_at': '2019-01-21T02:08:25Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687', 'created_at': '2019-01-08T11:27:14Z', 'title': 'Android: some minor changes', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687/comments', 'id': 396864591}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-21T02:08:25Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/weihuoya/followers', 'url': 'https://api.github.com/users/weihuoya', 'organizations_url': 'https://api.github.com/users/weihuoya/orgs', 'node_id': 'MDQ6VXNlcjM4MjczMzM=', 'events_url': 'https://api.github.com/users/weihuoya/events{/privacy}', 'repos_url': 'https://api.github.com/users/weihuoya/repos', 'gists_url': 'https://api.github.com/users/weihuoya/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/weihuoya/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/weihuoya/following{/other_user}', 'html_url': 'https://github.com/weihuoya', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3827333?v=4', 'login': 'weihuoya', 'subscriptions_url': 'https://api.github.com/users/weihuoya/subscriptions', 'starred_url': 'https://api.github.com/users/weihuoya/starred{/owner}{/repo}', 'id': 3827333}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7687#issuecomment-455927269', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7687', 'created_at': '2019-01-21T02:08:25Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455927269', 'body': 'default MSAA is 1 and it mean turn off MSAA, but for Anisotropy 1 mean `2x`.\r\nhttps://github.com/dolphin-emu/dolphin/blob/3627ef8a0489765eb10ab29a7988866b52493239/Source/Core/Core/Config/GraphicsSettings.cpp#L61\r\n', 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkyNzI2OQ==', 'id': 455927269}}}
2019-01-21T00:31:08.590588	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'pull_request', 'raw': {'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7724.diff', 'body': 'Fixes issue where vibration would stop if you swapped between apps mid emulation.', 'merged_by': None, 'requested_reviewers': [], 'maintainer_can_modify': True, 'merged': False, 'author_association': 'MEMBER', 'number': 7724, 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7724', 'labels': [], 'merged_at': None, 'additions': 4, 'state': 'open', 'review_comments': 0, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7724/comments', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7724', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7724/comments', 'assignees': [], 'mergeable': None, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7724', 'commits': 1, 'milestone': None, 'merge_commit_sha': None, 'rebaseable': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTQ2MDcx', 'mergeable_state': 'unknown', 'locked': False, 'changed_files': 2, '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7724'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/d3b09a69c537ae7fd26af7699b8900843a773b08'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7724/commits'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7724'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7724/comments'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7724'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7724/comments'}}, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7724/commits', 'closed_at': None, 'base': {'ref': 'master', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'label': 'dolphin-emu:master', 'repo': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 143, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T00:00:08Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 143, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'sha': '3627ef8a0489765eb10ab29a7988866b52493239'}, 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7724.patch', 'comments': 0, 'head': {'ref': 'rum', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'label': 'zackhow:rum', 'repo': {'forks_count': 0, 'events_url': 'https://api.github.com/repos/zackhow/dolphin/events', 'pulls_url': 'https://api.github.com/repos/zackhow/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/zackhow/dolphin/languages', 'git_url': 'git://github.com/zackhow/dolphin.git', 'name': 'dolphin', 'watchers_count': 0, 'forks': 0, 'milestones_url': 'https://api.github.com/repos/zackhow/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/zackhow/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'watchers': 0, 'labels_url': 'https://api.github.com/repos/zackhow/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/zackhow/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/zackhow/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/zackhow/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/zackhow/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/zackhow/dolphin/teams', 'tags_url': 'https://api.github.com/repos/zackhow/dolphin/tags', 'stargazers_count': 0, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzk5MzAwMjc=', 'clone_url': 'https://github.com/zackhow/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/zackhow/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/zackhow/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/zackhow/dolphin', 'contributors_url': 'https://api.github.com/repos/zackhow/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/zackhow/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/zackhow/dolphin/notifications{?since,all,participating}', 'fork': True, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'zackhow/dolphin', 'open_issues_count': 0, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/zackhow/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/zackhow/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/zackhow/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/zackhow/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/zackhow/dolphin', 'trees_url': 'https://api.github.com/repos/zackhow/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/zackhow/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/zackhow/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T00:30:33Z', 'archived': False, 'svn_url': 'https://github.com/zackhow/dolphin', 'has_projects': True, 'subscription_url': 'https://api.github.com/repos/zackhow/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/zackhow/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/zackhow/dolphin/issues{/number}', 'size': 335927, 'open_issues': 0, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/zackhow/dolphin/releases{/id}', 'ssh_url': 'git@github.com:zackhow/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/zackhow/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/zackhow/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/zackhow/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/zackhow/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/zackhow/dolphin/{archive_format}{/ref}', 'updated_at': '2018-08-31T21:17:21Z', 'statuses_url': 'https://api.github.com/repos/zackhow/dolphin/statuses/{sha}', 'created_at': '2018-07-06T03:44:25Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/zackhow/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/zackhow/dolphin/git/refs{/sha}', 'id': 139930027}, 'sha': 'd3b09a69c537ae7fd26af7699b8900843a773b08'}, 'deletions': 4, 'updated_at': '2019-01-21T00:31:07Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/d3b09a69c537ae7fd26af7699b8900843a773b08', 'created_at': '2019-01-21T00:31:07Z', 'title': "Android: Don't clear vibrators in onStop", 'requested_teams': [], 'id': 246146071}, 'action': 'opened', 'number': 7724, 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 143, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-21T00:00:08Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 143, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}}}
2019-01-21T00:00:08.028114	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'pull_request', 'raw': {'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7723.diff', 'body': "Increase some button sizes\r\nCreate new defaults for Wiimote only and horizontal Wiimote\r\n\r\n@JMC47 I've placed the dpad, 1, and 2 buttons on the top of the screen when using horizontal Wiimote. It just felt more natural. Let me know what you think.", 'merged_by': None, 'requested_reviewers': [], 'maintainer_can_modify': True, 'merged': False, 'author_association': 'MEMBER', 'number': 7723, 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7723', 'labels': [], 'merged_at': None, 'additions': 172, 'state': 'open', 'review_comments': 0, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7723/comments', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7723', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7723/comments', 'assignees': [], 'mergeable': None, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7723', 'commits': 1, 'milestone': None, 'merge_commit_sha': None, 'rebaseable': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTQ0MTEx', 'mergeable_state': 'unknown', 'locked': False, 'changed_files': 2, '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7723'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f663da25cdfcf0a828a44573fb58c8be17bd42be'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7723/commits'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7723'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7723/comments'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7723'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7723/comments'}}, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7723/commits', 'closed_at': None, 'base': {'ref': 'master', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'label': 'dolphin-emu:master', 'repo': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 142, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T23:46:11Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 142, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'sha': '3627ef8a0489765eb10ab29a7988866b52493239'}, 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7723.patch', 'comments': 0, 'head': {'ref': 'newcale', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'label': 'zackhow:newcale', 'repo': {'forks_count': 0, 'events_url': 'https://api.github.com/repos/zackhow/dolphin/events', 'pulls_url': 'https://api.github.com/repos/zackhow/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/zackhow/dolphin/languages', 'git_url': 'git://github.com/zackhow/dolphin.git', 'name': 'dolphin', 'watchers_count': 0, 'forks': 0, 'milestones_url': 'https://api.github.com/repos/zackhow/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/zackhow/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'watchers': 0, 'labels_url': 'https://api.github.com/repos/zackhow/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/zackhow/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/zackhow/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/zackhow/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/zackhow/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/zackhow/dolphin/teams', 'tags_url': 'https://api.github.com/repos/zackhow/dolphin/tags', 'stargazers_count': 0, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzk5MzAwMjc=', 'clone_url': 'https://github.com/zackhow/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/zackhow/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/zackhow/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/zackhow/dolphin', 'contributors_url': 'https://api.github.com/repos/zackhow/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/zackhow/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/zackhow/dolphin/notifications{?since,all,participating}', 'fork': True, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'zackhow/dolphin', 'open_issues_count': 0, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/zackhow/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/zackhow/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/zackhow/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/zackhow/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/zackhow/dolphin', 'trees_url': 'https://api.github.com/repos/zackhow/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/zackhow/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/zackhow/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T23:48:24Z', 'archived': False, 'svn_url': 'https://github.com/zackhow/dolphin', 'has_projects': True, 'subscription_url': 'https://api.github.com/repos/zackhow/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/zackhow/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/zackhow/dolphin/issues{/number}', 'size': 335927, 'open_issues': 0, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/zackhow/dolphin/releases{/id}', 'ssh_url': 'git@github.com:zackhow/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/zackhow/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/zackhow/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/zackhow/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/zackhow/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/zackhow/dolphin/{archive_format}{/ref}', 'updated_at': '2018-08-31T21:17:21Z', 'statuses_url': 'https://api.github.com/repos/zackhow/dolphin/statuses/{sha}', 'created_at': '2018-07-06T03:44:25Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/zackhow/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/zackhow/dolphin/git/refs{/sha}', 'id': 139930027}, 'sha': 'f663da25cdfcf0a828a44573fb58c8be17bd42be'}, 'deletions': 34, 'updated_at': '2019-01-21T00:00:07Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f663da25cdfcf0a828a44573fb58c8be17bd42be', 'created_at': '2019-01-21T00:00:07Z', 'title': 'Android: Wiimote only(no nunchuck) overlay upgrades', 'requested_teams': [], 'id': 246144111}, 'action': 'opened', 'number': 7723, 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 142, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T23:46:11Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 142, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}}}
2019-01-20T23:57:18.923620	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'issue_comment', 'raw': {'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'action': 'edited', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 141, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T23:46:11Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 141, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "This pull request replaces the built-in raster fonts with imgui.\r\n\r\nMainly, this enables better hidpi scaling, and support for translating OSD messages, assuming we load the correct fonts. It also makes use of the abstract textures/pipelines, so we don't need any more backend-specific code.\r\n\r\nIn the future, we can use imgui for other purposes, for example, frame time/statistics graphs, netplay chat, etc.\r\n\r\nMarked WIP because there's still a few things I need to fix up:\r\n\r\n- [x] Hook up input to imgui\r\n- [x] Fix imgui rendering breaking GX rendering on Vulkan\r\n- [x] Fix build on Linux\r\n- [x] Fix fade-out of OSD messages\r\n- [x] Port across all debug stats to imgui window/tables\r\n- [x] Use index buffers for drawing\r\n\r\nA sneak peek for those interested:\r\n\r\n![untitled](https://user-images.githubusercontent.com/11288319/46677529-28322a80-cc26-11e8-988b-bcebaed0daf9.png)\r\n", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478'}, 'locked': False, 'closed_at': None, 'number': 7478, 'labels': [], 'comments': 6, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIxNDcwMDIx', 'state': 'open', 'updated_at': '2019-01-20T23:57:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478', 'created_at': '2018-10-09T14:48:32Z', 'title': 'Replace raster font with dear imgui', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/comments', 'id': 368249868}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'changes': {'body': {'from': "> I believe the Android/Vulkan issue is seperate, and occurs on master?\r\nNo, on master messages display using Vulkan. \r\n\r\n> And yeah, the scale is only set on qt currently. I'll look into how we can pass it through.\r\nJosJuice mentioned we could set it on android by [detecting the screen density](https://developer.android.com/reference/android/util/DisplayMetrics.html#scaledDensity) and passing it down, but I don't want that to hold up the PR, so it can be done later. For now hard setting it(where I linked in the previous comment) to 1.5 works for both ATV and phone. "}}, 'comment': {'author_association': 'MEMBER', 'updated_at': '2019-01-20T23:57:18Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478#issuecomment-455914727', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'created_at': '2019-01-20T23:57:07Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455914727', 'body': "> I believe the Android/Vulkan issue is seperate, and occurs on master?\r\n\r\nNo, on master messages display using Vulkan. \r\n\r\n> And yeah, the scale is only set on qt currently. I'll look into how we can pass it through.\r\n\r\nJosJuice mentioned we could set it on android by [detecting the screen density](https://developer.android.com/reference/android/util/DisplayMetrics.html#scaledDensity) and passing it down, but I don't want that to hold up the PR, so it can be done later. For now hard setting it(where I linked in the previous comment) to 1.5 works for both ATV and phone. ", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkxNDcyNw==', 'id': 455914727}}}
2019-01-20T23:57:08.152509	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 141, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T23:46:11Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 141, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "This pull request replaces the built-in raster fonts with imgui.\r\n\r\nMainly, this enables better hidpi scaling, and support for translating OSD messages, assuming we load the correct fonts. It also makes use of the abstract textures/pipelines, so we don't need any more backend-specific code.\r\n\r\nIn the future, we can use imgui for other purposes, for example, frame time/statistics graphs, netplay chat, etc.\r\n\r\nMarked WIP because there's still a few things I need to fix up:\r\n\r\n- [x] Hook up input to imgui\r\n- [x] Fix imgui rendering breaking GX rendering on Vulkan\r\n- [x] Fix build on Linux\r\n- [x] Fix fade-out of OSD messages\r\n- [x] Port across all debug stats to imgui window/tables\r\n- [x] Use index buffers for drawing\r\n\r\nA sneak peek for those interested:\r\n\r\n![untitled](https://user-images.githubusercontent.com/11288319/46677529-28322a80-cc26-11e8-988b-bcebaed0daf9.png)\r\n", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478'}, 'locked': False, 'closed_at': None, 'number': 7478, 'labels': [], 'comments': 5, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIxNDcwMDIx', 'state': 'open', 'updated_at': '2019-01-20T23:57:07Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478', 'created_at': '2018-10-09T14:48:32Z', 'title': 'Replace raster font with dear imgui', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/comments', 'id': 368249868}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'MEMBER', 'updated_at': '2019-01-20T23:57:07Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/zackhow/followers', 'url': 'https://api.github.com/users/zackhow', 'organizations_url': 'https://api.github.com/users/zackhow/orgs', 'node_id': 'MDQ6VXNlcjQyNzA0NA==', 'events_url': 'https://api.github.com/users/zackhow/events{/privacy}', 'repos_url': 'https://api.github.com/users/zackhow/repos', 'gists_url': 'https://api.github.com/users/zackhow/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/zackhow/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/zackhow/following{/other_user}', 'html_url': 'https://github.com/zackhow', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/427044?v=4', 'login': 'zackhow', 'subscriptions_url': 'https://api.github.com/users/zackhow/subscriptions', 'starred_url': 'https://api.github.com/users/zackhow/starred{/owner}{/repo}', 'id': 427044}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478#issuecomment-455914727', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'created_at': '2019-01-20T23:57:07Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455914727', 'body': "> I believe the Android/Vulkan issue is seperate, and occurs on master?\r\nNo, on master messages display using Vulkan. \r\n\r\n> And yeah, the scale is only set on qt currently. I'll look into how we can pass it through.\r\nJosJuice mentioned we could set it on android by [detecting the screen density](https://developer.android.com/reference/android/util/DisplayMetrics.html#scaledDensity) and passing it down, but I don't want that to hold up the PR, so it can be done later. For now hard setting it(where I linked in the previous comment) to 1.5 works for both ATV and phone. ", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkxNDcyNw==', 'id': 455914727}}}
2019-01-20T23:48:15.936338	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 141, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T23:46:11Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 141, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': "This pull request replaces the built-in raster fonts with imgui.\r\n\r\nMainly, this enables better hidpi scaling, and support for translating OSD messages, assuming we load the correct fonts. It also makes use of the abstract textures/pipelines, so we don't need any more backend-specific code.\r\n\r\nIn the future, we can use imgui for other purposes, for example, frame time/statistics graphs, netplay chat, etc.\r\n\r\nMarked WIP because there's still a few things I need to fix up:\r\n\r\n- [x] Hook up input to imgui\r\n- [x] Fix imgui rendering breaking GX rendering on Vulkan\r\n- [x] Fix build on Linux\r\n- [x] Fix fade-out of OSD messages\r\n- [x] Port across all debug stats to imgui window/tables\r\n- [x] Use index buffers for drawing\r\n\r\nA sneak peek for those interested:\r\n\r\n![untitled](https://user-images.githubusercontent.com/11288319/46677529-28322a80-cc26-11e8-988b-bcebaed0daf9.png)\r\n", 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7478', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7478.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478'}, 'locked': False, 'closed_at': None, 'number': 7478, 'labels': [], 'comments': 4, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIxNDcwMDIx', 'state': 'open', 'updated_at': '2019-01-20T23:48:15Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478', 'created_at': '2018-10-09T14:48:32Z', 'title': 'Replace raster font with dear imgui', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478/comments', 'id': 368249868}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-20T23:48:15Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/stenzek/followers', 'url': 'https://api.github.com/users/stenzek', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'node_id': 'MDQ6VXNlcjExMjg4MzE5', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'repos_url': 'https://api.github.com/users/stenzek/repos', 'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'html_url': 'https://github.com/stenzek', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'login': 'stenzek', 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'id': 11288319}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7478#issuecomment-455914109', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7478', 'created_at': '2019-01-20T23:48:15Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455914109', 'body': "I believe the Android/Vulkan issue is seperate, and occurs on master?\r\n\r\nAnd yeah, the scale is only set on qt currently. I'll look into how we can pass it through.", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkxNDEwOQ==', 'id': 455914109}}}
2019-01-20T23:46:10.563363	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'pull_request', 'raw': {'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7663.diff', 'body': 'Demonstrations (note: syntax of expressions has changed slightly since):\r\nhttps://i.imgur.com/9wCT3sH.gif\r\nhttps://i.imgur.com/codD9p2.gif\r\nhttps://i.imgur.com/PbeGoKl.gif\r\n\r\nLiterals are now supported, e.g. `` `Trigger R`+0.25``\r\nThis is useful for:\r\n- Holding Wiimote "Tilt" or IR "Forward/Backward" to a certain neutral value.\r\n- Modifying dirty input values on troublesome gamepads.\r\n- Math in advanced configurations\r\n\r\nThe ! (NOT) function syntax has been extended to support named functions.\r\n- Arguments syntax is C++-like\r\n- E.g. ``!if (`Button 1`, 0.5, 0.0)``\r\n\r\nAdditional binary and unary operators have been added for advanced configurations:\r\n\r\n- `, * - / % < > !sin !if !while` etc.\r\n\r\nAdded a !toggle unary function whose state toggles on/off when its inner expression is activated.\r\nThis allows for any mapped input in Dolphin to be toggled on and off rather than held without needing separate "toggle" settings.\r\n- This was wanted for Wiimote IR Hide, Speed-limiter, etc.\r\n\r\nAdded special function named !timer which increases from 0.0 to 1.0 every N seconds.\r\n- e.g. `!timer(1/2)` for a 2Hz timer.\r\n- This can be used for creating auto-fire buttons.\r\n\r\nAdded named variables and assignment operator, e.g. ``$my_var=`Button 1` ``\r\n- Each ControllerEmu has its own set of variables.\r\n- Variables are reset on rebinding calls (**going to change that**) and default to 0.0\r\n- Useful to transfer state between different mappings.\r\n\r\nOutputs and Inputs can now be used in the same expression.\r\n- E.g. `` `Motor R`=`Button 1` `` will set rumble motor on when pressing a button.\r\n\r\nAdded !while function which re-evaluates the 2nd argument while the 1st argument is > 0.5\r\n- Limited to 10000 reps to prevent infinite loops.\r\n\r\nAdded !if function\r\n\r\nAdded comma operator which behaves like it does in c++ to string together expressions.\r\n- Lhs is evaluated and discarded. Expression takes value of Rhs.\r\n\r\nC++-style operator precedence is now followed.\r\n- Yes, this may break some existing expressions, but I think it\'s worth it.\r\n\r\n**TODO**\r\nUpdate GUI so people are semi-aware of these features.\r\nMaybe add some additional functions people would want. Deadzone, Smoothing, etc.\r\n\r\nThis will fix issues:\r\nhttps://bugs.dolphin-emu.org/issues/5531\r\nhttps://bugs.dolphin-emu.org/issues/6513\r\nhttps://bugs.dolphin-emu.org/issues/6827\r\nhttps://bugs.dolphin-emu.org/issues/11187', 'merged_by': None, 'requested_reviewers': [], 'maintainer_can_modify': True, 'merged': False, 'author_association': 'CONTRIBUTOR', 'number': 7663, 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7663', 'labels': [], 'merged_at': None, 'additions': 716, 'state': 'open', 'review_comments': 16, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7663/comments', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7663', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7663/comments', 'assignees': [], 'mergeable': None, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7663', 'commits': 19, 'milestone': None, 'merge_commit_sha': 'f51f080d187535f94309c5569798527767f35275', 'rebaseable': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'url': 'https://api.github.com/users/jordan-woyak', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'html_url': 'https://github.com/jordan-woyak', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/1768214?v=4', 'login': 'jordan-woyak', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'id': 1768214}, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQxNTA1NzY4', 'mergeable_state': 'unknown', 'locked': False, 'changed_files': 7, '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/7663'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/a3d0711240d68ea6b0db9ee3e7aa7dfe5fae27f1'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7663/commits'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7663'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7663/comments'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7663'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7663/comments'}}, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7663/commits', 'closed_at': None, 'base': {'ref': 'master', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'label': 'dolphin-emu:master', 'repo': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 141, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T21:01:55Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 141, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'sha': '3627ef8a0489765eb10ab29a7988866b52493239'}, 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7663.patch', 'comments': 0, 'head': {'ref': 'expression-parser-improve', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'url': 'https://api.github.com/users/jordan-woyak', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'html_url': 'https://github.com/jordan-woyak', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/1768214?v=4', 'login': 'jordan-woyak', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'id': 1768214}, 'label': 'jordan-woyak:expression-parser-improve', 'repo': {'forks_count': 0, 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'name': 'dolphin', 'watchers_count': 0, 'forks': 0, 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'url': 'https://api.github.com/users/jordan-woyak', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'html_url': 'https://github.com/jordan-woyak', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/1768214?v=4', 'login': 'jordan-woyak', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'id': 1768214}, 'watchers': 0, 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'stargazers_count': 0, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'fork': True, 'homepage': None, 'full_name': 'jordan-woyak/dolphin', 'open_issues_count': 0, 'has_wiki': False, 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T23:46:07Z', 'archived': False, 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'has_projects': True, 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'size': 335508, 'open_issues': 0, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-11T20:58:14Z', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'created_at': '2014-02-13T21:50:38Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'id': 16818408}, 'sha': 'a3d0711240d68ea6b0db9ee3e7aa7dfe5fae27f1'}, 'deletions': 160, 'updated_at': '2019-01-20T23:46:09Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/a3d0711240d68ea6b0db9ee3e7aa7dfe5fae27f1', 'created_at': '2018-12-30T19:38:42Z', 'title': 'Expression parser improvements', 'requested_teams': [], 'id': 241505768}, 'action': 'synchronize', 'number': 7663, 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 141, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T21:01:55Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 141, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'after': 'a3d0711240d68ea6b0db9ee3e7aa7dfe5fae27f1', 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'url': 'https://api.github.com/users/jordan-woyak', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'html_url': 'https://github.com/jordan-woyak', 'gravatar_id': '', 'avatar_url': 'https://avatars1.githubusercontent.com/u/1768214?v=4', 'login': 'jordan-woyak', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'id': 1768214}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'before': '34ab27e38ea1e2d1bcb9ea19cc2e0d4c8bad2974'}}
2019-01-20T23:30:16.481782	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'repository': {'forks_count': 1175, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1175, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 141, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T21:01:55Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 141, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'updated_at': '2019-01-20T16:47:01Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'created_at': '2013-07-22T09:07:57Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'id': 11577304}, 'issue': {'assignees': [], 'body': 'Probably right-clicking on the header is the first action that users attempt to take to hide/show columns.', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718/events', 'milestone': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'author_association': 'CONTRIBUTOR', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718/labels{/name}', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'pull_request': {'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/7718.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/7718', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/7718.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7718'}, 'locked': False, 'closed_at': None, 'number': 7718, 'labels': [], 'comments': 2, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MDgzNzA5', 'state': 'open', 'updated_at': '2019-01-20T23:30:15Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7718', 'created_at': '2019-01-20T02:35:45Z', 'title': 'Qt/MainWindow: Also display "List Columns" menu via right-click on table\'s header.', 'assignee': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718/comments', 'id': 401055909}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'author_association': 'CONTRIBUTOR', 'updated_at': '2019-01-20T23:30:15Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/cristian64/followers', 'url': 'https://api.github.com/users/cristian64', 'organizations_url': 'https://api.github.com/users/cristian64/orgs', 'node_id': 'MDQ6VXNlcjE4NTMyNzg=', 'events_url': 'https://api.github.com/users/cristian64/events{/privacy}', 'repos_url': 'https://api.github.com/users/cristian64/repos', 'gists_url': 'https://api.github.com/users/cristian64/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/cristian64/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/cristian64/following{/other_user}', 'html_url': 'https://github.com/cristian64', 'gravatar_id': '', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1853278?v=4', 'login': 'cristian64', 'subscriptions_url': 'https://api.github.com/users/cristian64/subscriptions', 'starred_url': 'https://api.github.com/users/cristian64/starred{/owner}{/repo}', 'id': 1853278}, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/7718#issuecomment-455912895', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/7718', 'created_at': '2019-01-20T23:30:15Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/455912895', 'body': "If feels that **Settings** should not have knowledge about the menu, so maybe let's not go that way for now.\r\n\r\n\r\nI guess we could add the following two functions:\r\n- `static MenuBar* MenuBar::GetMenuBar()`\r\n- `QMenu* MenuBar::GetListColumnsMenu() const`\r\n\r\nSo we could do something like:\r\n```\r\nQMenu* list_columns_menu = MenuBar::GetMenuBar()->GetListColumnsMenu();\r\n```\r\n(with null pointer checks)\r\n\r\nIn the `MenuBar::MenuBar()` constructor, we could store the instance in a static member of the class (e.g. `static QPointer<MenuBar> MenuBar::s_menu_bar`). Using a **QPointer** container will ensure that the pointer is nullified when the object is destroyed.\r\n\r\nThoughts?", 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ1NTkxMjg5NQ==', 'id': 455912895}}}
2019-01-20T23:16:58.049739	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'pull_request_review', 'raw': {'pull_request': {'diff_url': 'https://github.com/dolphin-emu/sadm/pull/104.diff', 'body': 'Update ``master.cfg`` to generate manifests for macOS.\r\n**Requires implementing --platform in make_manifest.py first**', 'assignees': [], 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'requested_reviewers': [], 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4', 'milestone': None, 'merge_commit_sha': '499a1fb5361af1d2b4ee0e264f7be1c6e6c6e4bb', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'author_association': 'CONTRIBUTOR', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits', 'head': {'ref': 'buildbot_macos_updater', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'label': 'spycrab:buildbot_macos_updater', 'repo': {'forks_count': 0, 'events_url': 'https://api.github.com/repos/spycrab/sadm/events', 'pulls_url': 'https://api.github.com/repos/spycrab/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/spycrab/sadm/languages', 'git_url': 'git://github.com/spycrab/sadm.git', 'name': 'sadm', 'watchers_count': 0, 'forks': 0, 'milestones_url': 'https://api.github.com/repos/spycrab/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/spycrab/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'watchers': 0, 'labels_url': 'https://api.github.com/repos/spycrab/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/spycrab/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/spycrab/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/spycrab/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/spycrab/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/spycrab/sadm/teams', 'tags_url': 'https://api.github.com/repos/spycrab/sadm/tags', 'stargazers_count': 0, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTkzNjE3MDQ=', 'clone_url': 'https://github.com/spycrab/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/spycrab/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/spycrab/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/spycrab/sadm', 'contributors_url': 'https://api.github.com/repos/spycrab/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/spycrab/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/spycrab/sadm/notifications{?since,all,participating}', 'fork': True, 'homepage': None, 'full_name': 'spycrab/sadm', 'open_issues_count': 0, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/spycrab/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/spycrab/sadm/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/spycrab/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/spycrab/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/spycrab/sadm', 'trees_url': 'https://api.github.com/repos/spycrab/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/spycrab/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/spycrab/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:18Z', 'archived': False, 'svn_url': 'https://github.com/spycrab/sadm', 'has_projects': True, 'subscription_url': 'https://api.github.com/repos/spycrab/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/spycrab/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/spycrab/sadm/issues{/number}', 'size': 421, 'open_issues': 0, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/spycrab/sadm/releases{/id}', 'ssh_url': 'git@github.com:spycrab/sadm.git', 'issue_events_url': 'https://api.github.com/repos/spycrab/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/spycrab/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/spycrab/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/spycrab/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/spycrab/sadm/{archive_format}{/ref}', 'updated_at': '2018-01-29T09:32:16Z', 'statuses_url': 'https://api.github.com/repos/spycrab/sadm/statuses/{sha}', 'created_at': '2018-01-29T09:32:14Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/spycrab/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/spycrab/sadm/git/refs{/sha}', 'id': 119361704}, 'sha': 'b8904388404346f64dd523d25e38dd66e02b41e4'}, '_links': {'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments'}}, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments', 'locked': False, 'closed_at': None, 'number': 104, 'issue_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104', 'patch_url': 'https://github.com/dolphin-emu/sadm/pull/104.patch', 'merged_at': None, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTI5MzYw', 'base': {'ref': 'master', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'label': 'dolphin-emu:master', 'repo': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'sha': '3d27ea021cf67847c33b7b8aac898df52f703f1c'}, 'state': 'open', 'labels': [], 'updated_at': '2019-01-20T23:16:56Z', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments', 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104', 'created_at': '2019-01-20T19:28:59Z', 'title': 'buildbot/master.cfg: Implement macOS Updater support', 'assignee': None, 'requested_teams': [], 'id': 246129360}, 'action': 'submitted', 'repository': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'review': {'state': 'commented', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'body': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104#pullrequestreview-194414731', 'submitted_at': '2019-01-20T23:16:56Z', '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104#pullrequestreview-194414731'}}, 'node_id': 'MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MTk0NDE0NzMx', 'commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'author_association': 'CONTRIBUTOR', 'id': 194414731}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}}}
2019-01-20T23:16:57.524083	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'pull_request_review_comment', 'raw': {'pull_request': {'diff_url': 'https://github.com/dolphin-emu/sadm/pull/104.diff', 'body': 'Update ``master.cfg`` to generate manifests for macOS.\r\n**Requires implementing --platform in make_manifest.py first**', 'assignees': [], 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'requested_reviewers': [], 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4', 'milestone': None, 'merge_commit_sha': '499a1fb5361af1d2b4ee0e264f7be1c6e6c6e4bb', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'author_association': 'CONTRIBUTOR', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits', 'head': {'ref': 'buildbot_macos_updater', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'label': 'spycrab:buildbot_macos_updater', 'repo': {'forks_count': 0, 'events_url': 'https://api.github.com/repos/spycrab/sadm/events', 'pulls_url': 'https://api.github.com/repos/spycrab/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/spycrab/sadm/languages', 'git_url': 'git://github.com/spycrab/sadm.git', 'name': 'sadm', 'watchers_count': 0, 'forks': 0, 'milestones_url': 'https://api.github.com/repos/spycrab/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/spycrab/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'watchers': 0, 'labels_url': 'https://api.github.com/repos/spycrab/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/spycrab/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/spycrab/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/spycrab/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/spycrab/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/spycrab/sadm/teams', 'tags_url': 'https://api.github.com/repos/spycrab/sadm/tags', 'stargazers_count': 0, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTkzNjE3MDQ=', 'clone_url': 'https://github.com/spycrab/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/spycrab/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/spycrab/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/spycrab/sadm', 'contributors_url': 'https://api.github.com/repos/spycrab/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/spycrab/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/spycrab/sadm/notifications{?since,all,participating}', 'fork': True, 'homepage': None, 'full_name': 'spycrab/sadm', 'open_issues_count': 0, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/spycrab/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/spycrab/sadm/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/spycrab/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/spycrab/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/spycrab/sadm', 'trees_url': 'https://api.github.com/repos/spycrab/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/spycrab/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/spycrab/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:18Z', 'archived': False, 'svn_url': 'https://github.com/spycrab/sadm', 'has_projects': True, 'subscription_url': 'https://api.github.com/repos/spycrab/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/spycrab/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/spycrab/sadm/issues{/number}', 'size': 421, 'open_issues': 0, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/spycrab/sadm/releases{/id}', 'ssh_url': 'git@github.com:spycrab/sadm.git', 'issue_events_url': 'https://api.github.com/repos/spycrab/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/spycrab/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/spycrab/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/spycrab/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/spycrab/sadm/{archive_format}{/ref}', 'updated_at': '2018-01-29T09:32:16Z', 'statuses_url': 'https://api.github.com/repos/spycrab/sadm/statuses/{sha}', 'created_at': '2018-01-29T09:32:14Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/spycrab/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/spycrab/sadm/git/refs{/sha}', 'id': 119361704}, 'sha': 'b8904388404346f64dd523d25e38dd66e02b41e4'}, '_links': {'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments'}}, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments', 'locked': False, 'closed_at': None, 'number': 104, 'issue_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104', 'patch_url': 'https://github.com/dolphin-emu/sadm/pull/104.patch', 'merged_at': None, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTI5MzYw', 'base': {'ref': 'master', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'label': 'dolphin-emu:master', 'repo': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'sha': '3d27ea021cf67847c33b7b8aac898df52f703f1c'}, 'state': 'open', 'labels': [], 'updated_at': '2019-01-20T23:16:56Z', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments', 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104', 'created_at': '2019-01-20T19:28:59Z', 'title': 'buildbot/master.cfg: Implement macOS Updater support', 'assignee': None, 'requested_teams': [], 'id': 246129360}, 'action': 'created', 'repository': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'pull_request_review_id': 194414731, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'position': 22, 'body': "Used before with codesign.sh. pretty sure it won't cause issues", 'path': 'buildbot/master.cfg', 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249300625', '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249300625'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249300625'}}, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTMwMDYyNQ==', 'commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'author_association': 'CONTRIBUTOR', 'diff_hunk': '@@ -340,10 +341,16 @@ def make_dolphin_osx_build(mode="normal"):\n                            descriptionDone="sign",\n                            haltOnFailure=True))\n \n+    f.addStep(ShellCommand(command="/build/codesign.sh --deep Binaries/Dolphin\\ Updater.app",\n+                           workdir="build/build",\n+                           description="signing updater",\n+                           descriptionDone="sign updater",\n+                           haltOnFailure=True))\n \n     f.addStep(ShellCommand(command=["hdiutil", "create", "dolphin.dmg",\n                                     "-format", "UDBZ",\n-                                    "-srcfolder", "Binaries/dolphin.app", "-ov",\n+                                    "-layout", "SPUD", # Needed for 7-Zip support\n+                                    "-srcfolder", "Binaries/Dolphin.app", "-ov",', 'updated_at': '2019-01-20T23:16:56Z', 'original_position': 22, 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249300625', 'created_at': '2019-01-20T23:16:56Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'in_reply_to_id': 249299457, 'id': 249300625, 'original_commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4'}}}
2019-01-20T23:08:03.427030	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'pull_request_review_comment', 'raw': {'pull_request': {'diff_url': 'https://github.com/dolphin-emu/sadm/pull/104.diff', 'body': 'Update ``master.cfg`` to generate manifests for macOS.\r\n**Requires implementing --platform in make_manifest.py first**', 'assignees': [], 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'requested_reviewers': [], 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4', 'milestone': None, 'merge_commit_sha': '499a1fb5361af1d2b4ee0e264f7be1c6e6c6e4bb', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'author_association': 'CONTRIBUTOR', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits', 'head': {'ref': 'buildbot_macos_updater', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'label': 'spycrab:buildbot_macos_updater', 'repo': {'forks_count': 0, 'events_url': 'https://api.github.com/repos/spycrab/sadm/events', 'pulls_url': 'https://api.github.com/repos/spycrab/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/spycrab/sadm/languages', 'git_url': 'git://github.com/spycrab/sadm.git', 'name': 'sadm', 'watchers_count': 0, 'forks': 0, 'milestones_url': 'https://api.github.com/repos/spycrab/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/spycrab/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'watchers': 0, 'labels_url': 'https://api.github.com/repos/spycrab/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/spycrab/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/spycrab/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/spycrab/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/spycrab/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/spycrab/sadm/teams', 'tags_url': 'https://api.github.com/repos/spycrab/sadm/tags', 'stargazers_count': 0, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTkzNjE3MDQ=', 'clone_url': 'https://github.com/spycrab/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/spycrab/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/spycrab/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/spycrab/sadm', 'contributors_url': 'https://api.github.com/repos/spycrab/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/spycrab/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/spycrab/sadm/notifications{?since,all,participating}', 'fork': True, 'homepage': None, 'full_name': 'spycrab/sadm', 'open_issues_count': 0, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/spycrab/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/spycrab/sadm/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/spycrab/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/spycrab/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/spycrab/sadm', 'trees_url': 'https://api.github.com/repos/spycrab/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/spycrab/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/spycrab/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:18Z', 'archived': False, 'svn_url': 'https://github.com/spycrab/sadm', 'has_projects': True, 'subscription_url': 'https://api.github.com/repos/spycrab/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/spycrab/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/spycrab/sadm/issues{/number}', 'size': 421, 'open_issues': 0, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/spycrab/sadm/releases{/id}', 'ssh_url': 'git@github.com:spycrab/sadm.git', 'issue_events_url': 'https://api.github.com/repos/spycrab/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/spycrab/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/spycrab/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/spycrab/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/spycrab/sadm/{archive_format}{/ref}', 'updated_at': '2018-01-29T09:32:16Z', 'statuses_url': 'https://api.github.com/repos/spycrab/sadm/statuses/{sha}', 'created_at': '2018-01-29T09:32:14Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/spycrab/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/spycrab/sadm/git/refs{/sha}', 'id': 119361704}, 'sha': 'b8904388404346f64dd523d25e38dd66e02b41e4'}, '_links': {'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments'}}, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments', 'locked': False, 'closed_at': None, 'number': 104, 'issue_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104', 'patch_url': 'https://github.com/dolphin-emu/sadm/pull/104.patch', 'merged_at': None, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTI5MzYw', 'base': {'ref': 'master', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'label': 'dolphin-emu:master', 'repo': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'sha': '3d27ea021cf67847c33b7b8aac898df52f703f1c'}, 'state': 'open', 'labels': [], 'updated_at': '2019-01-20T23:08:01Z', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments', 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104', 'created_at': '2019-01-20T19:28:59Z', 'title': 'buildbot/master.cfg: Implement macOS Updater support', 'assignee': None, 'requested_teams': [], 'id': 246129360}, 'action': 'created', 'repository': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'url': 'https://api.github.com/users/shuffle2', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'node_id': 'MDQ6VXNlcjExMzA2Mw==', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'html_url': 'https://github.com/shuffle2', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'login': 'shuffle2', 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'id': 113063}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'pull_request_review_id': 194414324, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'position': 22, 'body': 'I meant: "-srcfolder Binaries/Dolphin.app" implies "Binaries/Dolphin.app" already exists. Is that the case? Or this change runs risk of breaking things.', 'path': 'buildbot/master.cfg', 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249300233', '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249300233'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249300233'}}, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTMwMDIzMw==', 'commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'author_association': 'CONTRIBUTOR', 'diff_hunk': '@@ -340,10 +341,16 @@ def make_dolphin_osx_build(mode="normal"):\n                            descriptionDone="sign",\n                            haltOnFailure=True))\n \n+    f.addStep(ShellCommand(command="/build/codesign.sh --deep Binaries/Dolphin\\ Updater.app",\n+                           workdir="build/build",\n+                           description="signing updater",\n+                           descriptionDone="sign updater",\n+                           haltOnFailure=True))\n \n     f.addStep(ShellCommand(command=["hdiutil", "create", "dolphin.dmg",\n                                     "-format", "UDBZ",\n-                                    "-srcfolder", "Binaries/dolphin.app", "-ov",\n+                                    "-layout", "SPUD", # Needed for 7-Zip support\n+                                    "-srcfolder", "Binaries/Dolphin.app", "-ov",', 'updated_at': '2019-01-20T23:08:01Z', 'original_position': 22, 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249300233', 'created_at': '2019-01-20T23:08:01Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'url': 'https://api.github.com/users/shuffle2', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'node_id': 'MDQ6VXNlcjExMzA2Mw==', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'html_url': 'https://github.com/shuffle2', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'login': 'shuffle2', 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'id': 113063}, 'in_reply_to_id': 249299457, 'id': 249300233, 'original_commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4'}}}
2019-01-20T23:08:03.425586	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'pull_request_review', 'raw': {'pull_request': {'diff_url': 'https://github.com/dolphin-emu/sadm/pull/104.diff', 'body': 'Update ``master.cfg`` to generate manifests for macOS.\r\n**Requires implementing --platform in make_manifest.py first**', 'assignees': [], 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'requested_reviewers': [], 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4', 'milestone': None, 'merge_commit_sha': '499a1fb5361af1d2b4ee0e264f7be1c6e6c6e4bb', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'author_association': 'CONTRIBUTOR', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits', 'head': {'ref': 'buildbot_macos_updater', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'label': 'spycrab:buildbot_macos_updater', 'repo': {'forks_count': 0, 'events_url': 'https://api.github.com/repos/spycrab/sadm/events', 'pulls_url': 'https://api.github.com/repos/spycrab/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/spycrab/sadm/languages', 'git_url': 'git://github.com/spycrab/sadm.git', 'name': 'sadm', 'watchers_count': 0, 'forks': 0, 'milestones_url': 'https://api.github.com/repos/spycrab/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/spycrab/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'watchers': 0, 'labels_url': 'https://api.github.com/repos/spycrab/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/spycrab/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/spycrab/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/spycrab/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/spycrab/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/spycrab/sadm/teams', 'tags_url': 'https://api.github.com/repos/spycrab/sadm/tags', 'stargazers_count': 0, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTkzNjE3MDQ=', 'clone_url': 'https://github.com/spycrab/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/spycrab/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/spycrab/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/spycrab/sadm', 'contributors_url': 'https://api.github.com/repos/spycrab/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/spycrab/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/spycrab/sadm/notifications{?since,all,participating}', 'fork': True, 'homepage': None, 'full_name': 'spycrab/sadm', 'open_issues_count': 0, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/spycrab/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/spycrab/sadm/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/spycrab/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/spycrab/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/spycrab/sadm', 'trees_url': 'https://api.github.com/repos/spycrab/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/spycrab/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/spycrab/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:18Z', 'archived': False, 'svn_url': 'https://github.com/spycrab/sadm', 'has_projects': True, 'subscription_url': 'https://api.github.com/repos/spycrab/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/spycrab/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/spycrab/sadm/issues{/number}', 'size': 421, 'open_issues': 0, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/spycrab/sadm/releases{/id}', 'ssh_url': 'git@github.com:spycrab/sadm.git', 'issue_events_url': 'https://api.github.com/repos/spycrab/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/spycrab/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/spycrab/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/spycrab/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/spycrab/sadm/{archive_format}{/ref}', 'updated_at': '2018-01-29T09:32:16Z', 'statuses_url': 'https://api.github.com/repos/spycrab/sadm/statuses/{sha}', 'created_at': '2018-01-29T09:32:14Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/spycrab/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/spycrab/sadm/git/refs{/sha}', 'id': 119361704}, 'sha': 'b8904388404346f64dd523d25e38dd66e02b41e4'}, '_links': {'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments'}}, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments', 'locked': False, 'closed_at': None, 'number': 104, 'issue_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104', 'patch_url': 'https://github.com/dolphin-emu/sadm/pull/104.patch', 'merged_at': None, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTI5MzYw', 'base': {'ref': 'master', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'label': 'dolphin-emu:master', 'repo': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'sha': '3d27ea021cf67847c33b7b8aac898df52f703f1c'}, 'state': 'open', 'labels': [], 'updated_at': '2019-01-20T23:08:01Z', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments', 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104', 'created_at': '2019-01-20T19:28:59Z', 'title': 'buildbot/master.cfg: Implement macOS Updater support', 'assignee': None, 'requested_teams': [], 'id': 246129360}, 'action': 'submitted', 'repository': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'review': {'state': 'commented', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'body': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'url': 'https://api.github.com/users/shuffle2', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'node_id': 'MDQ6VXNlcjExMzA2Mw==', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'html_url': 'https://github.com/shuffle2', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'login': 'shuffle2', 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'id': 113063}, 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104#pullrequestreview-194414324', 'submitted_at': '2019-01-20T23:08:01Z', '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104#pullrequestreview-194414324'}}, 'node_id': 'MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MTk0NDE0MzI0', 'commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'author_association': 'CONTRIBUTOR', 'id': 194414324}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'url': 'https://api.github.com/users/shuffle2', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'node_id': 'MDQ6VXNlcjExMzA2Mw==', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'html_url': 'https://github.com/shuffle2', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'login': 'shuffle2', 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'id': 113063}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}}}
2019-01-20T22:49:37.159329	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'pull_request_review_comment', 'raw': {'pull_request': {'diff_url': 'https://github.com/dolphin-emu/sadm/pull/104.diff', 'body': 'Update ``master.cfg`` to generate manifests for macOS.\r\n**Requires implementing --platform in make_manifest.py first**', 'assignees': [], 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'requested_reviewers': [], 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4', 'milestone': None, 'merge_commit_sha': '499a1fb5361af1d2b4ee0e264f7be1c6e6c6e4bb', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'author_association': 'CONTRIBUTOR', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits', 'head': {'ref': 'buildbot_macos_updater', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'label': 'spycrab:buildbot_macos_updater', 'repo': {'forks_count': 0, 'events_url': 'https://api.github.com/repos/spycrab/sadm/events', 'pulls_url': 'https://api.github.com/repos/spycrab/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/spycrab/sadm/languages', 'git_url': 'git://github.com/spycrab/sadm.git', 'name': 'sadm', 'watchers_count': 0, 'forks': 0, 'milestones_url': 'https://api.github.com/repos/spycrab/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/spycrab/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'watchers': 0, 'labels_url': 'https://api.github.com/repos/spycrab/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/spycrab/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/spycrab/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/spycrab/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/spycrab/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/spycrab/sadm/teams', 'tags_url': 'https://api.github.com/repos/spycrab/sadm/tags', 'stargazers_count': 0, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTkzNjE3MDQ=', 'clone_url': 'https://github.com/spycrab/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/spycrab/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/spycrab/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/spycrab/sadm', 'contributors_url': 'https://api.github.com/repos/spycrab/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/spycrab/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/spycrab/sadm/notifications{?since,all,participating}', 'fork': True, 'homepage': None, 'full_name': 'spycrab/sadm', 'open_issues_count': 0, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/spycrab/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/spycrab/sadm/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/spycrab/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/spycrab/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/spycrab/sadm', 'trees_url': 'https://api.github.com/repos/spycrab/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/spycrab/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/spycrab/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:18Z', 'archived': False, 'svn_url': 'https://github.com/spycrab/sadm', 'has_projects': True, 'subscription_url': 'https://api.github.com/repos/spycrab/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/spycrab/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/spycrab/sadm/issues{/number}', 'size': 421, 'open_issues': 0, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/spycrab/sadm/releases{/id}', 'ssh_url': 'git@github.com:spycrab/sadm.git', 'issue_events_url': 'https://api.github.com/repos/spycrab/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/spycrab/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/spycrab/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/spycrab/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/spycrab/sadm/{archive_format}{/ref}', 'updated_at': '2018-01-29T09:32:16Z', 'statuses_url': 'https://api.github.com/repos/spycrab/sadm/statuses/{sha}', 'created_at': '2018-01-29T09:32:14Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/spycrab/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/spycrab/sadm/git/refs{/sha}', 'id': 119361704}, 'sha': 'b8904388404346f64dd523d25e38dd66e02b41e4'}, '_links': {'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments'}}, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments', 'locked': False, 'closed_at': None, 'number': 104, 'issue_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104', 'patch_url': 'https://github.com/dolphin-emu/sadm/pull/104.patch', 'merged_at': None, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTI5MzYw', 'base': {'ref': 'master', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'label': 'dolphin-emu:master', 'repo': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'sha': '3d27ea021cf67847c33b7b8aac898df52f703f1c'}, 'state': 'open', 'labels': [], 'updated_at': '2019-01-20T22:49:35Z', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments', 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104', 'created_at': '2019-01-20T19:28:59Z', 'title': 'buildbot/master.cfg: Implement macOS Updater support', 'assignee': None, 'requested_teams': [], 'id': 246129360}, 'action': 'created', 'repository': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'pull_request_review_id': 194413521, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'position': 22, 'body': "I do think so. It's probably the cause for ``dolphin.app`` not being capitalized as ``Dolphin.app`` as it should.", 'path': 'buildbot/master.cfg', 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249299522', '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249299522'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249299522'}}, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI5OTUyMg==', 'commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'author_association': 'CONTRIBUTOR', 'diff_hunk': '@@ -340,10 +341,16 @@ def make_dolphin_osx_build(mode="normal"):\n                            descriptionDone="sign",\n                            haltOnFailure=True))\n \n+    f.addStep(ShellCommand(command="/build/codesign.sh --deep Binaries/Dolphin\\ Updater.app",\n+                           workdir="build/build",\n+                           description="signing updater",\n+                           descriptionDone="sign updater",\n+                           haltOnFailure=True))\n \n     f.addStep(ShellCommand(command=["hdiutil", "create", "dolphin.dmg",\n                                     "-format", "UDBZ",\n-                                    "-srcfolder", "Binaries/dolphin.app", "-ov",\n+                                    "-layout", "SPUD", # Needed for 7-Zip support\n+                                    "-srcfolder", "Binaries/Dolphin.app", "-ov",', 'updated_at': '2019-01-20T22:49:35Z', 'original_position': 22, 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249299522', 'created_at': '2019-01-20T22:49:35Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'in_reply_to_id': 249299457, 'id': 249299522, 'original_commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4'}}}
2019-01-20T22:49:37.155622	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'pull_request_review', 'raw': {'pull_request': {'diff_url': 'https://github.com/dolphin-emu/sadm/pull/104.diff', 'body': 'Update ``master.cfg`` to generate manifests for macOS.\r\n**Requires implementing --platform in make_manifest.py first**', 'assignees': [], 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'requested_reviewers': [], 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4', 'milestone': None, 'merge_commit_sha': '499a1fb5361af1d2b4ee0e264f7be1c6e6c6e4bb', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'author_association': 'CONTRIBUTOR', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits', 'head': {'ref': 'buildbot_macos_updater', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'label': 'spycrab:buildbot_macos_updater', 'repo': {'forks_count': 0, 'events_url': 'https://api.github.com/repos/spycrab/sadm/events', 'pulls_url': 'https://api.github.com/repos/spycrab/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/spycrab/sadm/languages', 'git_url': 'git://github.com/spycrab/sadm.git', 'name': 'sadm', 'watchers_count': 0, 'forks': 0, 'milestones_url': 'https://api.github.com/repos/spycrab/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/spycrab/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'watchers': 0, 'labels_url': 'https://api.github.com/repos/spycrab/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/spycrab/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/spycrab/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/spycrab/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/spycrab/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/spycrab/sadm/teams', 'tags_url': 'https://api.github.com/repos/spycrab/sadm/tags', 'stargazers_count': 0, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTkzNjE3MDQ=', 'clone_url': 'https://github.com/spycrab/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/spycrab/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/spycrab/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/spycrab/sadm', 'contributors_url': 'https://api.github.com/repos/spycrab/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/spycrab/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/spycrab/sadm/notifications{?since,all,participating}', 'fork': True, 'homepage': None, 'full_name': 'spycrab/sadm', 'open_issues_count': 0, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/spycrab/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/spycrab/sadm/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/spycrab/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/spycrab/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/spycrab/sadm', 'trees_url': 'https://api.github.com/repos/spycrab/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/spycrab/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/spycrab/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:18Z', 'archived': False, 'svn_url': 'https://github.com/spycrab/sadm', 'has_projects': True, 'subscription_url': 'https://api.github.com/repos/spycrab/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/spycrab/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/spycrab/sadm/issues{/number}', 'size': 421, 'open_issues': 0, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/spycrab/sadm/releases{/id}', 'ssh_url': 'git@github.com:spycrab/sadm.git', 'issue_events_url': 'https://api.github.com/repos/spycrab/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/spycrab/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/spycrab/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/spycrab/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/spycrab/sadm/{archive_format}{/ref}', 'updated_at': '2018-01-29T09:32:16Z', 'statuses_url': 'https://api.github.com/repos/spycrab/sadm/statuses/{sha}', 'created_at': '2018-01-29T09:32:14Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/spycrab/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/spycrab/sadm/git/refs{/sha}', 'id': 119361704}, 'sha': 'b8904388404346f64dd523d25e38dd66e02b41e4'}, '_links': {'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments'}}, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments', 'locked': False, 'closed_at': None, 'number': 104, 'issue_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104', 'patch_url': 'https://github.com/dolphin-emu/sadm/pull/104.patch', 'merged_at': None, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTI5MzYw', 'base': {'ref': 'master', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'label': 'dolphin-emu:master', 'repo': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'sha': '3d27ea021cf67847c33b7b8aac898df52f703f1c'}, 'state': 'open', 'labels': [], 'updated_at': '2019-01-20T22:49:35Z', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments', 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104', 'created_at': '2019-01-20T19:28:59Z', 'title': 'buildbot/master.cfg: Implement macOS Updater support', 'assignee': None, 'requested_teams': [], 'id': 246129360}, 'action': 'submitted', 'repository': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'review': {'state': 'commented', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'body': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104#pullrequestreview-194413521', 'submitted_at': '2019-01-20T22:49:35Z', '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104#pullrequestreview-194413521'}}, 'node_id': 'MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MTk0NDEzNTIx', 'commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'author_association': 'CONTRIBUTOR', 'id': 194413521}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}}}
2019-01-20T22:48:24.358182	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'pull_request_review_comment', 'raw': {'pull_request': {'diff_url': 'https://github.com/dolphin-emu/sadm/pull/104.diff', 'body': 'Update ``master.cfg`` to generate manifests for macOS.\r\n**Requires implementing --platform in make_manifest.py first**', 'assignees': [], 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'requested_reviewers': [], 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4', 'milestone': None, 'merge_commit_sha': '499a1fb5361af1d2b4ee0e264f7be1c6e6c6e4bb', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'author_association': 'CONTRIBUTOR', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits', 'head': {'ref': 'buildbot_macos_updater', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'label': 'spycrab:buildbot_macos_updater', 'repo': {'forks_count': 0, 'events_url': 'https://api.github.com/repos/spycrab/sadm/events', 'pulls_url': 'https://api.github.com/repos/spycrab/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/spycrab/sadm/languages', 'git_url': 'git://github.com/spycrab/sadm.git', 'name': 'sadm', 'watchers_count': 0, 'forks': 0, 'milestones_url': 'https://api.github.com/repos/spycrab/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/spycrab/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'watchers': 0, 'labels_url': 'https://api.github.com/repos/spycrab/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/spycrab/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/spycrab/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/spycrab/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/spycrab/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/spycrab/sadm/teams', 'tags_url': 'https://api.github.com/repos/spycrab/sadm/tags', 'stargazers_count': 0, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTkzNjE3MDQ=', 'clone_url': 'https://github.com/spycrab/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/spycrab/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/spycrab/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/spycrab/sadm', 'contributors_url': 'https://api.github.com/repos/spycrab/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/spycrab/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/spycrab/sadm/notifications{?since,all,participating}', 'fork': True, 'homepage': None, 'full_name': 'spycrab/sadm', 'open_issues_count': 0, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/spycrab/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/spycrab/sadm/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/spycrab/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/spycrab/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/spycrab/sadm', 'trees_url': 'https://api.github.com/repos/spycrab/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/spycrab/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/spycrab/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:18Z', 'archived': False, 'svn_url': 'https://github.com/spycrab/sadm', 'has_projects': True, 'subscription_url': 'https://api.github.com/repos/spycrab/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/spycrab/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/spycrab/sadm/issues{/number}', 'size': 421, 'open_issues': 0, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/spycrab/sadm/releases{/id}', 'ssh_url': 'git@github.com:spycrab/sadm.git', 'issue_events_url': 'https://api.github.com/repos/spycrab/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/spycrab/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/spycrab/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/spycrab/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/spycrab/sadm/{archive_format}{/ref}', 'updated_at': '2018-01-29T09:32:16Z', 'statuses_url': 'https://api.github.com/repos/spycrab/sadm/statuses/{sha}', 'created_at': '2018-01-29T09:32:14Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/spycrab/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/spycrab/sadm/git/refs{/sha}', 'id': 119361704}, 'sha': 'b8904388404346f64dd523d25e38dd66e02b41e4'}, '_links': {'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments'}}, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments', 'locked': False, 'closed_at': None, 'number': 104, 'issue_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104', 'patch_url': 'https://github.com/dolphin-emu/sadm/pull/104.patch', 'merged_at': None, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTI5MzYw', 'base': {'ref': 'master', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'label': 'dolphin-emu:master', 'repo': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'sha': '3d27ea021cf67847c33b7b8aac898df52f703f1c'}, 'state': 'open', 'labels': [], 'updated_at': '2019-01-20T22:48:22Z', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments', 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104', 'created_at': '2019-01-20T19:28:59Z', 'title': 'buildbot/master.cfg: Implement macOS Updater support', 'assignee': None, 'requested_teams': [], 'id': 246129360}, 'action': 'created', 'repository': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'url': 'https://api.github.com/users/shuffle2', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'node_id': 'MDQ6VXNlcjExMzA2Mw==', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'html_url': 'https://github.com/shuffle2', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'login': 'shuffle2', 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'id': 113063}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}, 'comment': {'pull_request_review_id': 194413453, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'position': 22, 'body': 'does case of "dolphin" matter here?', 'path': 'buildbot/master.cfg', 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249299457', '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249299457'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments/249299457'}}, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0OTI5OTQ1Nw==', 'commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'author_association': 'CONTRIBUTOR', 'diff_hunk': '@@ -340,10 +341,16 @@ def make_dolphin_osx_build(mode="normal"):\n                            descriptionDone="sign",\n                            haltOnFailure=True))\n \n+    f.addStep(ShellCommand(command="/build/codesign.sh --deep Binaries/Dolphin\\ Updater.app",\n+                           workdir="build/build",\n+                           description="signing updater",\n+                           descriptionDone="sign updater",\n+                           haltOnFailure=True))\n \n     f.addStep(ShellCommand(command=["hdiutil", "create", "dolphin.dmg",\n                                     "-format", "UDBZ",\n-                                    "-srcfolder", "Binaries/dolphin.app", "-ov",\n+                                    "-layout", "SPUD", # Needed for 7-Zip support\n+                                    "-srcfolder", "Binaries/Dolphin.app", "-ov",', 'updated_at': '2019-01-20T22:48:22Z', 'original_position': 22, 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104#discussion_r249299457', 'created_at': '2019-01-20T22:48:22Z', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'url': 'https://api.github.com/users/shuffle2', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'node_id': 'MDQ6VXNlcjExMzA2Mw==', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'html_url': 'https://github.com/shuffle2', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'login': 'shuffle2', 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'id': 113063}, 'id': 249299457, 'original_commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4'}}}
2019-01-20T22:48:24.354555	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'pull_request_review', 'raw': {'pull_request': {'diff_url': 'https://github.com/dolphin-emu/sadm/pull/104.diff', 'body': 'Update ``master.cfg`` to generate manifests for macOS.\r\n**Requires implementing --platform in make_manifest.py first**', 'assignees': [], 'url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'requested_reviewers': [], 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4', 'milestone': None, 'merge_commit_sha': '499a1fb5361af1d2b4ee0e264f7be1c6e6c6e4bb', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'author_association': 'CONTRIBUTOR', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits', 'head': {'ref': 'buildbot_macos_updater', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'label': 'spycrab:buildbot_macos_updater', 'repo': {'forks_count': 0, 'events_url': 'https://api.github.com/repos/spycrab/sadm/events', 'pulls_url': 'https://api.github.com/repos/spycrab/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/spycrab/sadm/languages', 'git_url': 'git://github.com/spycrab/sadm.git', 'name': 'sadm', 'watchers_count': 0, 'forks': 0, 'milestones_url': 'https://api.github.com/repos/spycrab/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/spycrab/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/spycrab/followers', 'url': 'https://api.github.com/users/spycrab', 'organizations_url': 'https://api.github.com/users/spycrab/orgs', 'node_id': 'MDQ6VXNlcjE0NDA3MTU=', 'events_url': 'https://api.github.com/users/spycrab/events{/privacy}', 'repos_url': 'https://api.github.com/users/spycrab/repos', 'gists_url': 'https://api.github.com/users/spycrab/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/spycrab/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/spycrab/following{/other_user}', 'html_url': 'https://github.com/spycrab', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1440715?v=4', 'login': 'spycrab', 'subscriptions_url': 'https://api.github.com/users/spycrab/subscriptions', 'starred_url': 'https://api.github.com/users/spycrab/starred{/owner}{/repo}', 'id': 1440715}, 'watchers': 0, 'labels_url': 'https://api.github.com/repos/spycrab/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/spycrab/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/spycrab/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/spycrab/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/spycrab/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/spycrab/sadm/teams', 'tags_url': 'https://api.github.com/repos/spycrab/sadm/tags', 'stargazers_count': 0, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTkzNjE3MDQ=', 'clone_url': 'https://github.com/spycrab/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/spycrab/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/spycrab/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/spycrab/sadm', 'contributors_url': 'https://api.github.com/repos/spycrab/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/spycrab/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/spycrab/sadm/notifications{?since,all,participating}', 'fork': True, 'homepage': None, 'full_name': 'spycrab/sadm', 'open_issues_count': 0, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/spycrab/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/spycrab/sadm/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/spycrab/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/spycrab/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/spycrab/sadm', 'trees_url': 'https://api.github.com/repos/spycrab/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/spycrab/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/spycrab/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:18Z', 'archived': False, 'svn_url': 'https://github.com/spycrab/sadm', 'has_projects': True, 'subscription_url': 'https://api.github.com/repos/spycrab/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/spycrab/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/spycrab/sadm/issues{/number}', 'size': 421, 'open_issues': 0, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/spycrab/sadm/releases{/id}', 'ssh_url': 'git@github.com:spycrab/sadm.git', 'issue_events_url': 'https://api.github.com/repos/spycrab/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/spycrab/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/spycrab/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/spycrab/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/spycrab/sadm/{archive_format}{/ref}', 'updated_at': '2018-01-29T09:32:16Z', 'statuses_url': 'https://api.github.com/repos/spycrab/sadm/statuses/{sha}', 'created_at': '2018-01-29T09:32:14Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/spycrab/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/spycrab/sadm/git/refs{/sha}', 'id': 119361704}, 'sha': 'b8904388404346f64dd523d25e38dd66e02b41e4'}, '_links': {'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/b8904388404346f64dd523d25e38dd66e02b41e4'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/commits'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments'}}, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104/comments', 'locked': False, 'closed_at': None, 'number': 104, 'issue_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/104', 'patch_url': 'https://github.com/dolphin-emu/sadm/pull/104.patch', 'merged_at': None, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjQ2MTI5MzYw', 'base': {'ref': 'master', 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'label': 'dolphin-emu:master', 'repo': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'sha': '3d27ea021cf67847c33b7b8aac898df52f703f1c'}, 'state': 'open', 'labels': [], 'updated_at': '2019-01-20T22:48:22Z', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/comments{/number}', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104/comments', 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104', 'created_at': '2019-01-20T19:28:59Z', 'title': 'buildbot/master.cfg: Implement macOS Updater support', 'assignee': None, 'requested_teams': [], 'id': 246129360}, 'action': 'submitted', 'repository': {'forks_count': 30, 'events_url': 'https://api.github.com/repos/dolphin-emu/sadm/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/sadm/languages', 'git_url': 'git://github.com/dolphin-emu/sadm.git', 'name': 'sadm', 'watchers_count': 17, 'forks': 30, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/sadm/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/sadm/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 17, 'labels_url': 'https://api.github.com/repos/dolphin-emu/sadm/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/sadm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/sadm/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/sadm/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/tags', 'stargazers_count': 17, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTUzODE0Mg==', 'clone_url': 'https://github.com/dolphin-emu/sadm.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/sadm/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/sadm/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/sadm', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/sadm/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/sadm/notifications{?since,all,participating}', 'fork': False, 'homepage': None, 'full_name': 'dolphin-emu/sadm', 'open_issues_count': 13, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/sadm/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/sadm/merges', 'has_issues': True, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/sadm', 'trees_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/sadm/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/sadm/assignees{/user}', 'pushed_at': '2019-01-20T20:15:19Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/sadm', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/sadm/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/sadm/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues{/number}', 'size': 420, 'open_issues': 13, 'license': None, 'description': 'Scripts and configurations for the Dolphin Emulator infrastructure', 'releases_url': 'https://api.github.com/repos/dolphin-emu/sadm/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/sadm.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/sadm/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/sadm/commits{/sha}', 'language': 'Python', 'forks_url': 'https://api.github.com/repos/dolphin-emu/sadm/forks', 'default_branch': 'master', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/sadm/stargazers', 'archive_url': 'https://api.github.com/repos/dolphin-emu/sadm/{archive_format}{/ref}', 'updated_at': '2019-01-14T04:33:41Z', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/sadm/statuses/{sha}', 'created_at': '2013-07-19T22:07:05Z', 'private': False, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/sadm/hooks', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/sadm/git/refs{/sha}', 'id': 11538142}, 'review': {'state': 'commented', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104', 'body': None, 'user': {'site_admin': False, 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'url': 'https://api.github.com/users/shuffle2', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'node_id': 'MDQ6VXNlcjExMzA2Mw==', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'html_url': 'https://github.com/shuffle2', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'login': 'shuffle2', 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'id': 113063}, 'html_url': 'https://github.com/dolphin-emu/sadm/pull/104#pullrequestreview-194413453', 'submitted_at': '2019-01-20T22:48:22Z', '_links': {'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/sadm/pulls/104'}, 'html': {'href': 'https://github.com/dolphin-emu/sadm/pull/104#pullrequestreview-194413453'}}, 'node_id': 'MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MTk0NDEzNDUz', 'commit_id': 'b8904388404346f64dd523d25e38dd66e02b41e4', 'author_association': 'CONTRIBUTOR', 'id': 194413453}, 'sender': {'site_admin': False, 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'url': 'https://api.github.com/users/shuffle2', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'node_id': 'MDQ6VXNlcjExMzA2Mw==', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'type': 'User', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'html_url': 'https://github.com/shuffle2', 'gravatar_id': '', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'login': 'shuffle2', 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'id': 113063}, 'organization': {'url': 'https://api.github.com/orgs/dolphin-emu', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'login': 'dolphin-emu', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'description': '', 'id': 5050316}}}
2019-01-20T21:11:26.161223	{'source': 'webserver', 'type': 'raw_gh_hook', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'repository': {'forks_count': 1174, 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'name': 'dolphin', 'watchers_count': 4972, 'forks': 1174, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'owner': {'site_admin': False, 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'url': 'https://api.github.com/users/dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'html_url': 'https://github.com/dolphin-emu', 'gravatar_id': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'login': 'dolphin-emu', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'id': 5050316}, 'watchers': 4972, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'stargazers_count': 4972, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'mirror_url': None, 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'has_pages': False, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'has_downloads': True, 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'fork': False, 'homepage': 'https://dolphin-emu.org/', 'full_name': 'dolphin-emu/dolphin', 'open_issues_count': 141, 'has_wiki': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'has_issues': False, 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'pushed_at': '2019-01-20T21:01:55Z', 'archived': False, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'has_projects': False, 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'size': 373123, 'open_issues': 141, 'license': {'node_id': 'MDc6TGljZW5zZTg=', 'key': 'gpl-2.0', 'name': 'GNU General Public License v2.0', 'spdx_id': 'GPL-2.0', 'url': 'https://api.github.com/licenses/gpl-2.0'}, 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'language': 'C++', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'default_branch': 'master', 'stargazers_url': 'https://