)]}'
{"tools/openstack_coverage.py":[{"author":{"_account_id":11029,"name":"Jamie Finnigan","email":"jamiefinnigan@gmail.com","username":"jamiefinnigan"},"change_message_id":"4fcc9235597b3a7df2ece0f4a9557e7b418d5da4","unresolved":false,"context_lines":[{"line_number":20,"context_line":"within the openstack-infra/project-config repository."},{"line_number":21,"context_line":"Parses out Bandit jobs and tests as defined within these configurations."},{"line_number":22,"context_line":"Prints the summary of results."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"TODO: Add detection / handling of bandit.yaml for each project."},{"line_number":25,"context_line":"TODO: Deal with different branch definitions in the Zuul layout.yaml."},{"line_number":26,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_9fc40060","side":"PARENT","line":23,"updated":"2015-09-01 23:56:26.000000000","message":"Add some explanation regarding the additional test-running functionality up here?","commit_id":"7ca6335158bb17e5f5b249bc0068e6a0b9758e6a"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"15f1aa7c323e466c756278a54d7c8b1602da3c31","unresolved":false,"context_lines":[{"line_number":20,"context_line":"within the openstack-infra/project-config repository."},{"line_number":21,"context_line":"Parses out Bandit jobs and tests as defined within these configurations."},{"line_number":22,"context_line":"Prints the summary of results."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"TODO: Add detection / handling of bandit.yaml for each project."},{"line_number":25,"context_line":"TODO: Deal with different branch definitions in the Zuul layout.yaml."},{"line_number":26,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_7a757a30","side":"PARENT","line":23,"in_reply_to":"da20952f_9fc40060","updated":"2015-09-02 00:16:57.000000000","message":"Done","commit_id":"7ca6335158bb17e5f5b249bc0068e6a0b9758e6a"},{"author":{"_account_id":11029,"name":"Jamie Finnigan","email":"jamiefinnigan@gmail.com","username":"jamiefinnigan"},"change_message_id":"4fcc9235597b3a7df2ece0f4a9557e7b418d5da4","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    parser \u003d argparse.ArgumentParser()"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    parser.add_argument(\u0027-t\u0027, \u0027--test\u0027, dest\u003d\u0027do_test\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":130,"context_line":"                        help\u003d\u0027Test upstream project Bandit gates.  This will\u0027"},{"line_number":131,"context_line":"                             \u0027clone each upstream project, run Bandit as \u0027"},{"line_number":132,"context_line":"                             \u0027configured in the tox environment, display pass \u0027"},{"line_number":133,"context_line":"                             \u0027status, and save output.\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_1feb10b2","line":130,"updated":"2015-09-01 23:56:26.000000000","message":"Needs a trailing space after \u0027will\u0027.","commit_id":"e4825d80ba8f996f51988d4c599a94ce3dfa206a"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"15f1aa7c323e466c756278a54d7c8b1602da3c31","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    parser \u003d argparse.ArgumentParser()"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    parser.add_argument(\u0027-t\u0027, \u0027--test\u0027, dest\u003d\u0027do_test\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":130,"context_line":"                        help\u003d\u0027Test upstream project Bandit gates.  This will\u0027"},{"line_number":131,"context_line":"                             \u0027clone each upstream project, run Bandit as \u0027"},{"line_number":132,"context_line":"                             \u0027configured in the tox environment, display pass \u0027"},{"line_number":133,"context_line":"                             \u0027status, and save output.\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_baa23299","line":130,"in_reply_to":"da20952f_1feb10b2","updated":"2015-09-02 00:16:57.000000000","message":"Done","commit_id":"e4825d80ba8f996f51988d4c599a94ce3dfa206a"},{"author":{"_account_id":11029,"name":"Jamie Finnigan","email":"jamiefinnigan@gmail.com","username":"jamiefinnigan"},"change_message_id":"4fcc9235597b3a7df2ece0f4a9557e7b418d5da4","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    for project in project_locations:"},{"line_number":187,"context_line":"        print \u0027\u003d\u0027 * len(TITLE)"},{"line_number":188,"context_line":"        print(\"Cloning project: {} from repo {}\"."},{"line_number":189,"context_line":"              format(project, project_locations[project]))"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_bf2464c6","line":188,"updated":"2015-09-01 23:56:26.000000000","message":"Add dir_name to this output?  \"Cloning project: {} from repo {} into {}\"?","commit_id":"e4825d80ba8f996f51988d4c599a94ce3dfa206a"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"15f1aa7c323e466c756278a54d7c8b1602da3c31","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    for project in project_locations:"},{"line_number":187,"context_line":"        print \u0027\u003d\u0027 * len(TITLE)"},{"line_number":188,"context_line":"        print(\"Cloning project: {} from repo {}\"."},{"line_number":189,"context_line":"              format(project, project_locations[project]))"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_dac60649","line":188,"in_reply_to":"da20952f_bf2464c6","updated":"2015-09-02 00:16:57.000000000","message":"Done","commit_id":"e4825d80ba8f996f51988d4c599a94ce3dfa206a"},{"author":{"_account_id":11029,"name":"Jamie Finnigan","email":"jamiefinnigan@gmail.com","username":"jamiefinnigan"},"change_message_id":"4fcc9235597b3a7df2ece0f4a9557e7b418d5da4","unresolved":false,"context_lines":[{"line_number":189,"context_line":"              format(project, project_locations[project]))"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        try:"},{"line_number":192,"context_line":"            subprocess.check_call([\u0027git\u0027, \u0027clone\u0027,"},{"line_number":193,"context_line":"                                   GIT_BASE + project_locations[project]])"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        except subprocess.CalledProcessError:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_fa1e6a5e","line":192,"updated":"2015-09-01 23:56:26.000000000","message":"I get an OSError if I don\u0027t have a \u0027git\u0027 binary in my path.  Maybe check if \u0027git\u0027 exists and error if not?","commit_id":"e4825d80ba8f996f51988d4c599a94ce3dfa206a"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"15f1aa7c323e466c756278a54d7c8b1602da3c31","unresolved":false,"context_lines":[{"line_number":189,"context_line":"              format(project, project_locations[project]))"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        try:"},{"line_number":192,"context_line":"            subprocess.check_call([\u0027git\u0027, \u0027clone\u0027,"},{"line_number":193,"context_line":"                                   GIT_BASE + project_locations[project]])"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        except subprocess.CalledProcessError:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_dafe0638","line":192,"in_reply_to":"da20952f_fa1e6a5e","updated":"2015-09-02 00:16:57.000000000","message":"Per our discussion we\u0027ll leave this to the user","commit_id":"e4825d80ba8f996f51988d4c599a94ce3dfa206a"},{"author":{"_account_id":11029,"name":"Jamie Finnigan","email":"jamiefinnigan@gmail.com","username":"jamiefinnigan"},"change_message_id":"4fcc9235597b3a7df2ece0f4a9557e7b418d5da4","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        print \u0027Running tox Bandit in directory {}\u0027.format(d)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        try:"},{"line_number":226,"context_line":"            subprocess.check_output([\u0027tox\u0027, \u0027-e\u0027, \u0027bandit\u0027],"},{"line_number":227,"context_line":"                                    stderr\u003dsubprocess.STDOUT)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        except subprocess.CalledProcessError as exc:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_1fec708e","line":226,"updated":"2015-09-01 23:56:26.000000000","message":"I don\u0027t have a \u0027tox\u0027 binary .. I do have a \u0027tox-2.7\u0027 binary.  Maybe just check if \u0027tox\u0027 exists and error if not?","commit_id":"e4825d80ba8f996f51988d4c599a94ce3dfa206a"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"15f1aa7c323e466c756278a54d7c8b1602da3c31","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        print \u0027Running tox Bandit in directory {}\u0027.format(d)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        try:"},{"line_number":226,"context_line":"            subprocess.check_output([\u0027tox\u0027, \u0027-e\u0027, \u0027bandit\u0027],"},{"line_number":227,"context_line":"                                    stderr\u003dsubprocess.STDOUT)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        except subprocess.CalledProcessError as exc:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_3a94e2e6","line":226,"in_reply_to":"da20952f_1fec708e","updated":"2015-09-02 00:16:57.000000000","message":"Per our discussion this will be up to the user","commit_id":"e4825d80ba8f996f51988d4c599a94ce3dfa206a"}]}
