)]}'
{"keystone/conf/totp.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1584a7983c9e74e2160438f3f17d4dd14d980b70","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2018 Catalyst Cloud Ltd"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_d511515f","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2019-08-09 17:28:42.000000000","message":"May want to update","commit_id":"807c7c9dc7d93cbc8189548e7c8630b6e10ebfa4"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"659202a7262fba2ecdb7c2115f8a55ed9f7cf9bb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2018 Catalyst Cloud Ltd"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_fd8a2b62","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"in_reply_to":"7faddb67_d511515f","updated":"2019-08-14 01:17:21.000000000","message":"ugh, honestly I\u0027ll just drop the whole line. This was unthinking copy and paste.","commit_id":"807c7c9dc7d93cbc8189548e7c8630b6e10ebfa4"}],"keystone/tests/unit/test_v3_auth.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"ced4bca51c93fdbe1e8d07c239cb411ba196f56c","unresolved":false,"context_lines":[{"line_number":5398,"context_line":"        past \u003d datetime.datetime.utcnow() - datetime.timedelta(minutes\u003d2)"},{"line_number":5399,"context_line":"        with freezegun.freeze_time(past):"},{"line_number":5400,"context_line":"            auth_data \u003d self._make_auth_data_by_id("},{"line_number":5401,"context_line":"                totp._generate_totp_passcodes(secret)[0])"},{"line_number":5402,"context_line":""},{"line_number":5403,"context_line":"        # Stop the clock otherwise there is a chance of auth failure due to"},{"line_number":5404,"context_line":"        # getting a different TOTP between the call here and the call in the"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_0ec37d8c","line":5401,"range":{"start_line":5401,"start_character":53,"end_line":5401,"end_character":56},"updated":"2019-08-08 06:19:55.000000000","message":"shouldn\u0027t this be 1, or 2 to be a more accurate test?","commit_id":"470aa89a5724e691fc45a10b3b434f735172d167"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"3fbea57079ea1d9cf5ee2eb9903729fe40ecc696","unresolved":false,"context_lines":[{"line_number":5398,"context_line":"        past \u003d datetime.datetime.utcnow() - datetime.timedelta(minutes\u003d2)"},{"line_number":5399,"context_line":"        with freezegun.freeze_time(past):"},{"line_number":5400,"context_line":"            auth_data \u003d self._make_auth_data_by_id("},{"line_number":5401,"context_line":"                totp._generate_totp_passcodes(secret)[0])"},{"line_number":5402,"context_line":""},{"line_number":5403,"context_line":"        # Stop the clock otherwise there is a chance of auth failure due to"},{"line_number":5404,"context_line":"        # getting a different TOTP between the call here and the call in the"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_e5b949ec","line":5401,"range":{"start_line":5401,"start_character":53,"end_line":5401,"end_character":56},"in_reply_to":"7faddb67_0ec37d8c","updated":"2019-08-09 03:37:11.000000000","message":"This is a \u0027client\u0027 generating a code. And because of freezegun it is code in the past. By default that function only generates one code, we\u0027re just extracting it since it now returns a list.\n\nThe number of windows back is controlled by the config fixture above.","commit_id":"470aa89a5724e691fc45a10b3b434f735172d167"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1584a7983c9e74e2160438f3f17d4dd14d980b70","unresolved":false,"context_lines":[{"line_number":5364,"context_line":"            auth_data \u003d self._make_auth_data_by_id("},{"line_number":5365,"context_line":"                totp._generate_totp_passcodes(secret)[0])"},{"line_number":5366,"context_line":""},{"line_number":5367,"context_line":"        # Stop the clock otherwise there is a chance of auth failure due to"},{"line_number":5368,"context_line":"        # getting a different TOTP between the call here and the call in the"},{"line_number":5369,"context_line":"        # auth plugin."},{"line_number":5370,"context_line":"        self.useFixture(fixture.TimeFixture())"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_583358f7","line":5367,"range":{"start_line":5367,"start_character":10,"end_line":5367,"end_character":68},"updated":"2019-08-09 17:28:42.000000000","message":"Looks like auth failure is what we\u0027re aiming for here","commit_id":"807c7c9dc7d93cbc8189548e7c8630b6e10ebfa4"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"659202a7262fba2ecdb7c2115f8a55ed9f7cf9bb","unresolved":false,"context_lines":[{"line_number":5364,"context_line":"            auth_data \u003d self._make_auth_data_by_id("},{"line_number":5365,"context_line":"                totp._generate_totp_passcodes(secret)[0])"},{"line_number":5366,"context_line":""},{"line_number":5367,"context_line":"        # Stop the clock otherwise there is a chance of auth failure due to"},{"line_number":5368,"context_line":"        # getting a different TOTP between the call here and the call in the"},{"line_number":5369,"context_line":"        # auth plugin."},{"line_number":5370,"context_line":"        self.useFixture(fixture.TimeFixture())"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_9de77747","line":5367,"range":{"start_line":5367,"start_character":10,"end_line":5367,"end_character":68},"in_reply_to":"7faddb67_583358f7","updated":"2019-08-14 01:17:21.000000000","message":"will change it to chance of \u0027accidental success\u0027","commit_id":"807c7c9dc7d93cbc8189548e7c8630b6e10ebfa4"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1584a7983c9e74e2160438f3f17d4dd14d980b70","unresolved":false,"context_lines":[{"line_number":5404,"context_line":"        # getting a different TOTP between the call here and the call in the"},{"line_number":5405,"context_line":"        # auth plugin."},{"line_number":5406,"context_line":"        self.useFixture(fixture.TimeFixture())"},{"line_number":5407,"context_line":""},{"line_number":5408,"context_line":"        self.v3_create_token(auth_data, expected_status\u003dhttp_client.CREATED)"},{"line_number":5409,"context_line":""},{"line_number":5410,"context_line":"    def test_with_an_invalid_passcode_and_user_credentials(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_5848385b","line":5407,"updated":"2019-08-09 17:28:42.000000000","message":"How about a test with included_previous_windows explicitly disabled as well?","commit_id":"807c7c9dc7d93cbc8189548e7c8630b6e10ebfa4"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"659202a7262fba2ecdb7c2115f8a55ed9f7cf9bb","unresolved":false,"context_lines":[{"line_number":5404,"context_line":"        # getting a different TOTP between the call here and the call in the"},{"line_number":5405,"context_line":"        # auth plugin."},{"line_number":5406,"context_line":"        self.useFixture(fixture.TimeFixture())"},{"line_number":5407,"context_line":""},{"line_number":5408,"context_line":"        self.v3_create_token(auth_data, expected_status\u003dhttp_client.CREATED)"},{"line_number":5409,"context_line":""},{"line_number":5410,"context_line":"    def test_with_an_invalid_passcode_and_user_credentials(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_bdea730b","line":5407,"in_reply_to":"7faddb67_5848385b","updated":"2019-08-14 01:17:21.000000000","message":"good idea","commit_id":"807c7c9dc7d93cbc8189548e7c8630b6e10ebfa4"}],"releasenotes/notes/bug-1839577-1226d86ea0744055.yaml":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1584a7983c9e74e2160438f3f17d4dd14d980b70","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1839577 \u003chttps://bugs.launchpad.net/keystone/+bug/1839577\u003e`_]"},{"line_number":5,"context_line":"    TOTP now allows by default the code from the previous time window"},{"line_number":6,"context_line":"    to be considered valid as part of auth. This can be disabled, or"},{"line_number":7,"context_line":"    the extended up to ten previous windows."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"7faddb67_f87244ad","line":6,"range":{"start_line":6,"start_character":56,"end_line":6,"end_character":64},"updated":"2019-08-09 17:28:42.000000000","message":"explain how - by setting it to 0? (sometimes we disable things by setting them to -1)","commit_id":"807c7c9dc7d93cbc8189548e7c8630b6e10ebfa4"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"659202a7262fba2ecdb7c2115f8a55ed9f7cf9bb","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1839577 \u003chttps://bugs.launchpad.net/keystone/+bug/1839577\u003e`_]"},{"line_number":5,"context_line":"    TOTP now allows by default the code from the previous time window"},{"line_number":6,"context_line":"    to be considered valid as part of auth. This can be disabled, or"},{"line_number":7,"context_line":"    the extended up to ten previous windows."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"7faddb67_5dca5fa1","line":6,"range":{"start_line":6,"start_character":56,"end_line":6,"end_character":64},"in_reply_to":"7faddb67_f87244ad","updated":"2019-08-14 01:17:21.000000000","message":"Done","commit_id":"807c7c9dc7d93cbc8189548e7c8630b6e10ebfa4"}]}
