)]}'
{"bandit/core/extension_loader.py":[{"author":{"_account_id":11029,"name":"Jamie Finnigan","email":"jamiefinnigan@gmail.com","username":"jamiefinnigan"},"change_message_id":"d11b778823b7348a250300315dd26a00b849e9c7","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        \u0027\u0027\u0027Validate that everything in the configured profiles looks good.\u0027\u0027\u0027"},{"line_number":96,"context_line":"        for inc in profile[\u0027include\u0027]:"},{"line_number":97,"context_line":"            if not self.check_id(inc):"},{"line_number":98,"context_line":"                raise ValueError(\u0027Unknown Test found in profile: %s\u0027 % inc)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        for exc in profile[\u0027exclude\u0027]:"},{"line_number":101,"context_line":"            if not self.check_id(exc):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_82ff65a9","line":98,"range":{"start_line":98,"start_character":42,"end_line":98,"end_character":46},"updated":"2016-03-16 17:55:32.000000000","message":"Case consistency - \"Unknown test...\"?","commit_id":"0d27bdb1dc6d3a3e5adb304f5042374c6dafd683"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"639b690b526b02728f46de22e0e2514cf1a2226a","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        \u0027\u0027\u0027Validate that everything in the configured profiles looks good.\u0027\u0027\u0027"},{"line_number":96,"context_line":"        for inc in profile[\u0027include\u0027]:"},{"line_number":97,"context_line":"            if not self.check_id(inc):"},{"line_number":98,"context_line":"                raise ValueError(\u0027Unknown Test found in profile: %s\u0027 % inc)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        for exc in profile[\u0027exclude\u0027]:"},{"line_number":101,"context_line":"            if not self.check_id(exc):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_423b9d38","line":98,"range":{"start_line":98,"start_character":42,"end_line":98,"end_character":46},"in_reply_to":"1af94dfe_82ff65a9","updated":"2016-03-16 17:59:06.000000000","message":"Done","commit_id":"0d27bdb1dc6d3a3e5adb304f5042374c6dafd683"},{"author":{"_account_id":11029,"name":"Jamie Finnigan","email":"jamiefinnigan@gmail.com","username":"jamiefinnigan"},"change_message_id":"d11b778823b7348a250300315dd26a00b849e9c7","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        for exc in profile[\u0027exclude\u0027]:"},{"line_number":101,"context_line":"            if not self.check_id(exc):"},{"line_number":102,"context_line":"                raise ValueError(\u0027Unknown Test found in profile: %s\u0027 % exc)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        union \u003d set(profile[\u0027include\u0027]) \u0026 set(profile[\u0027exclude\u0027])"},{"line_number":105,"context_line":"        if len(union) \u003e 0:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_22277165","line":102,"range":{"start_line":102,"start_character":42,"end_line":102,"end_character":46},"updated":"2016-03-16 17:55:32.000000000","message":"Case consistency - \"Unknown test...\"?","commit_id":"0d27bdb1dc6d3a3e5adb304f5042374c6dafd683"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"639b690b526b02728f46de22e0e2514cf1a2226a","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        for exc in profile[\u0027exclude\u0027]:"},{"line_number":101,"context_line":"            if not self.check_id(exc):"},{"line_number":102,"context_line":"                raise ValueError(\u0027Unknown Test found in profile: %s\u0027 % exc)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        union \u003d set(profile[\u0027include\u0027]) \u0026 set(profile[\u0027exclude\u0027])"},{"line_number":105,"context_line":"        if len(union) \u003e 0:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_8245a5b4","line":102,"range":{"start_line":102,"start_character":42,"end_line":102,"end_character":46},"in_reply_to":"1af94dfe_22277165","updated":"2016-03-16 17:59:06.000000000","message":"Done","commit_id":"0d27bdb1dc6d3a3e5adb304f5042374c6dafd683"},{"author":{"_account_id":11029,"name":"Jamie Finnigan","email":"jamiefinnigan@gmail.com","username":"jamiefinnigan"},"change_message_id":"d11b778823b7348a250300315dd26a00b849e9c7","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        union \u003d set(profile[\u0027include\u0027]) \u0026 set(profile[\u0027exclude\u0027])"},{"line_number":105,"context_line":"        if len(union) \u003e 0:"},{"line_number":106,"context_line":"            raise ValueError(\u0027None exclusive include/excule test sets: %s\u0027 %"},{"line_number":107,"context_line":"                             union)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def check_id(self, test):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_42e39d05","line":106,"range":{"start_line":106,"start_character":30,"end_line":106,"end_character":44},"updated":"2016-03-16 17:55:32.000000000","message":"Typo - \u0027Non-exclusive\u0027?","commit_id":"0d27bdb1dc6d3a3e5adb304f5042374c6dafd683"},{"author":{"_account_id":11029,"name":"Jamie Finnigan","email":"jamiefinnigan@gmail.com","username":"jamiefinnigan"},"change_message_id":"d11b778823b7348a250300315dd26a00b849e9c7","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        union \u003d set(profile[\u0027include\u0027]) \u0026 set(profile[\u0027exclude\u0027])"},{"line_number":105,"context_line":"        if len(union) \u003e 0:"},{"line_number":106,"context_line":"            raise ValueError(\u0027None exclusive include/excule test sets: %s\u0027 %"},{"line_number":107,"context_line":"                             union)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def check_id(self, test):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_22b5b1ed","line":106,"range":{"start_line":106,"start_character":53,"end_line":106,"end_character":59},"updated":"2016-03-16 17:55:32.000000000","message":"Typo - \u0027exclude\u0027?","commit_id":"0d27bdb1dc6d3a3e5adb304f5042374c6dafd683"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"639b690b526b02728f46de22e0e2514cf1a2226a","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        union \u003d set(profile[\u0027include\u0027]) \u0026 set(profile[\u0027exclude\u0027])"},{"line_number":105,"context_line":"        if len(union) \u003e 0:"},{"line_number":106,"context_line":"            raise ValueError(\u0027None exclusive include/excule test sets: %s\u0027 %"},{"line_number":107,"context_line":"                             union)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def check_id(self, test):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_e212a9b3","line":106,"range":{"start_line":106,"start_character":30,"end_line":106,"end_character":44},"in_reply_to":"1af94dfe_42e39d05","updated":"2016-03-16 17:59:06.000000000","message":"Done","commit_id":"0d27bdb1dc6d3a3e5adb304f5042374c6dafd683"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"cc9c254188ab717b4499c95068c94464df6b61d0","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        blacklist \u003d list(self.blacklists_mgr)"},{"line_number":81,"context_line":"        for item in blacklist:"},{"line_number":82,"context_line":"            data \u003d item.plugin()"},{"line_number":83,"context_line":"            for key, val in six.iteritems(data):"},{"line_number":84,"context_line":"                utils.check_ast_node(key)"},{"line_number":85,"context_line":"                self.blacklist.setdefault(key, []).extend(val)"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_b794e18a","line":83,"updated":"2016-03-18 19:29:57.000000000","message":"Do we really expect there to be \u003e10000 things to be in this dictionary? If not, can we not just use\n\n    item.plugin().items()","commit_id":"f9c4d2437017961d723ff61d62889cb32d6c3a59"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"8915389d7b53985f5554589b940d90d0fc1adf18","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        blacklist \u003d list(self.blacklists_mgr)"},{"line_number":81,"context_line":"        for item in blacklist:"},{"line_number":82,"context_line":"            data \u003d item.plugin()"},{"line_number":83,"context_line":"            for key, val in six.iteritems(data):"},{"line_number":84,"context_line":"                utils.check_ast_node(key)"},{"line_number":85,"context_line":"                self.blacklist.setdefault(key, []).extend(val)"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa0719c6_79ed9c24","line":83,"in_reply_to":"1af94dfe_b794e18a","updated":"2016-03-22 17:59:10.000000000","message":"Done","commit_id":"f9c4d2437017961d723ff61d62889cb32d6c3a59"}],"bandit/core/test_properties.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"9a643a4b20d8fe3da95f4740fa36b837af118b11","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    def wrapper(func):"},{"line_number":27,"context_line":"        if not hasattr(func, \"_checks\"):"},{"line_number":28,"context_line":"            func._checks \u003d []"},{"line_number":29,"context_line":"        func._checks.extend([utils.check_ast_node(a) for a in args])"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        logger.debug(\u0027checks() decorator executed\u0027)"},{"line_number":32,"context_line":"        logger.debug(\u0027  func._checks: %s\u0027, func._checks)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1af94dfe_5e04cd48","line":29,"updated":"2016-03-17 22:03:20.000000000","message":"You don\u0027t need a list to do a comprehension, you can do\n\n    func._checks.extend(utils.check_ast_node(a) for a in args)","commit_id":"bb0ddcc1144f132f6bea6b0b10253b4b81375a6f"}],"bandit/core/utils.py":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"3c9e8e3c1efb6fdb4227b1c7cd5c8fc6d463af1d","unresolved":false,"context_lines":[{"line_number":359,"context_line":"    return None"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"def check_ast_node(name):"},{"line_number":363,"context_line":"    try:"},{"line_number":364,"context_line":"        node \u003d getattr(ast, name)"},{"line_number":365,"context_line":"        if issubclass(node, ast.AST):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_18124209","line":362,"range":{"start_line":362,"start_character":4,"end_line":362,"end_character":18},"updated":"2016-02-17 22:21:42.000000000","message":"Can you please add unit test for this guy.  Thanks","commit_id":"684fa7f129d04b9ee3b37ed3c7c30c1b8d168460"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"14e6de196409a932b8c9e28e1bba52a86ea0e99b","unresolved":false,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"def check_ast_node(name):"},{"line_number":363,"context_line":"    try:"},{"line_number":364,"context_line":"        node \u003d getattr(ast, name)"},{"line_number":365,"context_line":"        if issubclass(node, ast.AST):"},{"line_number":366,"context_line":"            return name"},{"line_number":367,"context_line":"        raise TypeError(\"Error: %s is not a valid node type in AST\" % name)"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    except AttributeError:"},{"line_number":370,"context_line":"        raise TypeError(\"Error: %s is not a valid node type in AST\" % name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dae33548_4ba4b249","line":370,"range":{"start_line":363,"start_character":0,"end_line":370,"end_character":75},"updated":"2016-02-18 22:04:49.000000000","message":"Somehow this look like it could be simplified.  How about this:\n\n   try:\n        node \u003d getattr(ast, name)\n        if issubclass(node, ast.AST):\n            return name\n    except AttributeError:\n        pass\n\n   raise TypeError(\"Error: %s is not a valid node type in AST\" % name)","commit_id":"8684f28f20b8bf9e5b6aae83d0f0bfb4fd5c6020"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"bc0fc77735d662c78a16b13ba37cbab1187c06bc","unresolved":false,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"def check_ast_node(name):"},{"line_number":363,"context_line":"    try:"},{"line_number":364,"context_line":"        node \u003d getattr(ast, name)"},{"line_number":365,"context_line":"        if issubclass(node, ast.AST):"},{"line_number":366,"context_line":"            return name"},{"line_number":367,"context_line":"        raise TypeError(\"Error: %s is not a valid node type in AST\" % name)"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    except AttributeError:"},{"line_number":370,"context_line":"        raise TypeError(\"Error: %s is not a valid node type in AST\" % name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_87f8567e","line":370,"range":{"start_line":363,"start_character":0,"end_line":370,"end_character":75},"in_reply_to":"dae33548_4ba4b249","updated":"2016-02-19 15:20:56.000000000","message":"looks good, thanks Eric, I\u0027ll update","commit_id":"8684f28f20b8bf9e5b6aae83d0f0bfb4fd5c6020"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"44e2d80dfb3b9a52dc67ef5280f4ef12f692835a","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        node \u003d getattr(ast, name)"},{"line_number":365,"context_line":"        if issubclass(node, ast.AST):"},{"line_number":366,"context_line":"            return name"},{"line_number":367,"context_line":"    except AttributeError:  # nosec(tkesey): catching expected exception"},{"line_number":368,"context_line":"        pass"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    raise TypeError(\"Error: %s is not a valid node type in AST\" % name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_82097d97","line":367,"updated":"2016-02-24 17:29:09.000000000","message":"* tkelsey :P","commit_id":"0edc705a0fafc5f2df192409e7b8d92522f528cc"},{"author":{"_account_id":11716,"name":"Tim Kelsey","email":"timothy.kelsey@uk.ibm.com","username":"tkelsey"},"change_message_id":"715ee910a8cd362373e2ac8927aef35acb115c91","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        node \u003d getattr(ast, name)"},{"line_number":365,"context_line":"        if issubclass(node, ast.AST):"},{"line_number":366,"context_line":"            return name"},{"line_number":367,"context_line":"    except AttributeError:  # nosec(tkesey): catching expected exception"},{"line_number":368,"context_line":"        pass"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    raise TypeError(\"Error: %s is not a valid node type in AST\" % name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_638f8375","line":367,"in_reply_to":"bae84128_82097d97","updated":"2016-02-29 13:38:51.000000000","message":"lol","commit_id":"0edc705a0fafc5f2df192409e7b8d92522f528cc"},{"author":{"_account_id":17277,"name":"Christopher J Schaefer","email":"cjschaef@us.ibm.com","username":"cjschaef"},"change_message_id":"4db1ae3eaa1019059da961d493097386c3c8c359","unresolved":false,"context_lines":[{"line_number":359,"context_line":"    return None"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"def check_ast_node(name):"},{"line_number":363,"context_line":"    try:"},{"line_number":364,"context_line":"        node \u003d getattr(ast, name)"},{"line_number":365,"context_line":"        if issubclass(node, ast.AST):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aed3d3a_43150847","line":362,"range":{"start_line":362,"start_character":0,"end_line":362,"end_character":25},"updated":"2016-02-29 19:23:21.000000000","message":"docstring?","commit_id":"ff2b8236d4c6a436d618bab57087b85406d69ad0"}]}
