)]}'
{"id":"openstack%2Fkeystonemiddleware~989646","triplet_id":"openstack%2Fkeystonemiddleware~master~Ic78b72a0d3a501d21c92d4eee57b517479762c27","project":"openstack/keystonemiddleware","branch":"master","attention_set":{"27900":{"account":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"last_update":"2026-05-23 00:39:12.000000000","reason":"\u003cGERRIT_ACCOUNT_5890\u003e replied on the change","reason_account":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"}}},"removed_from_attention_set":{},"hashtags":[],"change_id":"Ic78b72a0d3a501d21c92d4eee57b517479762c27","subject":"Return 403 when service token lacks necessary roles","status":"NEW","created":"2026-05-22 09:50:45.000000000","updated":"2026-05-25 17:30:56.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":2,"unresolved_comment_count":1,"has_review_started":true,"meta_rev_id":"b61924745676b3d5ea5d121221124db19f614d19","_number":989646,"virtual_id_number":989646,"owner":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-05-22 10:52:42.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":"","value":1,"default_value":0,"optional":true},"Code-Review":{"recommended":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"disliked":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"all":[{"value":1,"date":"2026-05-23 00:39:12.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"value":-1,"date":"2026-05-25 17:30:56.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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":{"all":[{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"_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":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-05-22 10:52:42.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-05-23 00:39:12.000000000","updated_by":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"reviewer":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"state":"REVIEWER"},{"updated":"2026-05-25 17:30:56.000000000","updated_by":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"reviewer":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"state":"REVIEWER"}],"messages":[{"id":"3aac408fd5cb0b57ae15bb87289f25d5cdb5ff7f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2026-05-22 09:50:45.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"93442d4b3c3cd65c7076fcd9f669c6635cd9a507","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-22 10:52:42.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f3d6f23e5d3f4166bea15fb794a1d6ef\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6b4cb786af344e09b36e4c62d00a3042 : SUCCESS in 2m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/89f81976616747b28391a73de24f04c2 : SUCCESS in 2m 55s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/a1e3e9b64c86438883c778822993d923 : SUCCESS in 2m 45s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/002fdce1c5ae4f74ad40dd8819108e89 : SUCCESS in 3m 05s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/5a5c1834e8d946bdb220a358df6b78f4 : SUCCESS in 5m 47s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/43df5fed00574f6aaa6a324f6230edf4 : SUCCESS in 5m 54s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/b65cbec765a24dbaafb5dae8affbaff1 : SUCCESS in 1h 00m 11s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/b2f8199d7fd74ee9a69eed27839d0413 : SUCCESS in 3m 43s","accounts_in_message":[],"_revision_number":1},{"id":"58baf920c5ae504774bb2a84ecb7519f88a7a610","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-05-23 00:39:12.000000000","message":"Patch Set 1: Code-Review+1","accounts_in_message":[],"_revision_number":1},{"id":"b61924745676b3d5ea5d121221124db19f614d19","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2026-05-25 17:30:56.000000000","message":"Patch Set 1: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"c4269fe0a028e9fe49d6b2f4218d217e9710c6ed","revisions":{"c4269fe0a028e9fe49d6b2f4218d217e9710c6ed":{"kind":"REWORK","_number":1,"created":"2026-05-22 09:50:45.000000000","uploader":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"ref":"refs/changes/46/989646/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystonemiddleware","ref":"refs/changes/46/989646/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystonemiddleware refs/changes/46/989646/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystonemiddleware refs/changes/46/989646/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystonemiddleware refs/changes/46/989646/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystonemiddleware refs/changes/46/989646/1"}}},"commit":{"parents":[{"commit":"39ae6caf883a93e8dddbeb73e2b0ff11628429cd","subject":"Merge \"Change service_token_roles_required default config\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystonemiddleware/commit/39ae6caf883a93e8dddbeb73e2b0ff11628429cd"}]}],"author":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2026-05-22 09:38:01.000000000","tz":120},"committer":{"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","date":"2026-05-22 09:38:01.000000000","tz":120},"subject":"Return 403 when service token lacks necessary roles","message":"Return 403 when service token lacks necessary roles\n\nCurrent implementation returns HTTP 401 when a service token lacks\ndefined roles. This is not correct since the token itself is valid, it\njust lacks necessary privileges, what qualifies it as 403.\n\nThe documentation explains the service token validation delaying in the\nway, that no error is actually raised when service token is \"invalid\"\n(whatever that means), instead the `X-Service-Identity-Status` is set to\n`invalid`. Keep this behavior.\n\nCloses-Bug: #2153561\n\nChange-Id: Ic78b72a0d3a501d21c92d4eee57b517479762c27\nSigned-off-by: Artem Goncharov \u003cartem.goncharov@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystonemiddleware/commit/c4269fe0a028e9fe49d6b2f4218d217e9710c6ed"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystonemiddleware/commit/c4269fe0a028e9fe49d6b2f4218d217e9710c6ed"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","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":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"}},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
