{"push_id":3511314796,"size":23,"distinct_size":4,"ref":"refs/heads/master","head":"c13257d2af461ba41c8ae62bcee626bb1d69559c","before":"ffdf8e3e86a4524d85e385584ba65942b87c70a7","commits":[{"sha":"844321f21f7ab7dabd5ee3fb06fdc55ed9a66790","author":{"name":"mal","email":"1185b728e990c591ed8ba65255f1e3e694ae2de3@sec.gd"},"message":"plugins: Use sopel.formatting for bold and color","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/844321f21f7ab7dabd5ee3fb06fdc55ed9a66790"},{"sha":"b1a3c94bc336218c881d6c55ca1b02fee234fb7e","author":{"name":"kwaaak","email":"f1fc19e1eb03ce5d586600f38f4da46bc2596e52@users.noreply.github.com"},"message":"admin: Catch set commands without arguments\n\nBefore:\n<Owner> .set\n<Sopel> AttributeError: 'NoneType' object has no attribute 'split'\n\nAfter:\n<Owner> .set\n<Sopel> Owner: Usage: .set section.option value","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/b1a3c94bc336218c881d6c55ca1b02fee234fb7e"},{"sha":"6f72a1a258dd48d39c9c6822942325320948067c","author":{"name":"Humorous Baby","email":"8d30b3de65d63ae6263157905426bebd82d6701a@humorbaby.net"},"message":"fix: regression in testing individual modules\n\nUsing `sopel.tools.target...` in `sopel/test_tools.py` an error because\n`sopel.tools` does not seem to be aware of `target`. I expect this is\nbecause `target.py` requires a class from `sopel.tools` and this would\nleads to circular imports. Need to `import sopel.tools.target`\nseparately to avoid this.\n\n`pytest` tests work fine because it knows of `sopel.tools.target` by\nthat name already from traversing the `rootdir`.","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/6f72a1a258dd48d39c9c6822942325320948067c"},{"sha":"31e0c587a10368579dee340143c161a161b850dd","author":{"name":"Humorous Baby","email":"8d30b3de65d63ae6263157905426bebd82d6701a@humorbaby.net"},"message":"fix: `AttributeError` in ipython module test\n\nSee https://github.com/sopel-irc/sopel/pull/1529#issuecomment-478259388","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/31e0c587a10368579dee340143c161a161b850dd"},{"sha":"90f1109b1a2b91962007e8990cd87e48ab05d123","author":{"name":"dgw","email":"9369c95995a47278f696929c21fc7fc719a66a8b@technobabbl.es"},"message":"Merge pull request #1529 from HumorBaby/fix-test-regression-individual-modules\n\nfix: regression in testing individual modules","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/90f1109b1a2b91962007e8990cd87e48ab05d123"},{"sha":"3e6a19828bcd6249fb827e19b9611f9c5ecb9ecb","author":{"name":"Humorous Baby","email":"8d30b3de65d63ae6263157905426bebd82d6701a@humorbaby.net"},"message":"fix: interrupt during connection phase\n\nAdds a check to the `bot.quit` method to ensure that a socket exists\nbefore writing the `QUIT` message. This prevents the unhandled\n`AttributeError` that prevents a clean quit when the connection phase is\ninterrupted","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/3e6a19828bcd6249fb827e19b9611f9c5ecb9ecb"},{"sha":"9dd772d91fd40f2e12c7dba57c45c01be58d66e3","author":{"name":"Humorous Baby","email":"8d30b3de65d63ae6263157905426bebd82d6701a@humorbaby.net"},"message":"fix: interrupt during disconnected phase\n\nBecause the `time.sleep` during the disconnect phase, the signal\nhandling is thrown off and a new bot is spawned before the `bot.hasquit`\nflag can be checked. Add a check at the top of the loop to see if the\n`hasquit` flag was set during a disconnect.\n\nFixes #1478","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/9dd772d91fd40f2e12c7dba57c45c01be58d66e3"},{"sha":"9e0f2871cfdf735ccbe6711f4f3505b166cdea3a","author":{"name":"Jurgen Brunink","email":"8a637a04ffa82fa8eac43fddf49c5c85c8ccd257@jbserver.eu"},"message":"fix _store() so it accepts any named arguments","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/9e0f2871cfdf735ccbe6711f4f3505b166cdea3a"},{"sha":"31343ec850501174968a8309c5cd98a5c0910221","author":{"name":"dgw","email":"9369c95995a47278f696929c21fc7fc719a66a8b@technobabbl.es"},"message":"Merge pull request #1520 from kwaaak/patch-1\n\nadmin: Catch set commands without arguments","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/31343ec850501174968a8309c5cd98a5c0910221"},{"sha":"8aad940d5c34df22b67f2b38657ae33946521d93","author":{"name":"dgw","email":"9369c95995a47278f696929c21fc7fc719a66a8b@technobabbl.es"},"message":"Merge pull request #1538 from jbrunink/master\n\nfix _store() so it accepts any named arguments","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/8aad940d5c34df22b67f2b38657ae33946521d93"},{"sha":"55a48b7ef73bfdb57deb8c7eb39dd97196740acf","author":{"name":"dgw","email":"9369c95995a47278f696929c21fc7fc719a66a8b@technobabbl.es"},"message":"coretasks: fix malformed MODE command in startup()\n\nbot.write() joins the elements of a sequence type (tuple, here) with a\nspace already, so including a space in `'MODE '` caused Sopel to send\n`MODE  SopelsNick +modes`. Technically, that's invalid.\n\nDiscovered while trying to test #1470 on a network with actual support\nfor `echo-message`, when darwin.network disconnected the bot during\nregistration with the message \"ERROR :Received malformed line\". Annoying\nbecause I was trying to test something else, but useful in the end.","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/55a48b7ef73bfdb57deb8c7eb39dd97196740acf"},{"sha":"20f2ca9d5fefd1514e0fe166ef8818a6d9f9a2a3","author":{"name":"dgw","email":"9369c95995a47278f696929c21fc7fc719a66a8b@technobabbl.es"},"message":"Merge pull request #1544 from sopel-irc/coretasks-malformed-mode\n\ncoretasks: fix malformed MODE command in startup()","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/20f2ca9d5fefd1514e0fe166ef8818a6d9f9a2a3"},{"sha":"a8579a58c418a96839d486149768a601ef5ded39","author":{"name":"dgw","email":"9369c95995a47278f696929c21fc7fc719a66a8b@technobabbl.es"},"message":"Merge pull request #1534 from HumorBaby/1478-fix-broken-interrupt-handling-6.6.x\n\ncore: fix broken interrupt handling (6.6.x)","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/a8579a58c418a96839d486149768a601ef5ded39"},{"sha":"e0c074a725aa52f0b71a770b5b0342bc9d613759","author":{"name":"dgw","email":"9369c95995a47278f696929c21fc7fc719a66a8b@technobabbl.es"},"message":"admin: .mode compliance with IRC specs\n\nJust like #1544, but in the `admin.py` module instead of coretasks.\n\nThis was the only relevant occurrence I could find with a search for\nstrings with trailing spaces. Hopefully after this, we're golden.","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/e0c074a725aa52f0b71a770b5b0342bc9d613759"},{"sha":"62601ff7ab4117ffd803cab710fe91af01ce224a","author":{"name":"dgw","email":"9369c95995a47278f696929c21fc7fc719a66a8b@technobabbl.es"},"message":"Merge pull request #1516 from half-duplex/use-library-colors\n\nReplace manual color codes with sopel.formatting","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/62601ff7ab4117ffd803cab710fe91af01ce224a"},{"sha":"9b002b88dff39ba4c51d4ac86dd10d4e0a1985f6","author":{"name":"dgw","email":"9369c95995a47278f696929c21fc7fc719a66a8b@technobabbl.es"},"message":"Merge pull request #1549 from sopel-irc/admin-mode-rfc-compliance\n\nadmin: .mode compliance with IRC specs","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/9b002b88dff39ba4c51d4ac86dd10d4e0a1985f6"},{"sha":"4ca383768065333d16134c8bad6d9a0bf16670aa","author":{"name":"Humorous Baby","email":"8d30b3de65d63ae6263157905426bebd82d6701a@humorbaby.net"},"message":"core: limit maximum flood penalty","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/4ca383768065333d16134c8bad6d9a0bf16670aa"},{"sha":"6ec3a833056e69405962e17a3a0873124efcc677","author":{"name":"dgw","email":"9369c95995a47278f696929c21fc7fc719a66a8b@technobabbl.es"},"message":"Merge pull request #1552 from HumorBaby/1550-fix-lengthy-penalty\n\ncore: limit maximum flood penalty","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/6ec3a833056e69405962e17a3a0873124efcc677"},{"sha":"75541f3fdcbbd4827b9945bf1606eadfb35d006b","author":{"name":"Humorous Baby","email":"8d30b3de65d63ae6263157905426bebd82d6701a@humorbaby.net"},"message":"fix: interrupt during connection phase (before connection accepted)\n\nBefore the connection is accepted (and the socket exists), `^C` will\nstart closing nicely, until `irc.Bot.handle_close`. `handle_close()`\ntries to close the socket, even if it may not exist, which leads to a\nmessy exit.\n\nAll that is needed is a quick check to ensure a socket exists before\ntrying to close it.","distinct":false,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/75541f3fdcbbd4827b9945bf1606eadfb35d006b"},{"sha":"ebf2dcaa6f182735f59a1fd0865eb74b6191abda","author":{"name":"dgw","email":"9369c95995a47278f696929c21fc7fc719a66a8b@technobabbl.es"},"message":"Merge pull request #1558 from HumorBaby/fix-interrupt-before-conn-accepted-6.6.x\n\ncore: fix interrupt during connection phase (before connection accepted)","distinct":true,"url":"https://api.github.com/repos/HumorBaby/sopel/commits/ebf2dcaa6f182735f59a1fd0865eb74b6191abda"}]}
{"actor":{"display_login":"HumorBaby"}}