)]}'
{"id":"openstack%2Fkeystoneauth~1001419","triplet_id":"openstack%2Fkeystoneauth~master~I56573ed1cfcb56a474a74f4f2a65ef0c3a5477c4","project":"openstack/keystoneauth","branch":"master","topic":"v3websso","attention_set":{},"removed_from_attention_set":{"10273":{"account":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"last_update":"2026-08-25 15:14:44.000000000","reason":"\u003cGERRIT_ACCOUNT_10273\u003e replied on the change","reason_account":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"}},"5890":{"account":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"last_update":"2026-08-25 20:26:20.000000000","reason":"Change was submitted"},"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2026-08-25 11:52:50.000000000","reason":"\u003cGERRIT_ACCOUNT_15334\u003e replied on the change","reason_account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}}},"hashtags":[],"change_id":"I56573ed1cfcb56a474a74f4f2a65ef0c3a5477c4","subject":"Expose the unscoped token of a federated plugin","status":"MERGED","created":"2026-08-18 20:04:21.000000000","updated":"2026-08-25 20:27:33.000000000","submitted":"2026-08-25 20:26:20.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":21,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"1001419-v3websso","meta_rev_id":"e862518e7b881f2e900bf1b585e4c0e5d7873e4d","_number":1001419,"virtual_id_number":1001419,"owner":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-08-25 20:26:20.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"recommended":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"all":[{"value":1,"date":"2026-08-25 15:14:44.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},{"value":2,"date":"2026-08-25 11:58:21.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","value":1,"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":0,"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},{"value":1,"date":"2026-08-25 16:42:47.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-08-18 21:46:44.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-08-19 08:12:06.000000000","updated_by":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"reviewer":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"state":"CC"},{"updated":"2026-08-19 13:43:13.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"CC"},{"updated":"2026-08-25 11:58:21.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"REVIEWER"},{"updated":"2026-08-25 15:14:44.000000000","updated_by":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"reviewer":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"state":"REVIEWER"}],"messages":[{"id":"a43ac8851ced804973f62e3036fa3c66f1693b74","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-18 20:04:21.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"068876ab927194fab5d54fcbdd332a4bf044dd8c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-18 20:11:08.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"9d5e98279763f8fd91eb3e4279cba72f04a55cfd","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-18 20:23:14.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"2d3f4c57cd2764fd9daafa4fb293fb7c28b9f624","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-18 21:46:44.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9c55e948f97e46c1a48b242a09364114\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/890a72a606264859bb30322d2dc6ac70 : SUCCESS in 1h 21m 33s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/36e8e5b07c214066813a371234d8fbac : SUCCESS in 6m 43s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/1e5b019b479f477795e347e8f85612dd : SUCCESS in 4m 15s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/ffc565d91c11441093dd46ec003ad020 : SUCCESS in 4m 02s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/11014268d41a468f8f8e91bfd7f3fdff : SUCCESS in 4m 56s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/a671ff04e8f64b6b9fd098a65af762de : SUCCESS in 16m 03s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/0e868c9ffc60487cb382a16e974d4cba : SUCCESS in 29m 42s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/eec82a9074e6450fba08c520afee498a : SUCCESS in 7m 16s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/4f11061432724b20ac424aeb34d4b058 : SUCCESS in 7m 21s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2042ec1674f24e5da7357a308bdca1de : SUCCESS in 8m 21s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/014910a787b640fabceda896dcd8bf26 : SUCCESS in 2m 16s","accounts_in_message":[],"_revision_number":3},{"id":"6c40a65a6f7fad0b3eac8223468900ca0fb7b64c","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-08-19 08:12:06.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"37fff4e0702bc43629bbdcfb2842ec515b17eaf1","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-08-19 13:43:13.000000000","message":"Patch Set 3:\n\n(6 comments)","accounts_in_message":[],"_revision_number":3},{"id":"45b72fa96ebc3ac7f7499a846d939e5b83a42794","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-08-20 12:01:04.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"a53dda8ea64b15bde90c2f6ea41957ed68fce1b8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-20 18:19:27.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"c93f56b43ce459a959264dfac177d24c4d91b90a","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-20 18:20:11.000000000","message":"Patch Set 4:\n\n(7 comments)","accounts_in_message":[],"_revision_number":4},{"id":"1362242cf755702d424facc9f7cc5732aa9492ff","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-20 18:53:41.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"11079869c78242aa3e9246d82960ccb35b23251b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-20 20:36:38.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/13c98996c8b849c9a3288cdee054810e\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/d69cffdc2c264b0886f630b074c81883 : SUCCESS in 1h 37m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8ffc268290244c0ba3db188c9a1aa43a : SUCCESS in 7m 35s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/5118a9e8e08342e2a354a7c30d7f062d : SUCCESS in 8m 24s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/36811a4661fa4a38b3623b1a4622324d : SUCCESS in 5m 56s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/014f3e55489a40fd8416e69801ee1fed : SUCCESS in 5m 50s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/985cd8e1f27e4d0cbd3e65202c30b8a3 : SUCCESS in 15m 29s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/f7b1907fa0504b98bd1c1e7d7e7374f8 : SUCCESS in 58m 24s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/a3b3809088644ac78a80b58de0b261fc : SUCCESS in 4m 48s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/ae6b9453844c4d20ae7f11d6c36cafd2 : SUCCESS in 7m 26s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/01603cacbb1e4faab65bca654e7a8cfa : SUCCESS in 4m 39s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/fa34bbe4bfe940c4b719e8da68d2ed8d : SUCCESS in 4m 05s","accounts_in_message":[],"_revision_number":5},{"id":"dc3374ea547fec6d6ce0d0286deb0dcce02041d2","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-08-25 11:52:50.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"50efe8d4f01317443e68f4b7e38dbbe9b6c164be","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-08-25 11:58:21.000000000","message":"Patch Set 5: Code-Review+2\n\n(2 comments)","accounts_in_message":[],"_revision_number":5},{"id":"25d22d200da7984767c12b8fe10a39a3a9334a54","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-08-25 15:14:44.000000000","message":"Patch Set 5: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"9decaaf4c13840a1665125a5344b20b22dfe3ab4","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-25 15:17:56.000000000","message":"Topic set to v3websso","accounts_in_message":[],"_revision_number":5},{"id":"efe8d8bc5b82538e7971130743787dd6bf874638","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 16:23:50.000000000","message":"Patch Set 5: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/d65bf2749fed442f83f9dbcd11da5fda\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/501ebc5c30b7438795507b7c17c32540 : FAILURE in 25m 19s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e45f2ed177f6429bbfb38335432d6662 : SUCCESS in 7m 15s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/73cb8122f0934c659493d0eb5678aea0 : SUCCESS in 6m 54s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/f4cb278b371941429c9140d9b21d543e : SUCCESS in 7m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a3a653a3a7174df5ac2a66ad0ecc8656 : SUCCESS in 9m 18s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/7ef0907db0e242a9aadc441390e06521 : SUCCESS in 16m 18s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/7b1865bd5b3340f18434f96b58d28eda : SUCCESS in 1h 03m 13s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/cc4bf30c8c9b46f5920482fedf45414a : SUCCESS in 5m 01s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/4675212716684d9c9f4c0bb371fc0a4b : SUCCESS in 8m 30s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a3e57f529f394f0aaf296ec37285321e : SUCCESS in 7m 04s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/6284244a26e14257826d34c9b1f73f69 : SUCCESS in 4m 45s","accounts_in_message":[],"_revision_number":5},{"id":"880c99f0e08fa740385e719e48d571472a92183d","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-08-25 16:42:47.000000000","message":"Patch Set 5: Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"4011e3402d09ad7c09b07dd3724be96981870f1a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 18:42:37.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/076ddb8bb0594a32855c9321c3e00e42\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/df63a4486a2a417292cbd326bb62d9c0 : SUCCESS in 1h 38m 30s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bb0bfadc86d144f3a64bafb77aad80f8 : SUCCESS in 8m 17s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/5ea672bcd5c045b1a736e998ecfc6c87 : SUCCESS in 7m 53s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/ecaee37b178648778cce5669efb78660 : SUCCESS in 7m 40s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/21fe9f4074534058941867970e16d9ad : SUCCESS in 9m 02s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/c1be7ec9ce554e9cb0e5fa5b7721ad48 : SUCCESS in 16m 34s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/9ce6397e4ea9440ca5d4bfe953f4d29a : SUCCESS in 36m 08s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/848bcccc36154f9d97ae1dc37d3136cf : SUCCESS in 4m 50s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/a9e28517658444ad8d13064d16004ee7 : SUCCESS in 9m 54s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/173c2bee66344f288db3f132d34f344f : SUCCESS in 10m 07s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/c2e0608ff972425bbbc30205769435b3 : SUCCESS in 6m 01s","accounts_in_message":[],"_revision_number":5},{"id":"42441cc246e0f586fb9ab79034b86420613df004","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 18:43:05.000000000","message":"Patch Set 5: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":5},{"id":"bebc84688d190d9eee5b8781e20eb2c9b5432431","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 20:26:20.000000000","message":"Patch Set 5: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/22de4db5ff9043c09c24345ed596d483\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/6df74fbb0b6f4b909e067354489bcb33 : SUCCESS in 1h 38m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8cf27288451b471ba123e362892b2d66 : SUCCESS in 8m 40s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/fe5688b9f62944deb8d294924299ccdb : SUCCESS in 6m 06s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/3699c8190e8247e78f0f277a99b78849 : SUCCESS in 9m 21s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/4cfcc886fb104ade891f7a310db4830f : SUCCESS in 11m 03s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/9de73eb4766b4d2bad1f37b28ea9a60b : SUCCESS in 1h 00m 03s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/e36da9e88b5f4037a3dcaa44b43f90bf : SUCCESS in 5m 34s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/57c8c7c552ee48f78541e789fe49d17f : SUCCESS in 9m 08s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bee5e8c3e0ba44a8b694fdc14a84afb1 : SUCCESS in 8m 57s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f841931ce193467c946397f2648a075d : SUCCESS in 4m 37s","accounts_in_message":[],"_revision_number":5},{"id":"188e9c41a296c710eee079d489f03a2979ec2a52","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 20:26:20.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":5},{"id":"e862518e7b881f2e900bf1b585e4c0e5d7873e4d","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 20:27:33.000000000","message":"Patch Set 5:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c84516ebd81a48cb99d8c70c7334699f\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5758f1bbc5d343af9fb5555a70ca8763 : SUCCESS in 40s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/fbf224b153c24fbb89e393eecad425d6 : SUCCESS in 43s","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"b2a8f31079ff3cc15b06516dd2ba3c45fc18b9c8","revisions":{"af691dcd66ea2b1c0e4d70b447b4bd856a391fd4":{"kind":"REWORK","_number":1,"created":"2026-08-18 20:04:21.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/19/1001419/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/19/1001419/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/1"}}},"commit":{"parents":[{"commit":"318b8a4f157775ad6269edb1d868cf39c652e459","subject":"Rescope federated tokens to a system scope","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/318b8a4f157775ad6269edb1d868cf39c652e459"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-18 19:37:01.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-18 20:04:12.000000000","tz":-300},"subject":"Let a caller hold the unscoped token of a federated plugin","message":"Let a caller hold the unscoped token of a federated plugin\n\nEvery federated plugin gets an unscoped token and then rescopes it.\nThe unscoped token is then dropped, so each scope costs another\nauthentication, and for the interactive flows another login.\n\nKeep it on the plugin and expose it, so an application can store it\nand hand it back later. The existing state API does not fit:\nget_cache_id includes the scope, as it must, and get_auth_state\nreturns the scoped token rather than the unscoped one behind it.\n\nKeystoneauth stores nothing itself. It reports what it holds and\ntakes back what it is given, leaving where and whether to keep it\nto the application.\n\nChange-Id: I56573ed1cfcb56a474a74f4f2a65ef0c3a5477c4\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\nAssisted-By: Claude Opus 5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/af691dcd66ea2b1c0e4d70b447b4bd856a391fd4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/af691dcd66ea2b1c0e4d70b447b4bd856a391fd4"}]},"branch":"refs/heads/master"},"adefdc78970e14fcdb2d15c7596774eee7b790a9":{"kind":"REWORK","_number":2,"created":"2026-08-18 20:11:08.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/19/1001419/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/19/1001419/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/2"}}},"commit":{"parents":[{"commit":"318b8a4f157775ad6269edb1d868cf39c652e459","subject":"Rescope federated tokens to a system scope","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/318b8a4f157775ad6269edb1d868cf39c652e459"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-18 19:37:01.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-18 20:10:08.000000000","tz":-300},"subject":"Let a caller hold the unscoped token of a federated plugin","message":"Let a caller hold the unscoped token of a federated plugin\n\nEvery federated plugin gets an unscoped token and then rescopes it.\nThe unscoped token is then dropped, so each scope costs another\nauthentication, and for the interactive flows another login.\n\nKeep it on the plugin and expose it, so an application can store it\nand hand it back later. The existing state API does not fit:\nget_cache_id includes the scope, as it must, and get_auth_state\nreturns the scoped token rather than the unscoped one behind it.\n\nThe defaults sit on BaseAuthPlugin, answering None and False, so a\ncaller can ask any plugin without knowing which kind it holds. This\nmirrors get_cache_id.\n\nKeystoneauth stores nothing itself. It reports what it holds and\ntakes back what it is given, leaving where and whether to keep it\nto the application.\n\nChange-Id: I56573ed1cfcb56a474a74f4f2a65ef0c3a5477c4\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\nAssisted-By: Claude Opus 5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/adefdc78970e14fcdb2d15c7596774eee7b790a9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/adefdc78970e14fcdb2d15c7596774eee7b790a9"}]},"branch":"refs/heads/master"},"1237456de5e14e330488c37036b53cf63c7d8978":{"kind":"REWORK","_number":3,"created":"2026-08-18 20:23:14.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/19/1001419/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/19/1001419/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/3"}}},"commit":{"parents":[{"commit":"318b8a4f157775ad6269edb1d868cf39c652e459","subject":"Rescope federated tokens to a system scope","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/318b8a4f157775ad6269edb1d868cf39c652e459"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-18 20:22:00.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-18 20:22:00.000000000","tz":-300},"subject":"Expose the unscoped token of a federated plugin","message":"Expose the unscoped token of a federated plugin\n\nA federated plugin gets an unscoped token and then rescopes it,\ndropping the unscoped token once it has. Every scope therefore costs\na fresh authentication, and for the interactive flows a fresh login,\neven though one unscoped token can be rescoped to any project, domain\nor system.\n\nRetain it and expose it, so one authentication covers every scope. The\nexisting state API cannot carry it: get_cache_id identifies the plugin\nincluding its scope, as it must, and get_auth_state returns the scoped\ntoken rather than the unscoped one behind it.\n\nThe defaults sit on BaseAuthPlugin, answering None and False, so a\ncaller can ask any plugin without knowing which kind it holds.\n\nChange-Id: I56573ed1cfcb56a474a74f4f2a65ef0c3a5477c4\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\nAssisted-By: Claude Opus 5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/1237456de5e14e330488c37036b53cf63c7d8978"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/1237456de5e14e330488c37036b53cf63c7d8978"}]},"branch":"refs/heads/master"},"c31c4765310c5a92edf03eec052e9190604c9de0":{"kind":"REWORK","_number":4,"created":"2026-08-20 18:19:27.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/19/1001419/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/19/1001419/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/4"}}},"commit":{"parents":[{"commit":"318b8a4f157775ad6269edb1d868cf39c652e459","subject":"Rescope federated tokens to a system scope","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/318b8a4f157775ad6269edb1d868cf39c652e459"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-18 20:22:00.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-20 18:14:09.000000000","tz":-300},"subject":"Expose the unscoped token of a federated plugin","message":"Expose the unscoped token of a federated plugin\n\nA federated plugin gets an unscoped token and then rescopes it,\ndropping the unscoped token once it has. Every scope therefore costs\na fresh authentication, and for the interactive flows a fresh login,\neven though one unscoped token can be rescoped to any project, domain\nor system.\n\nRetain it and expose it, so one authentication covers every scope. The\nexisting state API cannot carry it: get_cache_id identifies the plugin\nincluding its scope, as it must, and get_auth_state returns the scoped\ntoken rather than the unscoped one behind it.\n\nThe defaults sit on BaseAuthPlugin, answering None and False, so a\ncaller can ask any plugin without knowing which kind it holds.\n\nAn unscoped token installed from elsewhere is replaced, rather than\nraised, when the identity service refuses it. Its expiry cannot reveal\nthat it was revoked, and the rescope sends it in the request body\nrather than a header, so the session never sees a 401 it could retry.\n\nChange-Id: I56573ed1cfcb56a474a74f4f2a65ef0c3a5477c4\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\nAssisted-By: Claude Opus 5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/c31c4765310c5a92edf03eec052e9190604c9de0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/c31c4765310c5a92edf03eec052e9190604c9de0"}]},"branch":"refs/heads/master"},"b2a8f31079ff3cc15b06516dd2ba3c45fc18b9c8":{"kind":"REWORK","_number":5,"created":"2026-08-20 18:53:41.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/19/1001419/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/19/1001419/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/19/1001419/5"}}},"commit":{"parents":[{"commit":"318b8a4f157775ad6269edb1d868cf39c652e459","subject":"Rescope federated tokens to a system scope","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/318b8a4f157775ad6269edb1d868cf39c652e459"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-18 20:22:00.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-08-20 18:53:09.000000000","tz":-300},"subject":"Expose the unscoped token of a federated plugin","message":"Expose the unscoped token of a federated plugin\n\nA federated plugin gets an unscoped token and then rescopes it,\ndropping the unscoped token once it has. Every scope therefore costs\na fresh authentication, and for the interactive flows a fresh login,\neven though one unscoped token can be rescoped to any project, domain\nor system.\n\nRetain it and expose it, so one authentication covers every scope. The\nexisting state API cannot carry it: get_cache_id identifies the plugin\nincluding its scope, as it must, and get_auth_state returns the scoped\ntoken rather than the unscoped one behind it.\n\nThe defaults sit on BaseAuthPlugin, answering None and False, so a\ncaller can ask any plugin without knowing which kind it holds.\n\nAn unscoped token installed from elsewhere is replaced, rather than\nraised, when the identity service refuses it. Its expiry cannot reveal\nthat it was revoked, and the rescope sends it in the request body\nrather than a header, so the session never sees a 401 it could retry.\n\nChange-Id: I56573ed1cfcb56a474a74f4f2a65ef0c3a5477c4\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\nAssisted-By: Claude Opus 5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/b2a8f31079ff3cc15b06516dd2ba3c45fc18b9c8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/b2a8f31079ff3cc15b06516dd2ba3c45fc18b9c8"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
