)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"7185a1ab64da1f91cdc8d54373b51181a8df4c76","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This change adds a tool to perform basic JSONSchema validation of the"},{"line_number":10,"context_line":"reference/projects.yaml file."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Unfortunately the format of that file does not lend itself to easy"},{"line_number":13,"context_line":"validation, because it is structured as a mapping of project team"},{"line_number":14,"context_line":"names to data rather than a sequence of project objects. The"},{"line_number":15,"context_line":"deliverables portion of each project has a similar issue. To work"},{"line_number":16,"context_line":"around that, the tool loops over the data and validates each project"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7faddb67_e7232da6","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":10},"updated":"2019-07-30 20:41:20.000000000","message":"If I\u0027m reading the spec correctly then you can use additionalProperties (or patternProperties) to handle this.","commit_id":"3191ad61bf446c37483c41629783f98121a849b7"}],"openstack_governance/_check_schema.py":[{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"be0cea5e888b80f91891c3a764d4c67dda59a212","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\"\"\"Verify that all data files match the schema.\"\"\""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import argparse"},{"line_number":16,"context_line":"import pkgutil"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import jsonschema"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_6ed94e55","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":15},"updated":"2019-07-31 12:55:05.000000000","message":"This is unused I think?","commit_id":"8b5a2ea3ae745654cf6041894735bf504405ff2a"},{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"be0cea5e888b80f91891c3a764d4c67dda59a212","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def main():"},{"line_number":32,"context_line":"    parser \u003d argparse.ArgumentParser()"},{"line_number":33,"context_line":"    args \u003d parser.parse_args()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    errors \u003d []"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_0eda1a4a","line":33,"range":{"start_line":32,"start_character":0,"end_line":33,"end_character":30},"updated":"2019-07-31 12:55:05.000000000","message":"So is this?","commit_id":"8b5a2ea3ae745654cf6041894735bf504405ff2a"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"4339c95ce151bea93c645f8bf41ea59c6a2acf40","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def main():"},{"line_number":32,"context_line":"    parser \u003d argparse.ArgumentParser()"},{"line_number":33,"context_line":"    args \u003d parser.parse_args()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    errors \u003d []"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_ce8962ca","line":33,"range":{"start_line":32,"start_character":0,"end_line":33,"end_character":30},"in_reply_to":"7faddb67_0eda1a4a","updated":"2019-07-31 13:34:27.000000000","message":"Meh, it makes --help work (sort of) and one day we might want to add more arguments again so I left it.\n\nflake8 is broken though...","commit_id":"8b5a2ea3ae745654cf6041894735bf504405ff2a"}],"openstack_governance/projects_schema.yaml":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"7185a1ab64da1f91cdc8d54373b51181a8df4c76","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  mission:"},{"line_number":41,"context_line":"    type: \"string\""},{"line_number":42,"context_line":"  deliverables:"},{"line_number":43,"context_line":"    type: \"object\""},{"line_number":44,"context_line":"  tags:"},{"line_number":45,"context_line":"    type: \"array\""},{"line_number":46,"context_line":"    items:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_acce7c57","line":43,"updated":"2019-07-30 20:41:20.000000000","message":"IIUC you can use e.g.:\n\n  additionalProperties:\n    type: object\n      properties:\n        required:\n          - repos\n        repos:\n          type: array\n          items:\n            type: string\n            pattern: \"[^/]+/[^/]+\"\n          minItems: 1\n          uniqueItems: true\n        tags:\n          type: array\n          items:\n            type: string\n        release-management:\n          type: string\n          enum:\n            - none\n            - deprecated\n            - external\n\nto add a schema for this.","commit_id":"3191ad61bf446c37483c41629783f98121a849b7"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"7185a1ab64da1f91cdc8d54373b51181a8df4c76","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        name:"},{"line_number":59,"context_line":"          type: \"string\""},{"line_number":60,"context_line":"        email:"},{"line_number":61,"context_line":"          type: \"string\""},{"line_number":62,"context_line":"        expires-in:"},{"line_number":63,"context_line":"          type: \"date\""},{"line_number":64,"context_line":"        comment:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_074e896e","line":61,"updated":"2019-07-30 20:41:20.000000000","message":"Suggest adding:\n\n  format: email","commit_id":"3191ad61bf446c37483c41629783f98121a849b7"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"7185a1ab64da1f91cdc8d54373b51181a8df4c76","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        email:"},{"line_number":61,"context_line":"          type: \"string\""},{"line_number":62,"context_line":"        expires-in:"},{"line_number":63,"context_line":"          type: \"date\""},{"line_number":64,"context_line":"        comment:"},{"line_number":65,"context_line":"          type: \"string\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_3120a7ac","line":63,"updated":"2019-07-30 20:41:20.000000000","message":"We could just as easily do:\n\n  type: \"string\"\n  pattern: \"(January|July) 2[0-9]{3}\"\n\nand avoid having to change existing data.\n\nIf we\u0027re going to use the \"date\" type then I think we should change the name of the field to expires-on at the same time, otherwise it makes no sense.","commit_id":"3191ad61bf446c37483c41629783f98121a849b7"}]}
