)]}'
{".zuul.yaml":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"614f79a054bae68473169df005b7967e704cc0df","unresolved":false,"context_lines":[{"line_number":5,"context_line":"      - openstack-lower-constraints-jobs-horizon"},{"line_number":6,"context_line":"      - openstack-python-jobs-horizon"},{"line_number":7,"context_line":"      - openstack-python36-jobs-horizon"},{"line_number":8,"context_line":"      - openstack-python37-jobs"},{"line_number":9,"context_line":"      - publish-openstack-docs-pti"},{"line_number":10,"context_line":"      - release-notes-jobs-python3"},{"line_number":11,"context_line":"    check:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_b41b5771","line":8,"updated":"2019-06-21 06:09:23.000000000","message":"According to the requirement of community goal [1], all python 3 jobs should be replaced with openstack-python3-train-jobs.\n\n[1] https://governance.openstack.org/tc/goals/train/python3-updates.html","commit_id":"ec834ef0a751f822687c0dc758dd1d587b781c7d"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"20e301112607601c9d594599df6c6c8c8bb27e74","unresolved":false,"context_lines":[{"line_number":4,"context_line":"      - horizon-nodejs10-jobs"},{"line_number":5,"context_line":"      - openstack-lower-constraints-jobs-horizon"},{"line_number":6,"context_line":"      - openstack-python-jobs-horizon"},{"line_number":7,"context_line":"      - openstack-python3-train-jobs"},{"line_number":8,"context_line":"      - publish-openstack-docs-pti"},{"line_number":9,"context_line":"      - release-notes-jobs-python3"},{"line_number":10,"context_line":"    check:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fb8cfa7_4496684e","line":7,"range":{"start_line":7,"start_character":8,"end_line":7,"end_character":36},"updated":"2019-06-30 23:12:38.000000000","message":"Switch to \u0027openstack-python3-train-jobs-horizon\u0027 should be the right approach.","commit_id":"11252028688793e2f93e7fd83e13f70ff4900989"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"05cd158f4334d3bbe7f29d1a4312bad4d803bd86","unresolved":false,"context_lines":[{"line_number":4,"context_line":"      - horizon-nodejs10-jobs"},{"line_number":5,"context_line":"      - openstack-lower-constraints-jobs-horizon"},{"line_number":6,"context_line":"      - openstack-python-jobs-horizon"},{"line_number":7,"context_line":"      - openstack-python3-train-jobs"},{"line_number":8,"context_line":"      - publish-openstack-docs-pti"},{"line_number":9,"context_line":"      - release-notes-jobs-python3"},{"line_number":10,"context_line":"    check:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fb8cfa7_049cf067","line":7,"range":{"start_line":7,"start_character":8,"end_line":7,"end_character":36},"in_reply_to":"9fb8cfa7_4496684e","updated":"2019-06-30 23:13:53.000000000","message":"because we are using *-horizon job template in before","commit_id":"11252028688793e2f93e7fd83e13f70ff4900989"}]}
