)]}'
{"bandit/cli/main.py":[{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"802de8aa4b8422c328efd75ff1be6511e7d8465a","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    if not b_mgr.has_tests:"},{"line_number":288,"context_line":"        logger.error(\u0027Could not find any tests to apply, please check \u0027"},{"line_number":289,"context_line":"                     \u0027the configuration.\u0027)"},{"line_number":290,"context_line":"        sys.exit(2)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    # initiate file discovery step within Bandit Manager"},{"line_number":293,"context_line":"    b_mgr.discover_files(args.targets, args.recursive, args.excluded_paths)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_b9a51005","side":"PARENT","line":290,"updated":"2016-01-21 19:34:52.000000000","message":"Should we not quit on no tests now, or are we doing it elsewhere?","commit_id":"7f9524e63ef38c73584c4032f87a1b24a04d1a60"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"18f5453017b6431a8bb4f887e1a68752d2a4667a","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    if not b_mgr.has_tests:"},{"line_number":288,"context_line":"        logger.error(\u0027Could not find any tests to apply, please check \u0027"},{"line_number":289,"context_line":"                     \u0027the configuration.\u0027)"},{"line_number":290,"context_line":"        sys.exit(2)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    # initiate file discovery step within Bandit Manager"},{"line_number":293,"context_line":"    b_mgr.discover_files(args.targets, args.recursive, args.excluded_paths)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_36e6e1b0","side":"PARENT","line":290,"in_reply_to":"9a68dd71_0e73af4e","updated":"2016-01-22 14:37:28.000000000","message":"this is restored in https://review.openstack.org/#/c/268387/","commit_id":"7f9524e63ef38c73584c4032f87a1b24a04d1a60"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"afc6571d4cae5ecc43dd60dd40a069839e1682d8","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    if not b_mgr.has_tests:"},{"line_number":288,"context_line":"        logger.error(\u0027Could not find any tests to apply, please check \u0027"},{"line_number":289,"context_line":"                     \u0027the configuration.\u0027)"},{"line_number":290,"context_line":"        sys.exit(2)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    # initiate file discovery step within Bandit Manager"},{"line_number":293,"context_line":"    b_mgr.discover_files(args.targets, args.recursive, args.excluded_paths)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_d67c25b7","side":"PARENT","line":290,"in_reply_to":"9a68dd71_36e6e1b0","updated":"2016-01-22 14:39:15.000000000","message":"sorry, wrong URL, its here https://review.openstack.org/#/c/270932/","commit_id":"7f9524e63ef38c73584c4032f87a1b24a04d1a60"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"d99eba48fea1b95ce0423194adad97830e8728ee","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    if not b_mgr.has_tests:"},{"line_number":288,"context_line":"        logger.error(\u0027Could not find any tests to apply, please check \u0027"},{"line_number":289,"context_line":"                     \u0027the configuration.\u0027)"},{"line_number":290,"context_line":"        sys.exit(2)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    # initiate file discovery step within Bandit Manager"},{"line_number":293,"context_line":"    b_mgr.discover_files(args.targets, args.recursive, args.excluded_paths)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_0e73af4e","side":"PARENT","line":290,"in_reply_to":"9a68dd71_b9a51005","updated":"2016-01-21 21:30:55.000000000","message":"Until the follow on patch lands we always have at least one test, the blacklist, so this logic isn\u0027t valid. I\u0027ll add something back into that patch","commit_id":"7f9524e63ef38c73584c4032f87a1b24a04d1a60"}],"bandit/core/extension_loader.py":[{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"19d601297f5f003ed38480d3a35af5224351261b","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            namespace\u003dformatters_namespace,"},{"line_number":35,"context_line":"            # We don\u0027t want to call the formatter when we load it."},{"line_number":36,"context_line":"            invoke_on_load\u003dFalse,"},{"line_number":37,"context_line":"            # We don\u0027t care if the extension doesn\u0027t have the dependencies it"},{"line_number":38,"context_line":"            # needs to start up."},{"line_number":39,"context_line":"            verify_requirements\u003dFalse,"},{"line_number":40,"context_line":"            )"},{"line_number":41,"context_line":"        self.formatters \u003d list(self.formatters_mgr)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_678aa0c1","side":"PARENT","line":38,"range":{"start_line":37,"start_character":10,"end_line":38,"end_character":32},"updated":"2016-01-21 16:22:55.000000000","message":"Why was it necessary to delete these comments?","commit_id":"7f9524e63ef38c73584c4032f87a1b24a04d1a60"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"faa6dba49f1d5cdd71d7f046bf2ebfd0a12d9285","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            namespace\u003dformatters_namespace,"},{"line_number":35,"context_line":"            # We don\u0027t want to call the formatter when we load it."},{"line_number":36,"context_line":"            invoke_on_load\u003dFalse,"},{"line_number":37,"context_line":"            # We don\u0027t care if the extension doesn\u0027t have the dependencies it"},{"line_number":38,"context_line":"            # needs to start up."},{"line_number":39,"context_line":"            verify_requirements\u003dFalse,"},{"line_number":40,"context_line":"            )"},{"line_number":41,"context_line":"        self.formatters \u003d list(self.formatters_mgr)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_9b8369cc","side":"PARENT","line":38,"range":{"start_line":37,"start_character":10,"end_line":38,"end_character":32},"in_reply_to":"9a68dd71_678aa0c1","updated":"2016-01-21 17:34:50.000000000","message":"the code is self documenting, the comments were superfluous.","commit_id":"7f9524e63ef38c73584c4032f87a1b24a04d1a60"}],"bandit/core/test_set.py":[{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"802de8aa4b8422c328efd75ff1be6511e7d8465a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            if len(inc):"},{"line_number":35,"context_line":"                self.plugins \u003d [p for p in self.plugins if p.name in inc]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            if len(exc):"},{"line_number":38,"context_line":"                self.plugins \u003d [p for p in self.plugins if p.name not in exc]"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        self._load_tests(config, self.plugins)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_9947ec1c","line":37,"updated":"2016-01-21 19:34:52.000000000","message":"we actually do want to enforce only one or the other, although perhaps we can do this higher up?","commit_id":"ae1cff7fae600e90b8f5202cec29c45fca72f5d3"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"d99eba48fea1b95ce0423194adad97830e8728ee","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            if len(inc):"},{"line_number":35,"context_line":"                self.plugins \u003d [p for p in self.plugins if p.name in inc]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            if len(exc):"},{"line_number":38,"context_line":"                self.plugins \u003d [p for p in self.plugins if p.name not in exc]"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        self._load_tests(config, self.plugins)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_0e55ef1b","line":37,"in_reply_to":"9a68dd71_9947ec1c","updated":"2016-01-21 21:30:55.000000000","message":"This will work even if we have both, though the exclusion logic would be pointless lol. It could be enforced at a higher level if needs be, something like a config validation step perhaps.","commit_id":"ae1cff7fae600e90b8f5202cec29c45fca72f5d3"}]}
