)]}'
{".zuul.yaml":[{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"ab7e01b9184fc6bcf40845b02553bc2722a27531","unresolved":true,"context_lines":[{"line_number":64,"context_line":"- job:"},{"line_number":65,"context_line":"    name: keystone-oauth2-basic-functional"},{"line_number":66,"context_line":"    parent: keystone-dsvm-py3-functional"},{"line_number":67,"context_line":"    override-checkout: stable/zed"},{"line_number":68,"context_line":"    roles:"},{"line_number":69,"context_line":"      - zuul: openstack/keystone-tempest-plugin"},{"line_number":70,"context_line":"    vars:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"08258a08_31aff8f0","line":67,"updated":"2023-04-04 01:04:20.000000000","message":"This scenario test should be run to `master`, so maybe you should remove `override-checkout: stable/zed`?","commit_id":"3945ec31d315c13dfd4ccf184d7d6539dfdc8e5f"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"826916138a91103bf496b7549df8ced9e9ae601e","unresolved":false,"context_lines":[{"line_number":64,"context_line":"- job:"},{"line_number":65,"context_line":"    name: keystone-oauth2-basic-functional"},{"line_number":66,"context_line":"    parent: keystone-dsvm-py3-functional"},{"line_number":67,"context_line":"    override-checkout: stable/zed"},{"line_number":68,"context_line":"    roles:"},{"line_number":69,"context_line":"      - zuul: openstack/keystone-tempest-plugin"},{"line_number":70,"context_line":"    vars:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"b8412aef_9349323e","line":67,"in_reply_to":"08258a08_31aff8f0","updated":"2023-05-11 05:00:03.000000000","message":"Done","commit_id":"3945ec31d315c13dfd4ccf184d7d6539dfdc8e5f"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"ab7e01b9184fc6bcf40845b02553bc2722a27531","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3bfce344_af585d80","updated":"2023-04-04 01:04:20.000000000","message":"Thanks for your patch. Please kindly check my comments.","commit_id":"3945ec31d315c13dfd4ccf184d7d6539dfdc8e5f"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"65b9ff5dbbb762dfe8722286036786d21e0a7227","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2d7487d7_7da0e917","updated":"2023-04-07 12:27:03.000000000","message":"Thank you for re-work! Please kindly check my comments.","commit_id":"72a607a2ed281f5820357826cf6b3f6b62b2e0cc"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"826916138a91103bf496b7549df8ced9e9ae601e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1f188576_b505d36f","updated":"2023-05-11 05:00:03.000000000","message":"Thanks for your re-work! LGTM","commit_id":"5c737262e6cfde5a19bc4b9eb729c39293e0c464"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"d6f9c39450de30430b13f3462b808f9fabc8dadb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"f6b2530f_c433972c","updated":"2024-12-26 05:27:23.000000000","message":"The failure in keystone-dsvm-py3-functional-2023-1 will be resolved by https://review.opendev.org/c/openstack/keystone-tempest-plugin/+/934272.","commit_id":"1a0dcf48fe93c7e8052edafad60e3603e42da7a1"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"7d89311d98d18a6299eb673879b8c826ee351cb1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c9760341_a108b088","updated":"2024-12-26 02:47:24.000000000","message":"recheck","commit_id":"1a0dcf48fe93c7e8052edafad60e3603e42da7a1"}],"keystone_tempest_plugin/tests/scenario/test_oauth2_authentication.py":[{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"ab7e01b9184fc6bcf40845b02553bc2722a27531","unresolved":true,"context_lines":[{"line_number":222,"context_line":"    @testtools.skipUnless("},{"line_number":223,"context_line":"        \u0027client_secret_basic\u0027 in CONF.oauth2_scenario.oauth2_authn_methods,"},{"line_number":224,"context_line":"        \u0027Keystone OAuth2 API is not support.\u0027)"},{"line_number":225,"context_line":"    def test_get_access_token_project_invalid_ng(self):"},{"line_number":226,"context_line":"        ac_info \u003d self.create_application_credential()"},{"line_number":227,"context_line":"        client_id \u003d ac_info.get(\u0027id\u0027)"},{"line_number":228,"context_line":"        client_secret \u003d ac_info.get(\u0027secret\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"8d49912e_c6d1fcf1","line":225,"range":{"start_line":225,"start_character":45,"end_line":225,"end_character":48},"updated":"2023-04-04 01:04:20.000000000","message":"It is better to use `_error` instead of `_ng`.","commit_id":"3945ec31d315c13dfd4ccf184d7d6539dfdc8e5f"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"65b9ff5dbbb762dfe8722286036786d21e0a7227","unresolved":false,"context_lines":[{"line_number":222,"context_line":"    @testtools.skipUnless("},{"line_number":223,"context_line":"        \u0027client_secret_basic\u0027 in CONF.oauth2_scenario.oauth2_authn_methods,"},{"line_number":224,"context_line":"        \u0027Keystone OAuth2 API is not support.\u0027)"},{"line_number":225,"context_line":"    def test_get_access_token_project_invalid_ng(self):"},{"line_number":226,"context_line":"        ac_info \u003d self.create_application_credential()"},{"line_number":227,"context_line":"        client_id \u003d ac_info.get(\u0027id\u0027)"},{"line_number":228,"context_line":"        client_secret \u003d ac_info.get(\u0027secret\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"8b273965_61bcf685","line":225,"range":{"start_line":225,"start_character":45,"end_line":225,"end_character":48},"in_reply_to":"8d49912e_c6d1fcf1","updated":"2023-04-07 12:27:03.000000000","message":"Done","commit_id":"3945ec31d315c13dfd4ccf184d7d6539dfdc8e5f"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"ab7e01b9184fc6bcf40845b02553bc2722a27531","unresolved":true,"context_lines":[{"line_number":241,"context_line":"    @testtools.skipUnless("},{"line_number":242,"context_line":"        \u0027client_secret_basic\u0027 in CONF.oauth2_scenario.oauth2_authn_methods,"},{"line_number":243,"context_line":"        \u0027Keystone OAuth2 API is not support.\u0027)"},{"line_number":244,"context_line":"    def test_get_access_token_user_invalid_ng(self):"},{"line_number":245,"context_line":"        ac_info \u003d self.create_application_credential()"},{"line_number":246,"context_line":"        client_id \u003d ac_info.get(\u0027id\u0027)"},{"line_number":247,"context_line":"        client_secret \u003d ac_info.get(\u0027secret\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"a1454fda_acc6e274","line":244,"range":{"start_line":244,"start_character":42,"end_line":244,"end_character":45},"updated":"2023-04-04 01:04:20.000000000","message":"ditto.","commit_id":"3945ec31d315c13dfd4ccf184d7d6539dfdc8e5f"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"65b9ff5dbbb762dfe8722286036786d21e0a7227","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    @testtools.skipUnless("},{"line_number":242,"context_line":"        \u0027client_secret_basic\u0027 in CONF.oauth2_scenario.oauth2_authn_methods,"},{"line_number":243,"context_line":"        \u0027Keystone OAuth2 API is not support.\u0027)"},{"line_number":244,"context_line":"    def test_get_access_token_user_invalid_ng(self):"},{"line_number":245,"context_line":"        ac_info \u003d self.create_application_credential()"},{"line_number":246,"context_line":"        client_id \u003d ac_info.get(\u0027id\u0027)"},{"line_number":247,"context_line":"        client_secret \u003d ac_info.get(\u0027secret\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"365a1f74_b931c4f4","line":244,"range":{"start_line":244,"start_character":42,"end_line":244,"end_character":45},"in_reply_to":"a1454fda_acc6e274","updated":"2023-04-07 12:27:03.000000000","message":"Done","commit_id":"3945ec31d315c13dfd4ccf184d7d6539dfdc8e5f"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"ab7e01b9184fc6bcf40845b02553bc2722a27531","unresolved":true,"context_lines":[{"line_number":260,"context_line":"    @testtools.skipUnless("},{"line_number":261,"context_line":"        \u0027client_secret_basic\u0027 in CONF.oauth2_scenario.oauth2_authn_methods,"},{"line_number":262,"context_line":"        \u0027Keystone OAuth2 API is not support.\u0027)"},{"line_number":263,"context_line":"    def test_get_access_token_ac_expired_ng(self):"},{"line_number":264,"context_line":"        now_time \u003d datetime.datetime.utcnow()"},{"line_number":265,"context_line":"        expires_at \u003d (now_time + datetime.timedelta(seconds\u003d30)).strftime("},{"line_number":266,"context_line":"            \u0027%Y-%m-%dT%H:%M:%S.%f\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"07df4bba_df620263","line":263,"range":{"start_line":263,"start_character":41,"end_line":263,"end_character":43},"updated":"2023-04-04 01:04:20.000000000","message":"ditto.","commit_id":"3945ec31d315c13dfd4ccf184d7d6539dfdc8e5f"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"65b9ff5dbbb762dfe8722286036786d21e0a7227","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    @testtools.skipUnless("},{"line_number":261,"context_line":"        \u0027client_secret_basic\u0027 in CONF.oauth2_scenario.oauth2_authn_methods,"},{"line_number":262,"context_line":"        \u0027Keystone OAuth2 API is not support.\u0027)"},{"line_number":263,"context_line":"    def test_get_access_token_ac_expired_ng(self):"},{"line_number":264,"context_line":"        now_time \u003d datetime.datetime.utcnow()"},{"line_number":265,"context_line":"        expires_at \u003d (now_time + datetime.timedelta(seconds\u003d30)).strftime("},{"line_number":266,"context_line":"            \u0027%Y-%m-%dT%H:%M:%S.%f\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"e364082c_4c01f00c","line":263,"range":{"start_line":263,"start_character":41,"end_line":263,"end_character":43},"in_reply_to":"07df4bba_df620263","updated":"2023-04-07 12:27:03.000000000","message":"Done","commit_id":"3945ec31d315c13dfd4ccf184d7d6539dfdc8e5f"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"ab7e01b9184fc6bcf40845b02553bc2722a27531","unresolved":true,"context_lines":[{"line_number":282,"context_line":"    @testtools.skipUnless("},{"line_number":283,"context_line":"        \u0027client_secret_basic\u0027 in CONF.oauth2_scenario.oauth2_authn_methods,"},{"line_number":284,"context_line":"        \u0027Keystone OAuth2 API is not support.\u0027)"},{"line_number":285,"context_line":"    def test_get_access_no_auth_ng(self):"},{"line_number":286,"context_line":"        self._test_get_access_token("},{"line_number":287,"context_line":"            use_https\u003dTrue, verify\u003dCONF.oauth2_scenario.cafile,"},{"line_number":288,"context_line":"            status_code\u003d401,"}],"source_content_type":"text/x-python","patch_set":2,"id":"614a5dd3_e0199975","line":285,"range":{"start_line":285,"start_character":31,"end_line":285,"end_character":34},"updated":"2023-04-04 01:04:20.000000000","message":"ditto.","commit_id":"3945ec31d315c13dfd4ccf184d7d6539dfdc8e5f"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"65b9ff5dbbb762dfe8722286036786d21e0a7227","unresolved":false,"context_lines":[{"line_number":282,"context_line":"    @testtools.skipUnless("},{"line_number":283,"context_line":"        \u0027client_secret_basic\u0027 in CONF.oauth2_scenario.oauth2_authn_methods,"},{"line_number":284,"context_line":"        \u0027Keystone OAuth2 API is not support.\u0027)"},{"line_number":285,"context_line":"    def test_get_access_no_auth_ng(self):"},{"line_number":286,"context_line":"        self._test_get_access_token("},{"line_number":287,"context_line":"            use_https\u003dTrue, verify\u003dCONF.oauth2_scenario.cafile,"},{"line_number":288,"context_line":"            status_code\u003d401,"}],"source_content_type":"text/x-python","patch_set":2,"id":"0ec05dc6_0d296277","line":285,"range":{"start_line":285,"start_character":31,"end_line":285,"end_character":34},"in_reply_to":"614a5dd3_e0199975","updated":"2023-04-07 12:27:03.000000000","message":"Done","commit_id":"3945ec31d315c13dfd4ccf184d7d6539dfdc8e5f"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"ab7e01b9184fc6bcf40845b02553bc2722a27531","unresolved":true,"context_lines":[{"line_number":291,"context_line":"    @testtools.skipUnless("},{"line_number":292,"context_line":"        \u0027client_secret_basic\u0027 in CONF.oauth2_scenario.oauth2_authn_methods,"},{"line_number":293,"context_line":"        \u0027Keystone OAuth2 API is not support.\u0027)"},{"line_number":294,"context_line":"    def test_get_access_token_client_id_not_found_ng(self):"},{"line_number":295,"context_line":"        ac_info \u003d self.create_application_credential()"},{"line_number":296,"context_line":"        client_id \u003d ac_info.get(\u0027id\u0027)"},{"line_number":297,"context_line":"        client_secret \u003d ac_info.get(\u0027secret\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"57a61cc5_3f981652","line":294,"range":{"start_line":294,"start_character":49,"end_line":294,"end_character":52},"updated":"2023-04-04 01:04:20.000000000","message":"ditto.","commit_id":"3945ec31d315c13dfd4ccf184d7d6539dfdc8e5f"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"65b9ff5dbbb762dfe8722286036786d21e0a7227","unresolved":false,"context_lines":[{"line_number":291,"context_line":"    @testtools.skipUnless("},{"line_number":292,"context_line":"        \u0027client_secret_basic\u0027 in CONF.oauth2_scenario.oauth2_authn_methods,"},{"line_number":293,"context_line":"        \u0027Keystone OAuth2 API is not support.\u0027)"},{"line_number":294,"context_line":"    def test_get_access_token_client_id_not_found_ng(self):"},{"line_number":295,"context_line":"        ac_info \u003d self.create_application_credential()"},{"line_number":296,"context_line":"        client_id \u003d ac_info.get(\u0027id\u0027)"},{"line_number":297,"context_line":"        client_secret \u003d ac_info.get(\u0027secret\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"39bd7a26_74a34c27","line":294,"range":{"start_line":294,"start_character":49,"end_line":294,"end_character":52},"in_reply_to":"57a61cc5_3f981652","updated":"2023-04-07 12:27:03.000000000","message":"Done","commit_id":"3945ec31d315c13dfd4ccf184d7d6539dfdc8e5f"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"65b9ff5dbbb762dfe8722286036786d21e0a7227","unresolved":true,"context_lines":[{"line_number":297,"context_line":"        client_secret \u003d ac_info.get(\u0027secret\u0027)"},{"line_number":298,"context_line":"        self._test_get_access_token("},{"line_number":299,"context_line":"            use_https\u003dTrue, verify\u003dCONF.oauth2_scenario.cafile,"},{"line_number":300,"context_line":"            auth_info\u003d(client_id + \u0027_not_found\u0027, client_secret),"},{"line_number":301,"context_line":"            status_code\u003d404,"},{"line_number":302,"context_line":"            error_title\u003d\u0027other_error\u0027,"},{"line_number":303,"context_line":"            error_description\u003d\u0027An unknown error occurred and failed to \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"953cf806_fd99b269","line":300,"range":{"start_line":300,"start_character":33,"end_line":300,"end_character":34},"updated":"2023-04-07 12:27:03.000000000","message":"Could you use format() or f-string for string concatenation instead of `+`?","commit_id":"72a607a2ed281f5820357826cf6b3f6b62b2e0cc"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"826916138a91103bf496b7549df8ced9e9ae601e","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        client_secret \u003d ac_info.get(\u0027secret\u0027)"},{"line_number":298,"context_line":"        self._test_get_access_token("},{"line_number":299,"context_line":"            use_https\u003dTrue, verify\u003dCONF.oauth2_scenario.cafile,"},{"line_number":300,"context_line":"            auth_info\u003d(client_id + \u0027_not_found\u0027, client_secret),"},{"line_number":301,"context_line":"            status_code\u003d404,"},{"line_number":302,"context_line":"            error_title\u003d\u0027other_error\u0027,"},{"line_number":303,"context_line":"            error_description\u003d\u0027An unknown error occurred and failed to \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"ac607579_5e4e2237","line":300,"range":{"start_line":300,"start_character":33,"end_line":300,"end_character":34},"in_reply_to":"953cf806_fd99b269","updated":"2023-05-11 05:00:03.000000000","message":"Done","commit_id":"72a607a2ed281f5820357826cf6b3f6b62b2e0cc"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"65b9ff5dbbb762dfe8722286036786d21e0a7227","unresolved":false,"context_lines":[{"line_number":306,"context_line":"    @testtools.skipUnless("},{"line_number":307,"context_line":"        \u0027client_secret_basic\u0027 in CONF.oauth2_scenario.oauth2_authn_methods,"},{"line_number":308,"context_line":"        \u0027Keystone OAuth2 API is not support.\u0027)"},{"line_number":309,"context_line":"    def test_get_access_token_no_client_secret_error(self):"},{"line_number":310,"context_line":"        ac_info \u003d self.create_application_credential()"},{"line_number":311,"context_line":"        client_id \u003d ac_info.get(\u0027id\u0027)"},{"line_number":312,"context_line":"        self._test_get_access_token("}],"source_content_type":"text/x-python","patch_set":4,"id":"351697ac_f7282231","line":309,"range":{"start_line":309,"start_character":8,"end_line":309,"end_character":52},"updated":"2023-04-07 12:27:03.000000000","message":"Thanks to adding the test patterns of `token_client_secret`!","commit_id":"72a607a2ed281f5820357826cf6b3f6b62b2e0cc"}]}
