)]}'
{"id":"openstack%2Fcodegenerator~951885","triplet_id":"openstack%2Fcodegenerator~master~I7236f6a94ccb2e92a086c16895efa4dc557460c4","project":"openstack/codegenerator","branch":"master","topic":"yaml-v1-support","attention_set":{},"removed_from_attention_set":{"9535":{"account":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"last_update":"2025-06-30 16:02:13.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I7236f6a94ccb2e92a086c16895efa4dc557460c4","subject":"YAML version support","status":"MERGED","created":"2025-06-05 16:57:00.000000000","updated":"2025-06-30 16:03:13.000000000","submitted":"2025-06-30 16:02:13.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"951885-yaml-v1-support","meta_rev_id":"885a0051075f5c3d5d25a9de9c36d4aaf438cf1d","_number":951885,"virtual_id_number":951885,"owner":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-06-30 16:02:13.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":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"all":[{"value":2,"date":"2025-06-30 14:33:00.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"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":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"all":[{"value":1,"date":"2025-06-30 14:33:00.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"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":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-06-05 18:43:12.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":"2025-06-30 14:33:00.000000000","updated_by":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"reviewer":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"state":"REVIEWER"}],"messages":[{"id":"b8a63daff5005db51c5fc34acf5d596424c9803b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"date":"2025-06-05 16:57:00.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"4f57da81175af75152f1ec8635a7ed878ab28ddd","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-06-05 18:43:12.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8a378aa261a94cb180dedb083c6a0316\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1a7cc1a212a04a0d873581a0f5627efd : SUCCESS in 3m 45s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a2475e13ab68457aa52a475d8190b2f5 : SUCCESS in 5m 06s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/a74f683026574fc598910f41f6623fb0 : SUCCESS in 4m 11s\n- codegenerator-openapi-baremetal-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/38cdd1b028574ac5acb43cf4f85b9b52 : SUCCESS in 8m 24s\n- codegenerator-openapi-block-storage-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/3a1ec6522e714b64ae84910939703215 : SUCCESS in 10m 03s\n- codegenerator-openapi-compute-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/3df6936e4a2c45a59abe23355b1d6b70 : SUCCESS in 7m 56s\n- codegenerator-openapi-container-infrastructure-management-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/31b6c14a0b254391bc73d880d3631da4 : SUCCESS in 4m 41s\n- codegenerator-openapi-dns-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/4184f4e2bf074d87a5ad31db0922c585 : SUCCESS in 6m 37s\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/1bb7d478c80d462b9ae6ce49056b1000 : SUCCESS in 7m 51s\n- codegenerator-openapi-image-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/f2491446a8fa424ba88569f7a3d269c5 : SUCCESS in 6m 04s\n- codegenerator-openapi-key-manager-tips https://zuul.opendev.org/t/openstack/build/1535c365b84a478f9a23a7f1477365da : SUCCESS in 1m 56s\n- codegenerator-openapi-load-balancing-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/ac010dfed5d94de1953b1d2cddc2d565 : SUCCESS in 6m 05s\n- codegenerator-openapi-network-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/b354dd8f254044d4b400721426cd139e : SUCCESS in 3m 16s\n- codegenerator-openapi-object-store-static https://zuul.opendev.org/t/openstack/build/2fe50aaac12b4e15876b5337192d9547 : SUCCESS in 1m 15s\n- codegenerator-openapi-placement-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/4229bf414f924362ad179a169c877fcb : SUCCESS in 4m 44s\n- codegenerator-openapi-shared-file-system-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/7e8aad1c3cde4300822f3590539ad8a0 : SUCCESS in 6m 43s\n- codegenerator-tox-publish-openapi-specs https://zuul.opendev.org/t/openstack/build/ce89079d0ce94724afa69ba911d763a2 : SUCCESS in 3m 36s\n- codegenerator-rust-all https://zuul.opendev.org/t/openstack/build/b0ef084185a74097a9343e7f10091bb6 : SUCCESS in 1h 03m 11s","accounts_in_message":[],"_revision_number":1},{"id":"3a20ada8a8c71259da35ac546caff47d2b4d0748","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2025-06-30 14:33:00.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"33ffa17abee074677ee00b799f5bd908821b4a2f","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-06-30 14:33:24.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"f9d0dd67fa3f63cfe63193ce7c50f2799f3ce912","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-06-30 16:02:13.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7677a4d41624452494b8fafb5fb5feb9\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c96402b6f93b4b5aba32b04bc44dc8ab : SUCCESS in 3m 56s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/09ac6c6584034376bfa99a66b7108862 : SUCCESS in 2m 04s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/524c2d6773e242c09dc3e5ff04ed3ab9 : SUCCESS in 5m 40s\n- codegenerator-openapi-baremetal-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/79ed141211ea47de86c24c732c621f83 : SUCCESS in 2m 56s\n- codegenerator-openapi-block-storage-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/4c5455a060cf4367ad0cce263e793528 : SUCCESS in 6m 23s\n- codegenerator-openapi-compute-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/ab32511df56044f5a263f16f0272dc21 : SUCCESS in 4m 49s\n- codegenerator-openapi-container-infrastructure-management-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/0934c0af791b4d1c8578756a49f0a8e8 : SUCCESS in 5m 04s\n- codegenerator-openapi-dns-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/bde0ad42a04040ceae8bbca14d5a2834 : SUCCESS in 3m 15s\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/981c176eb0c34a03bcf389b9c14ea3e6 : SUCCESS in 6m 29s\n- codegenerator-openapi-image-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/28695f3b968a4545bd9f7306eb138f50 : SUCCESS in 5m 46s\n- codegenerator-openapi-key-manager-tips https://zuul.opendev.org/t/openstack/build/b84d25ebce2242538e0f5e14b3c0547e : SUCCESS in 4m 25s\n- codegenerator-openapi-load-balancing-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/ec13eca9547e4bf38acedd285065fbeb : SUCCESS in 5m 15s\n- codegenerator-openapi-network-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/c01a345c94af45eab544d952b8b2c54e : SUCCESS in 7m 04s\n- codegenerator-openapi-object-store-static https://zuul.opendev.org/t/openstack/build/92ee2cce710a4bcea449e2a17b94b34d : SUCCESS in 1m 29s\n- codegenerator-openapi-placement-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/24ca98f644874e918262769d7255bdc7 : SUCCESS in 4m 56s\n- codegenerator-openapi-shared-file-system-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/835078120714475f8c00577d12512b12 : SUCCESS in 6m 30s\n- codegenerator-tox-publish-openapi-specs https://zuul.opendev.org/t/openstack/build/6055e0aaccf44f6780dd9650e6dac787 : SUCCESS in 3m 13s\n- codegenerator-rust-all https://zuul.opendev.org/t/openstack/build/2c2cef66f93144668cf5f7b6f83e7a8d : SUCCESS in 55m 54s","accounts_in_message":[],"_revision_number":1},{"id":"84cabf48b672812701b3b64495920ab30ebe38a5","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-06-30 16:02:13.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"885a0051075f5c3d5d25a9de9c36d4aaf438cf1d","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-06-30 16:03:13.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/85c3f205856641f4b67ff9a1f6493ecd\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/78a04c4d53ee4899b99f813d35d31750 : SUCCESS in 40s\n- codegenerator-propose-rust-openstack-change https://zuul.opendev.org/t/openstack/build/e06dd519281c485590ec1ad71bc0fddb : SUCCESS in 29s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"87ff2fe25e6c4441b0422d8c71ab8cd910bc03b3","revisions":{"87ff2fe25e6c4441b0422d8c71ab8cd910bc03b3":{"kind":"REWORK","_number":1,"created":"2025-06-05 16:57:00.000000000","uploader":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"ref":"refs/changes/85/951885/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/codegenerator","ref":"refs/changes/85/951885/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/codegenerator refs/changes/85/951885/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/codegenerator refs/changes/85/951885/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/codegenerator refs/changes/85/951885/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/codegenerator refs/changes/85/951885/1"}}},"commit":{"parents":[{"commit":"9872d0f5901ae4d8f52fd8fa3ffbe01ae95bd889","subject":"Use operation_type when operation_name is empty","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/codegenerator/commit/9872d0f5901ae4d8f52fd8fa3ffbe01ae95bd889"}]}],"author":{"name":"Gorka Eguileor","email":"geguileo@redhat.com","date":"2025-05-20 17:08:17.000000000","tz":120},"committer":{"name":"Gorka Eguileor","email":"geguileo@redhat.com","date":"2025-06-05 16:52:44.000000000","tz":120},"subject":"YAML version support","message":"YAML version support\n\nWhen exporting OpenAPI in YAML format we are exporting in YAML version\n1.2, which is the latest. The problem with that is that there are tools\nthat use the PyYAML [1] python package to read these files, and that\npackage only supports YAML v1.1, which will lead to reading things\nincorrectly.\n\nAn example is with booleans.\n\nIn v1.1 a lot of values are considered as booleans (case insensitive):\ntrue, false, 1, 0, off, on, no, yes... But in v1.2 only true and false\nare considered booleans, so the others don\u0027t need to be quoted.\n\nAs an example we were generating something like this:\n\n```\n        os_hypervisors_with_servers:\n          in: query\n          name: with_servers\n          schema:\n            type:\n              - boolean\n              - string\n            enum:\n              - true\n              - \u0027True\u0027\n              - \u0027TRUE\u0027\n              - \u0027true\u0027\n              - \u00271\u0027\n              - ON\n              - On\n              - on\n              - YES\n              - Yes\n              - yes\n              - false\n              - \u0027False\u0027\n              - \u0027FALSE\u0027\n              - \u0027false\u0027\n              - \u00270\u0027\n              - OFF\n              - Off\n              - off\n              - NO\n              - No\n              - no\n          x-openstack:\n            min-ver: \u00272.53\u0027\n```\n\nWhich is incorrectly interpreted by PyYAML like this:\n\n```\n            enum:\n              - true\n              - \u0027True\u0027\n              - \u0027TRUE\u0027\n              - \u0027true\u0027\n              - \u00271\u0027\n              - true\n              - true\n              - true\n              - true\n              - true\n              - true\n              - false\n              - \u0027False\u0027\n              - \u0027FALSE\u0027\n              - \u0027false\u0027\n              - \u00270\u0027\n              - false\n              - false\n              - false\n              - false\n              - false\n              - false ```\n```\n\nTo fix this we enable our tool to output the specs in v1.1 with a new\nparameter `--yaml-version` so that when it\u0027s set to 1.1 it will quote\nall booleans that in v1.1 could be misinterpreted.\n\n[1]: https://pypi.org/project/PyYAML/\n\nChange-Id: I7236f6a94ccb2e92a086c16895efa4dc557460c4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/codegenerator/commit/87ff2fe25e6c4441b0422d8c71ab8cd910bc03b3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/codegenerator/commit/87ff2fe25e6c4441b0422d8c71ab8cd910bc03b3"}]},"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":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}}]}],"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":{}}},{"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":{}}},{"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":{}}}]}
