)]}'
{"id":"openstack%2Fkeystone~985690","triplet_id":"openstack%2Fkeystone~master~I60733783079c6be7b5ec8afd1de72cb6c78e61f1","project":"openstack/keystone","branch":"master","attention_set":{"13478":{"account":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"last_update":"2026-05-12 09:34:16.000000000","reason":"\u003cGERRIT_ACCOUNT_11583\u003e replied on the change","reason_account":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"}}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I60733783079c6be7b5ec8afd1de72cb6c78e61f1","subject":"Add JSON Schema keyword validity test","status":"NEW","created":"2026-04-21 15:09:57.000000000","updated":"2026-05-12 09:34:16.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"4572ea9874e19e141971c78f974ebc082ff9d4be","_number":985690,"virtual_id_number":985690,"owner":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-04-21 16:05:55.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"}],"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":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-05-12 09:34:16.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"}],"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":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-04-21 16:05:55.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-12 09:34:16.000000000","updated_by":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"reviewer":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"state":"REVIEWER"}],"messages":[{"id":"3b415d2148879167f5851e4c0ce4d280f14d341e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"date":"2026-04-21 15:09:57.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"b0d5aaa711eb90239b5c36bcd6be7b92c59819c4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"date":"2026-04-21 15:12:26.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"5f7581fc88bc977d3712b9045457dbbdfb5e65dd","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"date":"2026-04-21 15:17:04.000000000","message":"Patch Set 3: Commit message was updated.","accounts_in_message":[],"_revision_number":3},{"id":"8aa04b0628732d7c87d50c2dc52b1eb09288db8c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"date":"2026-04-21 15:18:54.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"9a28ec62a3f3577b91c3643cb342a5826622e4b2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-21 16:05:55.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e65df969f3024abbbcc4e44991fb7463\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/95bb59e139c047e98becef1364b81dbf : SUCCESS in 17m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/15caa06170c94cc8b09a86899a619e8c : SUCCESS in 5m 36s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/da5f73bbe4d544bc9f79ec7506c4032e : SUCCESS in 8m 40s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/44188299e3594a8b80fd8fdf7259fd88 : SUCCESS in 11m 19s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/05d55cad1e114508ba1b483011b114bc : SUCCESS in 14m 44s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/43eb6b7bbce542f8a616ebb0d363cdac : SUCCESS in 15m 09s\n- keystone-protection-functional https://zuul.opendev.org/t/openstack/build/74d98b862f0442c1aaba4ea91992d001 : FAILURE in 42m 43s (non-voting)\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/ce81b1d4c4404bd785c6e932c44201f8 : SUCCESS in 6m 34s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"abd209a637c650b1f4fbb833039802426a01bc98","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-21 16:29:10.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/823e555362a04a1fa57e680886671948\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/b24e1c580a254a66872a90208293c7a8 : SUCCESS in 15m 54s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/7ba9cf8efa044892832f4100ac405f29 : SUCCESS in 12m 09s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/4113289946804956a1aa762c1297d712 : SUCCESS in 20m 24s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"4572ea9874e19e141971c78f974ebc082ff9d4be","author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"date":"2026-05-12 09:34:16.000000000","message":"Patch Set 4: Code-Review+1","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"d69bce7dafd0b1a911e9ea3b30b23f39f97417f2","revisions":{"283935f4b761e8e0071c5c0facc6f1b37a41116e":{"kind":"REWORK","_number":1,"created":"2026-04-21 15:09:57.000000000","uploader":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"ref":"refs/changes/90/985690/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/90/985690/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/90/985690/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/90/985690/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/90/985690/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/90/985690/1"}}},"commit":{"parents":[{"commit":"5817fe467b2893b19781becdbd918a0afa6d7ec8","subject":"Fix typo in keystone/catalog/schema.py","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/5817fe467b2893b19781becdbd918a0afa6d7ec8"}]}],"author":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-04-21 13:30:22.000000000","tz":120},"committer":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-04-21 13:35:04.000000000","tz":120},"subject":"Add JSON Schema keyword validity test","message":"Add JSON Schema keyword validity test\n\nJSON Schema silently ignores unknown keywords, treating them as\nannotations. A misspelled keyword like \"additonalProperties\" compiles\nwithout error but has no validation effect, silently defeating the\nintended constraint.\n\nAdd SchemaKeywordValidityTestCase with two tests:\n- test_all_schemas_use_only_valid_keywords: walks every request/response\n  body schema and verifies all keys are recognized Draft 2020-12\n  keywords, using the jsonschema library\u0027s VALIDATORS registry as the\n  authoritative source.\n- test_all_schema_modules_are_covered: auto-discovers all schema modules\n  under keystone/ and fails if any with *_body schemas are missing from\n  the test\u0027s module list, ensuring future endpoints are covered.\n\nThe keyword test currently fails, exposing an existing typo in\ncatalog/schema.py (\"additonalProperties\" instead of\n\"additionalProperties\") which will be fixed in a follow-up commit.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nSigned-off-by: Boris Bobrov \u003cb.bobrov@sap.com\u003e\nChange-Id: I60733783079c6be7b5ec8afd1de72cb6c78e61f1\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/283935f4b761e8e0071c5c0facc6f1b37a41116e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/283935f4b761e8e0071c5c0facc6f1b37a41116e"}]},"branch":"refs/heads/master"},"922dfd71d4534bcb970e063c3e4a78cc2ab88e38":{"kind":"REWORK","_number":2,"created":"2026-04-21 15:12:26.000000000","uploader":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"ref":"refs/changes/90/985690/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/90/985690/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/90/985690/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/90/985690/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/90/985690/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/90/985690/2"}}},"commit":{"parents":[{"commit":"5817fe467b2893b19781becdbd918a0afa6d7ec8","subject":"Fix typo in keystone/catalog/schema.py","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/5817fe467b2893b19781becdbd918a0afa6d7ec8"}]}],"author":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-04-21 13:30:22.000000000","tz":120},"committer":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-04-21 15:12:15.000000000","tz":120},"subject":"Add JSON Schema keyword validity test","message":"Add JSON Schema keyword validity test\n\nJSON Schema silently ignores unknown keywords, treating them as\nannotations. A misspelled keyword like \"additonalProperties\" compiles\nwithout error but has no validation effect, silently defeating the\nintended constraint.\n\nAdd SchemaKeywordValidityTestCase with two tests:\n- test_all_schemas_use_only_valid_keywords: walks every request/response\n  body schema and verifies all keys are recognized Draft 2020-12\n  keywords, using the jsonschema library\u0027s VALIDATORS registry as the\n  authoritative source.\n- test_all_schema_modules_are_covered: auto-discovers all schema modules\n  under keystone/ and fails if any with *_body schemas are missing from\n  the test\u0027s module list, ensuring future endpoints are covered.\n\nThe keyword test currently fails, exposing an existing typo in\ncatalog/schema.py (\"additonalProperties\" instead of\n\"additionalProperties\") which will be fixed in a follow-up commit.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nSigned-off-by: Boris Bobrov \u003cb.bobrov@sap.com\u003e\nChange-Id: I60733783079c6be7b5ec8afd1de72cb6c78e61f1\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/922dfd71d4534bcb970e063c3e4a78cc2ab88e38"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/922dfd71d4534bcb970e063c3e4a78cc2ab88e38"}]},"branch":"refs/heads/master"},"b3d85742bc329d0c596138ef40746ef6b1ad1fc7":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2026-04-21 15:17:04.000000000","uploader":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"ref":"refs/changes/90/985690/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/90/985690/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/90/985690/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/90/985690/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/90/985690/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/90/985690/3"}}},"commit":{"parents":[{"commit":"5817fe467b2893b19781becdbd918a0afa6d7ec8","subject":"Fix typo in keystone/catalog/schema.py","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/5817fe467b2893b19781becdbd918a0afa6d7ec8"}]}],"author":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-04-21 13:30:22.000000000","tz":120},"committer":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-04-21 15:17:04.000000000","tz":0},"subject":"Add JSON Schema keyword validity test","message":"Add JSON Schema keyword validity test\n\nJSON Schema silently ignores unknown keywords, treating them as\nannotations. A misspelled keyword like \"additonalProperties\" compiles\nwithout error but has no validation effect, silently defeating the\nintended constraint.\n\nAdd SchemaKeywordValidityTestCase with two tests:\n- test_all_schemas_use_only_valid_keywords: walks every request/response\n  body schema and verifies all keys are recognized Draft 2020-12\n  keywords, using the jsonschema library\u0027s VALIDATORS registry as the\n  authoritative source.\n- test_all_schema_modules_are_covered: auto-discovers all schema modules\n  under keystone/ and fails if any with *_body schemas are missing from\n  the test\u0027s module list, ensuring future endpoints are covered.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nSigned-off-by: Boris Bobrov \u003cb.bobrov@sap.com\u003e\nChange-Id: I60733783079c6be7b5ec8afd1de72cb6c78e61f1\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/b3d85742bc329d0c596138ef40746ef6b1ad1fc7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/b3d85742bc329d0c596138ef40746ef6b1ad1fc7"}]},"branch":"refs/heads/master","description":"Edit commit message"},"d69bce7dafd0b1a911e9ea3b30b23f39f97417f2":{"kind":"REWORK","_number":4,"created":"2026-04-21 15:18:54.000000000","uploader":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"ref":"refs/changes/90/985690/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/90/985690/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/90/985690/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/90/985690/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/90/985690/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/90/985690/4"}}},"commit":{"parents":[{"commit":"5817fe467b2893b19781becdbd918a0afa6d7ec8","subject":"Fix typo in keystone/catalog/schema.py","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/5817fe467b2893b19781becdbd918a0afa6d7ec8"}]}],"author":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-04-21 13:30:22.000000000","tz":120},"committer":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-04-21 15:18:46.000000000","tz":120},"subject":"Add JSON Schema keyword validity test","message":"Add JSON Schema keyword validity test\n\nJSON Schema silently ignores unknown keywords, treating them as\nannotations. A misspelled keyword like \"additonalProperties\" compiles\nwithout error but has no validation effect, silently defeating the\nintended constraint.\n\nAdd SchemaKeywordValidityTestCase with two tests:\n- test_all_schemas_use_only_valid_keywords: walks every request/response\n  body schema and verifies all keys are recognized Draft 2020-12\n  keywords, using the jsonschema library\u0027s VALIDATORS registry as the\n  authoritative source.\n- test_all_schema_modules_are_covered: auto-discovers all schema modules\n  under keystone/ and fails if any with *_body schemas are missing from\n  the test\u0027s module list, ensuring future endpoints are covered.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nSigned-off-by: Boris Bobrov \u003cb.bobrov@sap.com\u003e\nChange-Id: I60733783079c6be7b5ec8afd1de72cb6c78e61f1\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/d69bce7dafd0b1a911e9ea3b30b23f39f97417f2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/d69bce7dafd0b1a911e9ea3b30b23f39f97417f2"}]},"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":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"}},{"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":""}}}]}
