)]}'
{"tox.ini":[{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"4278df26e7f6a64c80957e01e9b40c4fe9f50b16","unresolved":false,"context_lines":[{"line_number":14,"context_line":"usedevelop \u003d True"},{"line_number":15,"context_line":"install_command \u003d pip install {opts} {packages}"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"deps \u003d -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/train}"},{"line_number":18,"context_line":"        -r{toxinidir}/test-requirements.txt"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# By default stestr will set concurrency"}],"source_content_type":"text/x-properties","patch_set":2,"id":"bfb3d3c7_f0458271","line":17,"range":{"start_line":17,"start_character":86,"end_line":17,"end_character":91},"updated":"2019-05-21 02:57:55.000000000","message":"please master not train","commit_id":"ca302b78a5cb1d7398bb638d3c2107fcff80289a"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"4278df26e7f6a64c80957e01e9b40c4fe9f50b16","unresolved":false,"context_lines":[{"line_number":35,"context_line":"basepython \u003d python3"},{"line_number":36,"context_line":"whitelist_externals \u003d rm"},{"line_number":37,"context_line":"deps \u003d"},{"line_number":38,"context_line":"    -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/train}"},{"line_number":39,"context_line":"    -r{toxinidir}/doc/requirements.txt"},{"line_number":40,"context_line":"commands \u003d"},{"line_number":41,"context_line":"  rm -rf api-ref/build"}],"source_content_type":"text/x-properties","patch_set":2,"id":"bfb3d3c7_104b7684","line":38,"updated":"2019-05-21 02:57:55.000000000","message":"ditto","commit_id":"ca302b78a5cb1d7398bb638d3c2107fcff80289a"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"4278df26e7f6a64c80957e01e9b40c4fe9f50b16","unresolved":false,"context_lines":[{"line_number":44,"context_line":"[testenv:releasenotes]"},{"line_number":45,"context_line":"basepython \u003d python3"},{"line_number":46,"context_line":"deps \u003d"},{"line_number":47,"context_line":"  -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/train}"},{"line_number":48,"context_line":"  -r{toxinidir}/requirements.txt"},{"line_number":49,"context_line":"  -r{toxinidir}/doc/requirements.txt"},{"line_number":50,"context_line":"commands \u003d sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html"}],"source_content_type":"text/x-properties","patch_set":2,"id":"bfb3d3c7_b05f0a40","line":47,"updated":"2019-05-21 02:57:55.000000000","message":"ditto","commit_id":"ca302b78a5cb1d7398bb638d3c2107fcff80289a"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"4278df26e7f6a64c80957e01e9b40c4fe9f50b16","unresolved":false,"context_lines":[{"line_number":132,"context_line":"[testenv:docs]"},{"line_number":133,"context_line":"basepython \u003d python3"},{"line_number":134,"context_line":"deps \u003d"},{"line_number":135,"context_line":"  -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/train}"},{"line_number":136,"context_line":"  -r{toxinidir}/requirements.txt"},{"line_number":137,"context_line":"  -r{toxinidir}/doc/requirements.txt"},{"line_number":138,"context_line":"commands \u003d"}],"source_content_type":"text/x-properties","patch_set":2,"id":"bfb3d3c7_d05cfe4c","line":135,"updated":"2019-05-21 02:57:55.000000000","message":"ditto","commit_id":"ca302b78a5cb1d7398bb638d3c2107fcff80289a"}]}
