{"push_id":809471066,"size":5,"distinct_size":5,"ref":"refs/heads/master","head":"271a9b1bb86f74522ee3437613c427544111383a","before":"16b13b373d15d7fcb7606aeebbc6176d2a6f61cc","commits":[{"sha":"89b8be4a690c321406dd70ef3eefe61cc5d70616","author":{"email":"c94456d225d310aaa19aa25931277a6463aad602@hornwitser.no","name":"Hornwitser"},"message":"Make dispatch multithreading safe\n\nGuard the execution of dispatch with a recursive thread lock.  This is\nneeded to make a thread safe way to send events to Client objects.  Note\nthat the only thread safe method is dispatch, everything else is unsafe\nto call from another thread, as the thead handling the Client object\ncould be modifying arbitrary structures at any time.  In addition this\nonly keeps nasal demons away, and does not solve any of the difficult\nsyncronization issues that might be present.","distinct":true,"url":"https://api.github.com/repos/Hornwitser/discord.py/commits/89b8be4a690c321406dd70ef3eefe61cc5d70616"},{"sha":"20121aa242b634cc4a576bf73dbe97830d837b12","author":{"email":"c94456d225d310aaa19aa25931277a6463aad602@hornwitser.no","name":"Hornwitser"},"message":"Reconnect when WebSocket dies\n\nCheck if the WebSocket connection was supposed to terminate and\nreconnect to the gateway if this is not the case.","distinct":true,"url":"https://api.github.com/repos/Hornwitser/discord.py/commits/20121aa242b634cc4a576bf73dbe97830d837b12"},{"sha":"dfd50716ac2f32e94aaba7c8282723ae6cf9e7c3","author":{"email":"c94456d225d310aaa19aa25931277a6463aad602@hornwitser.no","name":"Hornwitser"},"message":"Add client register API\n\nWhen clicking on an invite link without having a Discord account it's\npossible to create an unclaimed account for joining the conversation\nquickly.  Add register() method to Client that performs and invite based\nregistration of an unclaimed account.","distinct":true,"url":"https://api.github.com/repos/Hornwitser/discord.py/commits/dfd50716ac2f32e94aaba7c8282723ae6cf9e7c3"},{"sha":"19935d7677a27b32bec65ae922c5f89b6ab8ac65","author":{"email":"c94456d225d310aaa19aa25931277a6463aad602@hornwitser.no","name":"Hornwitser"},"message":"Change behaviour of on_error\n\nChange how the old style on_error event is called to match the new style\non_error event.  Both are now called in case an exception is raised in\nan user defined event handler, and will by default print the arguments\nof the event tha raised the exception and the traceback for the\nexception.  In addition, overridding the on_error handler supresses this\nbehaviour.","distinct":true,"url":"https://api.github.com/repos/Hornwitser/discord.py/commits/19935d7677a27b32bec65ae922c5f89b6ab8ac65"},{"sha":"271a9b1bb86f74522ee3437613c427544111383a","author":{"email":"c94456d225d310aaa19aa25931277a6463aad602@hornwitser.no","name":"Hornwitser"},"message":"Make event based handlers first class\n\nChange Client.event decorator to assign the event handler function to\nthe instance it self and levarage dispatch to handle calling these\nevent.  Remove old _invoke_event method.","distinct":true,"url":"https://api.github.com/repos/Hornwitser/discord.py/commits/271a9b1bb86f74522ee3437613c427544111383a"}]}