diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index c9e39c4ae1..6e23df5b2c 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -1333,6 +1333,13 @@ def do_regenerate_api_key(user_profile, log=True): log_event({'type': 'user_change_api_key', 'user': user_profile.email}) + if user_profile.is_bot: + send_event(dict(type='realm_bot', + op='update', + bot=dict(email=user_profile.email, + api_key=user_profile.api_key,)), + bot_owner_userids(user_profile)) + def _default_stream_permision_check(user_profile, stream): # Any user can have a None default stream if stream is not None: diff --git a/zerver/test_events.py b/zerver/test_events.py index 541310bde2..48e78c8400 100644 --- a/zerver/test_events.py +++ b/zerver/test_events.py @@ -24,6 +24,7 @@ from zerver.lib.actions import ( do_set_realm_name, do_update_pointer, do_create_user, + do_regenerate_api_key, fetch_initial_state_data, ) @@ -289,6 +290,12 @@ class EventsRegisterTest(AuthedTestCase): error = self.build_update_checker('full_name', check_string)('events[1]', events[1]) self.assert_on_error(error) + def test_regenerate_bot_api_key(self): + action = lambda: do_regenerate_api_key(self.bot) + events = self.do_test(action) + error = self.build_update_checker('api_key', check_string)('events[0]', events[0]) + self.assert_on_error(error) + def test_rename_stream(self): realm = get_realm('zulip.com') stream, _ = create_stream_if_needed(realm, 'old_name')