)]}'
{"nova_powervm/tests/virt/powervm/test_inventory.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"85cf4ba18b9a76ba415af11e7a79af14af41932c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright IBM Corp. and contributors"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f79a3b5_bd8baabd","line":1,"updated":"2018-08-16 12:50:08.000000000","message":"add a test case demonstrating that unquoted hex values are interpreted as ints if they don\u0027t contain A-F and therefore fail schema validation.\n\nThis is also something it wouldn\u0027t hurt to document somewhere, though it\u0027s a quirk of yaml and not specific to our code in any way.","commit_id":"c9f435beef820877d7a801282d781cfa6e0acd7f"}],"nova_powervm/virt/powervm/inventory.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"1441c036b8fa3bdc1f54be0e645fe17feebd74c9","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    :raise: jsonschema.exceptions.ValidationError if the specified file does"},{"line_number":41,"context_line":"            not validate against the schema."},{"line_number":42,"context_line":"    \"\"\""},{"line_number":43,"context_line":"    with open(path) as f:"},{"line_number":44,"context_line":"        rules \u003d yaml.load(f)"},{"line_number":45,"context_line":"    jsonschema.validate(rules, _load_inventory_schema())"},{"line_number":46,"context_line":"    return {Rule(name, rule_data) for name, rule_data in rules.items()}"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_acb17049","line":43,"range":{"start_line":43,"start_character":4,"end_line":43,"end_character":24},"updated":"2018-08-14 16:09:43.000000000","message":"Verify ownership/perms first (how?)","commit_id":"cbdf230ae132a9ed00b80ecc1cc365f71922715e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"1441c036b8fa3bdc1f54be0e645fe17feebd74c9","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            not validate against the schema."},{"line_number":42,"context_line":"    \"\"\""},{"line_number":43,"context_line":"    with open(path) as f:"},{"line_number":44,"context_line":"        rules \u003d yaml.load(f)"},{"line_number":45,"context_line":"    jsonschema.validate(rules, _load_inventory_schema())"},{"line_number":46,"context_line":"    return {Rule(name, rule_data) for name, rule_data in rules.items()}"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_4ca1bcf7","line":44,"range":{"start_line":44,"start_character":21,"end_line":44,"end_character":25},"updated":"2018-08-14 16:09:43.000000000","message":"Use safe_load (no code execution)","commit_id":"cbdf230ae132a9ed00b80ecc1cc365f71922715e"},{"author":{"_account_id":27961,"name":"Konstantinos Samaras-Tsakiris","email":"konstantinos.samaras-tsakiris@cern.ch","username":"kosamara"},"change_message_id":"989ad702f55bb23904b01c08133e4b17ab75948e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            not validate against the schema."},{"line_number":42,"context_line":"    \"\"\""},{"line_number":43,"context_line":"    with open(path) as f:"},{"line_number":44,"context_line":"        rules \u003d yaml.load(f)"},{"line_number":45,"context_line":"    jsonschema.validate(rules, _load_inventory_schema())"},{"line_number":46,"context_line":"    return {Rule(name, rule_data) for name, rule_data in rules.items()}"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f79a3b5_509d5455","line":44,"updated":"2018-08-20 15:28:52.000000000","message":"safe_load seems to be the same as load, just mentioning: https://github.com/yaml/pyyaml/blob/master/lib/yaml/__init__.py#L77","commit_id":"c9f435beef820877d7a801282d781cfa6e0acd7f"}],"nova_powervm/virt/powervm/inventory_schema.yaml":[{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"f8d23aa2e17f5d2c79e7cffa031d6ce139abf626","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            type: string"},{"line_number":47,"context_line":"            pattern: ^[0-9A-F]{2}$"},{"line_number":48,"context_line":"            description: pvmctl ioslot list -d pci_rev_id"},{"line_number":49,"context_line":"          feature_codes:"},{"line_number":50,"context_line":"            type: string"},{"line_number":51,"context_line":"            description: pvmctl ioslot list -d feat_codes"},{"line_number":52,"context_line":"          drc_index:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5f7c97a3_ee3891d4","line":49,"updated":"2018-07-20 18:44:48.000000000","message":"we need to make a decision on the spec comments that could affect this.","commit_id":"e525f212156cfbe118e070fd9941aa7a8aeaf85d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b68116f066e1a49909fbfd2122f9875502ad9939","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            type: string"},{"line_number":47,"context_line":"            pattern: ^[0-9A-F]{2}$"},{"line_number":48,"context_line":"            description: pvmctl ioslot list -d pci_rev_id"},{"line_number":49,"context_line":"          feature_codes:"},{"line_number":50,"context_line":"            type: string"},{"line_number":51,"context_line":"            description: pvmctl ioslot list -d feat_codes"},{"line_number":52,"context_line":"          drc_index:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5f7c97a3_148160a0","line":49,"in_reply_to":"5f7c97a3_ee3891d4","updated":"2018-07-20 20:47:58.000000000","message":"Updated, see what you think.","commit_id":"e525f212156cfbe118e070fd9941aa7a8aeaf85d"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"24c8bf4164863484824ee336bd641342d3032d25","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            description: pvmctl ioslot list -d pci_rev_id"},{"line_number":49,"context_line":"          feature_codes:"},{"line_number":50,"context_line":"            type: array"},{"line_number":51,"context_line":"            # At least one required; else omit the section"},{"line_number":52,"context_line":"            minItems: 1"},{"line_number":53,"context_line":"            description:"},{"line_number":54,"context_line":"              Each entry is a comma-separated list of feature codes parsed from"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5f7c97a3_b452ec34","line":51,"updated":"2018-07-20 20:55:01.000000000","message":"should be able to pattern this... comma-separated list of 4 alphanumeric character strings","commit_id":"1e12743618d9969df06df5f735e4fa6214b9f73a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"559883ca9f53d9f28e4ea4b0d71a7899b3ebc832","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            description: pvmctl ioslot list -d pci_rev_id"},{"line_number":49,"context_line":"          feature_codes:"},{"line_number":50,"context_line":"            type: array"},{"line_number":51,"context_line":"            # At least one required; else omit the section"},{"line_number":52,"context_line":"            minItems: 1"},{"line_number":53,"context_line":"            description:"},{"line_number":54,"context_line":"              Each entry is a comma-separated list of feature codes parsed from"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5f7c97a3_48109858","line":51,"in_reply_to":"5f7c97a3_28ec3c26","updated":"2018-07-20 22:00:55.000000000","message":"Done","commit_id":"1e12743618d9969df06df5f735e4fa6214b9f73a"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"f91bf99937952e9703d556776891524653a6b3a4","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            description: pvmctl ioslot list -d pci_rev_id"},{"line_number":49,"context_line":"          feature_codes:"},{"line_number":50,"context_line":"            type: array"},{"line_number":51,"context_line":"            # At least one required; else omit the section"},{"line_number":52,"context_line":"            minItems: 1"},{"line_number":53,"context_line":"            description:"},{"line_number":54,"context_line":"              Each entry is a comma-separated list of feature codes parsed from"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5f7c97a3_28ec3c26","line":51,"in_reply_to":"5f7c97a3_b452ec34","updated":"2018-07-20 21:09:17.000000000","message":"on second thought... as commented in the spec, just remove feature_codes from our schema entirely. Let\u0027s not support that until/unless we have to.","commit_id":"1e12743618d9969df06df5f735e4fa6214b9f73a"},{"author":{"_account_id":27961,"name":"Konstantinos Samaras-Tsakiris","email":"konstantinos.samaras-tsakiris@cern.ch","username":"kosamara"},"change_message_id":"81d7392619f7c7fc17d1c0bfab8fae0540f3c86f","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        additionalProperties: false"},{"line_number":58,"context_line":"      resource_class:"},{"line_number":59,"context_line":"        type: string"},{"line_number":60,"context_line":"        pattern: ^[A-Z0-9_]+$"},{"line_number":61,"context_line":"        default: CUSTOM_IOSLOT"},{"line_number":62,"context_line":"        description:"},{"line_number":63,"context_line":"          The resource class of the inventory unit for matching devices."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"3f79a3b5_25435515","line":60,"range":{"start_line":60,"start_character":17,"end_line":60,"end_character":29},"updated":"2018-08-13 07:53:10.000000000","message":"should we also enforce the \"CUSTOM_\" prefix here?","commit_id":"cbdf230ae132a9ed00b80ecc1cc365f71922715e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2471d7c986fb254869e73d4c6b2bca3c5f6051ee","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        additionalProperties: false"},{"line_number":58,"context_line":"      resource_class:"},{"line_number":59,"context_line":"        type: string"},{"line_number":60,"context_line":"        pattern: ^[A-Z0-9_]+$"},{"line_number":61,"context_line":"        default: CUSTOM_IOSLOT"},{"line_number":62,"context_line":"        description:"},{"line_number":63,"context_line":"          The resource class of the inventory unit for matching devices."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"3f79a3b5_8359fa8e","line":60,"range":{"start_line":60,"start_character":17,"end_line":60,"end_character":29},"in_reply_to":"3f79a3b5_1480c5be","updated":"2018-08-13 15:27:01.000000000","message":"Just so :)","commit_id":"cbdf230ae132a9ed00b80ecc1cc365f71922715e"},{"author":{"_account_id":27961,"name":"Konstantinos Samaras-Tsakiris","email":"konstantinos.samaras-tsakiris@cern.ch","username":"kosamara"},"change_message_id":"fbc18752c9f54dc995910f282e7af3304e3a73c8","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        additionalProperties: false"},{"line_number":58,"context_line":"      resource_class:"},{"line_number":59,"context_line":"        type: string"},{"line_number":60,"context_line":"        pattern: ^[A-Z0-9_]+$"},{"line_number":61,"context_line":"        default: CUSTOM_IOSLOT"},{"line_number":62,"context_line":"        description:"},{"line_number":63,"context_line":"          The resource class of the inventory unit for matching devices."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"3f79a3b5_1480c5be","line":60,"range":{"start_line":60,"start_character":17,"end_line":60,"end_character":29},"in_reply_to":"3f79a3b5_25435515","updated":"2018-08-13 12:48:13.000000000","message":"no we shouldn\u0027t, this needs to work with standard RC too","commit_id":"cbdf230ae132a9ed00b80ecc1cc365f71922715e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f4884373aa908e8c7cfbb5fdff23906208ad1cca","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        additionalProperties: false"},{"line_number":58,"context_line":"      resource_class:"},{"line_number":59,"context_line":"        type: string"},{"line_number":60,"context_line":"        pattern: ^[A-Z0-9_]+$"},{"line_number":61,"context_line":"        default: CUSTOM_IOSLOT"},{"line_number":62,"context_line":"        description:"},{"line_number":63,"context_line":"          The resource class of the inventory unit for matching devices."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"3f79a3b5_95bda5d9","line":60,"range":{"start_line":60,"start_character":17,"end_line":60,"end_character":29},"in_reply_to":"3f79a3b5_8359fa8e","updated":"2018-08-13 22:17:01.000000000","message":"...we probably should limit them to 255c though.","commit_id":"cbdf230ae132a9ed00b80ecc1cc365f71922715e"},{"author":{"_account_id":27961,"name":"Konstantinos Samaras-Tsakiris","email":"konstantinos.samaras-tsakiris@cern.ch","username":"kosamara"},"change_message_id":"81d7392619f7c7fc17d1c0bfab8fae0540f3c86f","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        minItems: 1"},{"line_number":68,"context_line":"        items:"},{"line_number":69,"context_line":"          type: string"},{"line_number":70,"context_line":"          pattern: ^[A-Z0-9_]+$"},{"line_number":71,"context_line":"        description:"},{"line_number":72,"context_line":"          A list of traits to include on the device\u0027s resource provider, in"},{"line_number":73,"context_line":"          addition to those generated automatically e.g. based on discovered"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"3f79a3b5_653dcd8d","line":70,"range":{"start_line":70,"start_character":19,"end_line":70,"end_character":31},"updated":"2018-08-13 07:53:10.000000000","message":"this should be ^CUSTOM_[A-Z0-9_]+$","commit_id":"cbdf230ae132a9ed00b80ecc1cc365f71922715e"},{"author":{"_account_id":27961,"name":"Konstantinos Samaras-Tsakiris","email":"konstantinos.samaras-tsakiris@cern.ch","username":"kosamara"},"change_message_id":"fbc18752c9f54dc995910f282e7af3304e3a73c8","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        minItems: 1"},{"line_number":68,"context_line":"        items:"},{"line_number":69,"context_line":"          type: string"},{"line_number":70,"context_line":"          pattern: ^[A-Z0-9_]+$"},{"line_number":71,"context_line":"        description:"},{"line_number":72,"context_line":"          A list of traits to include on the device\u0027s resource provider, in"},{"line_number":73,"context_line":"          addition to those generated automatically e.g. based on discovered"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"3f79a3b5_941e15b9","line":70,"range":{"start_line":70,"start_character":19,"end_line":70,"end_character":31},"in_reply_to":"3f79a3b5_653dcd8d","updated":"2018-08-13 12:48:13.000000000","message":"No it shouldn\u0027t; I realized that this needs to work with standard traits too.","commit_id":"cbdf230ae132a9ed00b80ecc1cc365f71922715e"}],"nova_powervm/virt/powervm/passthrough_schema.yaml":[{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"d4ecf9b7782b20904e722b4f354d80ce291a843b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            description: pvmctl ioslot list -d drc_index"},{"line_number":56,"context_line":"          drc_name:"},{"line_number":57,"context_line":"            type: string"},{"line_number":58,"context_line":"            # TODO(efried): What\u0027s a reasonable pattern here?"},{"line_number":59,"context_line":"            description: Physical location code, pvmctl ioslot list -d drc_name"},{"line_number":60,"context_line":"        minProperties: 1"},{"line_number":61,"context_line":"        additionalProperties: false"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5f7c97a3_b0525367","line":58,"updated":"2018-07-17 20:12:16.000000000","message":"get this addressed before merging?","commit_id":"d831e736987b34fe3895cb31c6230302ae3d73c4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"6a84a27f89a07ef42c2a2646479e2f7e0cb8a7cf","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            description: pvmctl ioslot list -d drc_index"},{"line_number":56,"context_line":"          drc_name:"},{"line_number":57,"context_line":"            type: string"},{"line_number":58,"context_line":"            # TODO(efried): What\u0027s a reasonable pattern here?"},{"line_number":59,"context_line":"            description: Physical location code, pvmctl ioslot list -d drc_name"},{"line_number":60,"context_line":"        minProperties: 1"},{"line_number":61,"context_line":"        additionalProperties: false"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5f7c97a3_77bfbf5f","line":58,"in_reply_to":"5f7c97a3_614dcb3a","updated":"2018-07-18 12:56:28.000000000","message":"efried [17:03]\nHey man, is there a solid regex I can use for a DRC name?\nseroyer [20:10]\nI\u0027m sure it would be possible to create one, but it would be exceedingly complicated, just like DRC names.  There are many different formats.","commit_id":"d831e736987b34fe3895cb31c6230302ae3d73c4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"6cb8a8c6c2ce6c644c771cbf9151b0ab87359959","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            description: pvmctl ioslot list -d drc_index"},{"line_number":56,"context_line":"          drc_name:"},{"line_number":57,"context_line":"            type: string"},{"line_number":58,"context_line":"            # TODO(efried): What\u0027s a reasonable pattern here?"},{"line_number":59,"context_line":"            description: Physical location code, pvmctl ioslot list -d drc_name"},{"line_number":60,"context_line":"        minProperties: 1"},{"line_number":61,"context_line":"        additionalProperties: false"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5f7c97a3_614dcb3a","line":58,"in_reply_to":"5f7c97a3_b0525367","updated":"2018-07-17 22:39:44.000000000","message":"Not sure we want to, actually, for fear of winding up too restrictive. Particularly since we have no control over what the product guys are going to decide to stuff in there next. And today we\u0027ll only go to -P\u003cn\u003e-C\u003cn\u003e but then we\u0027ll have to add -T\u003cn\u003e when we do PFs and -V\u003cn\u003e when we do VFs... and then someday they\u0027ll add a -Q\u003cn\u003e that doesn\u0027t exist right now...\n\nIf we leave it unrestricted, we can support new and crazy shit without a schema update (and potentially even without a code update in some cases).\n\nI\u0027ll take the TODO out.","commit_id":"d831e736987b34fe3895cb31c6230302ae3d73c4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"6cb8a8c6c2ce6c644c771cbf9151b0ab87359959","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            description: Physical location code, pvmctl ioslot list -d drc_name"},{"line_number":60,"context_line":"        minProperties: 1"},{"line_number":61,"context_line":"        additionalProperties: false"},{"line_number":62,"context_line":"      allow:"},{"line_number":63,"context_line":"        type: boolean"},{"line_number":64,"context_line":"        default: true"},{"line_number":65,"context_line":"      resource_class:"},{"line_number":66,"context_line":"        type: string"},{"line_number":67,"context_line":"        pattern: ^[A-Z0-9_]+$"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5f7c97a3_4191af45","line":64,"range":{"start_line":62,"start_character":0,"end_line":64,"end_character":21},"updated":"2018-07-17 22:39:44.000000000","message":"nix this and related artifacts per https://review.openstack.org/#/c/579359/4/doc/source/specs/rocky/device-passthrough.rst@120\n\nBut ffs remember they were here, cause figuring out the anyOf schema chunk below took hours.","commit_id":"d831e736987b34fe3895cb31c6230302ae3d73c4"}],"requirements.txt":[{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"d4ecf9b7782b20904e722b4f354d80ce291a843b","unresolved":false,"context_lines":[{"line_number":13,"context_line":"pypowervm\u003e\u003d1.1.15 # Apache-2.0"},{"line_number":14,"context_line":"taskflow\u003e\u003d2.16.0 # Apache-2.0"},{"line_number":15,"context_line":"setuptools!\u003d24.0.0,!\u003d34.0.0,!\u003d34.0.1,!\u003d34.0.2,!\u003d34.0.3,!\u003d34.1.0,!\u003d34.1.1,!\u003d34.2.0,!\u003d34.3.0,!\u003d34.3.1,!\u003d34.3.2,!\u003d36.2.0,\u003e\u003d21.0.0 # PSF/ZPL"},{"line_number":16,"context_line":"jsonschema\u003e\u003d2.6.0,\u003c3.0.0 # MIT"}],"source_content_type":"text/plain","patch_set":3,"id":"5f7c97a3_b9f3299f","line":16,"updated":"2018-07-17 20:12:16.000000000","message":"I believe we also need to add pyyaml","commit_id":"d831e736987b34fe3895cb31c6230302ae3d73c4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"6cb8a8c6c2ce6c644c771cbf9151b0ab87359959","unresolved":false,"context_lines":[{"line_number":13,"context_line":"pypowervm\u003e\u003d1.1.15 # Apache-2.0"},{"line_number":14,"context_line":"taskflow\u003e\u003d2.16.0 # Apache-2.0"},{"line_number":15,"context_line":"setuptools!\u003d24.0.0,!\u003d34.0.0,!\u003d34.0.1,!\u003d34.0.2,!\u003d34.0.3,!\u003d34.1.0,!\u003d34.1.1,!\u003d34.2.0,!\u003d34.3.0,!\u003d34.3.1,!\u003d34.3.2,!\u003d36.2.0,\u003e\u003d21.0.0 # PSF/ZPL"},{"line_number":16,"context_line":"jsonschema\u003e\u003d2.6.0,\u003c3.0.0 # MIT"}],"source_content_type":"text/plain","patch_set":3,"id":"5f7c97a3_010df7e5","line":16,"in_reply_to":"5f7c97a3_b9f3299f","updated":"2018-07-17 22:39:44.000000000","message":"Done","commit_id":"d831e736987b34fe3895cb31c6230302ae3d73c4"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"671cb3cbe358acc8d28b266235971fc7808a0a4c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"pbr!\u003d2.1.0,\u003e\u003d2.0.0 # Apache-2.0"},{"line_number":6,"context_line":"Babel!\u003d2.4.0,\u003e\u003d2.3.4 # BSD"},{"line_number":7,"context_line":"six\u003e\u003d1.10.0 # MIT"},{"line_number":8,"context_line":"os-traits\u003e\u003d0.4.0 # Apache-2.0"},{"line_number":9,"context_line":"oslo.config\u003e\u003d5.2.0 # Apache-2.0"},{"line_number":10,"context_line":"oslo.log\u003e\u003d3.36.0 # Apache-2.0"},{"line_number":11,"context_line":"oslo.serialization!\u003d2.19.1,\u003e\u003d2.18.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":5,"id":"5f7c97a3_0b6dff65","line":8,"updated":"2018-07-18 20:18:56.000000000","message":"I confirmed that these new additions are already in lower-constraints.txt, so we\u0027re good there.","commit_id":"91459120af33e9d02bd86ccd8a265cfeacd018d7"}]}
