{"push_id":1015634914,"size":12,"distinct_size":7,"ref":"refs/heads/acls","head":"431cef6be4da2e62aa676656ed4a9596ca7d769d","before":"5d54602bec96bd3e4da2a6d4ebf7a7bcea457b7f","commits":[{"sha":"70f4a804d6c4be75b4202533e7a61a9bf11bad26","author":{"email":"75ef9faee755c70589550b513ad881e5a603182c@groenen.me","name":"Nick Groenen"},"message":"Mark commands_tests as flaky\n\nThis will retry any failed test in tests/commands_tests.py once before\ngiving up and marking it as having failed. This should drastically cut\ndown on the number of falsely failed tests.\n\nSee #603","distinct":false,"url":"https://api.github.com/repos/zoni/errbot/commits/70f4a804d6c4be75b4202533e7a61a9bf11bad26"},{"sha":"af8f76399b22c7f3ea1fb65c5d3f410bc0ef18a3","author":{"email":"75ef9faee755c70589550b513ad881e5a603182c@groenen.me","name":"Nick Groenen"},"message":"Rework shutdown and restart logic\n\n* This fixes #647, because with `--daemonize` the bot couldn't find its\n  `config.py` on restart.\n* This fixes shutdown, which was keeping the bot hanging but with storage\n  and plugins shut down. It also greatly simplifies the shutdown logic.\n* It provides a `--kill` flag to instantly kill the bot with a SIGKILL.\n* It renames `killbot` to `shutdown` to more accurately reflect what it\n  does and be consistent with the `!restart` naming.","distinct":false,"url":"https://api.github.com/repos/zoni/errbot/commits/af8f76399b22c7f3ea1fb65c5d3f410bc0ef18a3"},{"sha":"3a7768625749f94b54b1fa28424a2b679c75e0f3","author":{"email":"f7c78a756feb9a6617f97533b297a45c493eb008@gootz.net","name":"Guillaume Binet"},"message":"Merge pull request #649 from errbotio/shutdown_restart\n\nRework shutdown and restart logic","distinct":false,"url":"https://api.github.com/repos/zoni/errbot/commits/3a7768625749f94b54b1fa28424a2b679c75e0f3"},{"sha":"333c1992b3322dccb0aba137c358a329a958068d","author":{"email":"f7c78a756feb9a6617f97533b297a45c493eb008@google.com","name":"Guillaume Binet"},"message":"Pass on new and noteworthy.","distinct":true,"url":"https://api.github.com/repos/zoni/errbot/commits/333c1992b3322dccb0aba137c358a329a958068d"},{"sha":"d2d4307afb88a086cc6a2d9ce6eeac0d4cdd178c","author":{"email":"f7c78a756feb9a6617f97533b297a45c493eb008@gootz.net","name":"Guillaume Binet"},"message":"Merge pull request #645 from errbotio/flaky\n\nMark commands_tests as flaky","distinct":false,"url":"https://api.github.com/repos/zoni/errbot/commits/d2d4307afb88a086cc6a2d9ce6eeac0d4cdd178c"},{"sha":"e75b5e89c0b89253e86ea95cf43003b67edfdf7e","author":{"email":"75ef9faee755c70589550b513ad881e5a603182c@byte.nl","name":"Nick Groenen"},"message":"Close storage of BotRepoManager on shutdown\n\nThis was a tricky one. I could reproduce this on one machine but not\nanother. A curious difference between the two was that they were using\ndifferent dbm implementations.\n\nOn the problematic one:\n    data/repomgr.db.db: Berkeley DB (Hash, version9, native byte-order)\n\nOn the one that wouldn't reproduce the issue:\n   data/repomgr.db: GNU dbm 1.x or ndbm database, little endian, old\n\nNote also the Berkeley DB implementation adds an extra `.db` to the\nfilename which the GNU dbm implementation does not.\n\nIt appears the Berkeley version needs a clean `.close()` or it won't\npersist updated values, GNU dbm updates them immediately.\n\nFixes #650","distinct":false,"url":"https://api.github.com/repos/zoni/errbot/commits/e75b5e89c0b89253e86ea95cf43003b67edfdf7e"},{"sha":"2a4a7be49a684899cd199493da0b8cd9cdb27383","author":{"email":"f7c78a756feb9a6617f97533b297a45c493eb008@google.com","name":"Guillaume Binet"},"message":"Merge branch 'master' of github.com:errbotio/errbot","distinct":true,"url":"https://api.github.com/repos/zoni/errbot/commits/2a4a7be49a684899cd199493da0b8cd9cdb27383"},{"sha":"a39e8444ba6e647cdb450777277d99b33a87fa31","author":{"email":"f7c78a756feb9a6617f97533b297a45c493eb008@google.com","name":"Guillaume Binet"},"message":"recurse into installed git repo\n\nThis put every type of entry (builtins, extra_plugin_dirs and plugins)\non the same footing:\n\nroot is added to sys.path (so users can make common tools shared by\nplugins).\n\nthen recursively search of plugin from this root with a relative import\nof the main plugin module.\n\nfixes #646","distinct":true,"url":"https://api.github.com/repos/zoni/errbot/commits/a39e8444ba6e647cdb450777277d99b33a87fa31"},{"sha":"bcc5bc49ae7ebe7ed4e892a0f3f4838045981b4b","author":{"email":"75ef9faee755c70589550b513ad881e5a603182c@groenen.me","name":"Nick Groenen"},"message":"Port Telegram backend to new Identifier classes\n\nFixes #635","distinct":true,"url":"https://api.github.com/repos/zoni/errbot/commits/bcc5bc49ae7ebe7ed4e892a0f3f4838045981b4b"},{"sha":"65e849dbac28795207a389471583aeea6d2c38e2","author":{"email":"75ef9faee755c70589550b513ad881e5a603182c@groenen.me","name":"Nick Groenen"},"message":"Fix TypeError in chatroom plugin\n\nThis fixes:\n\n22:29:35 ERROR    errbot.plugins.ChatRoom   crashed in callback_message unhashable type: 'TelegramRoom'\nTraceback (most recent call last):\n  File \"/home/zoni/Workspace/Projects/err/errbot/core_plugins/chatRoom.py\", line 245, in callback_message\n    if chat_room in self.bot_config.REVERSE_CHATROOM_RELAY:\nTypeError: unhashable type: 'TelegramRoom'\n\n(Note: Not Telegram related, happens with other backends too, for\nexample  `TypeError: unhashable type: 'SlackRoom'`)","distinct":true,"url":"https://api.github.com/repos/zoni/errbot/commits/65e849dbac28795207a389471583aeea6d2c38e2"},{"sha":"2000f138dc927a718d6bc86c06573760875ff2d0","author":{"email":"75ef9faee755c70589550b513ad881e5a603182c@groenen.me","name":"Nick Groenen"},"message":"Merge ACCESS_CONTROLS_DEFAULT into ACCESS_CONTROLS rules\n\nThis ensures that all the settings defined in ACCESS_CONTROLS_DEFAULT\nare applied to each command listed in ACCESS_CONTROLS. If a certain\ncommand should to override the default set in ACCESS_CONTROLS_DEFAULT,\nit must be explicitly set up.\n\nThis is more natural and more intuitive, removing the need to specify\nthe default for every single command where you define other rules.","distinct":true,"url":"https://api.github.com/repos/zoni/errbot/commits/2000f138dc927a718d6bc86c06573760875ff2d0"},{"sha":"431cef6be4da2e62aa676656ed4a9596ca7d769d","author":{"email":"75ef9faee755c70589550b513ad881e5a603182c@groenen.me","name":"Nick Groenen"},"message":"Allow ACLs on entire plugins and wildcard commands\n\nThis modifies ACLs in two ways.\n\n1. Wildcards are now supported, so `status*` will match `!status` as\nwell as `!status_plugins`, etc.\n\n2. ACLs can include the plugin name by placing it in front of the\ncommand, separated by a colon (`:`). For example, `Health:status` will\nmatch the `!status` command of the `Health` plugin and `Health:*` will\nmatch all commands defined by the `Health` plugin.","distinct":true,"url":"https://api.github.com/repos/zoni/errbot/commits/431cef6be4da2e62aa676656ed4a9596ca7d769d"}]}