)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"99765986e433bb22d575cb3ea06154a6d07ca8b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5f4e5783_c2a8ba78","updated":"2017-10-10 14:27:08.000000000","message":"What does this change add?","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"ecda48231fa4ea4e7760997ab859c52c242691e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5f4e5783_6898c569","in_reply_to":"5f4e5783_0894b18a","updated":"2017-10-10 15:20:33.000000000","message":"Sorry, I meant could you add a short summary in the message here describing what this change does, as opposed to just having some examples?","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"4a0702453eb14712506b649fa730d00733b10b40","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5f4e5783_bc884271","in_reply_to":"5f4e5783_6898c569","updated":"2017-10-10 15:46:22.000000000","message":"Ah, okay, I\u0027ll try to be more descriptive. Thank you.","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"55ed82b93f81893431f7fb626f5cad250d481397","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5f4e5783_0894b18a","in_reply_to":"5f4e5783_c2a8ba78","updated":"2017-10-10 15:13:39.000000000","message":"Thanks for the comment .. Could you be please more specific here? Thought the commit message was self-describing enough.","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"99765986e433bb22d575cb3ea06154a6d07ca8b8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[PATCH] Custom formatter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements: custom formatter"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Usage: bandit --format custom [--msg-template MSG-TEMPLATE] targets"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f4e5783_429dea57","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":28},"updated":"2017-10-10 14:27:08.000000000","message":"Is there a blueprint for this?","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"55ed82b93f81893431f7fb626f5cad250d481397","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[PATCH] Custom formatter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements: custom formatter"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Usage: bandit --format custom [--msg-template MSG-TEMPLATE] targets"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f4e5783_485bc92d","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":28},"in_reply_to":"5f4e5783_429dea57","updated":"2017-10-10 15:13:39.000000000","message":"Thanks for the comment .. I don\u0027t think there is, since I\u0027ve written it to suite the needs of another project. I didn\u0027t think of creating a blueprint (don\u0027t even know what that is, yet)","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"ecda48231fa4ea4e7760997ab859c52c242691e8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[PATCH] Custom formatter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements: custom formatter"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Usage: bandit --format custom [--msg-template MSG-TEMPLATE] targets"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f4e5783_882f81f5","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":28},"in_reply_to":"5f4e5783_485bc92d","updated":"2017-10-10 15:20:33.000000000","message":"Would you be able to attend the weekly security meeting on IRC in #openstack-meeting-alt this Thursday[0]? We would be happy to discuss this change and what project its for.\n\nA blueprint is used to propose a new feature for a project. Each project does it differently however. Blueprints are found here[1].\n\n[0] http://eavesdrop.openstack.org/#Security_meeting\n[1] https://blueprints.launchpad.net/bandit","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"4a0702453eb14712506b649fa730d00733b10b40","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[PATCH] Custom formatter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements: custom formatter"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Usage: bandit --format custom [--msg-template MSG-TEMPLATE] targets"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f4e5783_3cf69291","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":28},"in_reply_to":"5f4e5783_882f81f5","updated":"2017-10-10 15:46:22.000000000","message":"Thanks for the info, I\u0027ll look into the blueprints. I\u0027m quite busy at that time on Thursdays, but I\u0027ll try to participate and be as responsive as possible.","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"}],"README.rst":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"00cd64b5521677bf97f95e579161ad4fc144efcd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5f4e5783_09370db3","updated":"2017-10-10 19:31:31.000000000","message":"Keep in mind that the Usage section of the readme is checked as part of the unit tests to ensure it matches the output of --help.","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"1840926184315e5f0bec11623d668846d7ebb507","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                            (-l for LOW, -ll for MEDIUM, -lll for HIGH)"},{"line_number":120,"context_line":"      -i, --confidence      report only issues of a given confidence level or"},{"line_number":121,"context_line":"                            higher (-i for LOW, -ii for MEDIUM, -iii for HIGH)"},{"line_number":122,"context_line":"      -f {csv,custom,html,json,screen,txt,xml,yaml}, --format {csv,custom,html,json,screen,txt,xml,yaml}"},{"line_number":123,"context_line":"                            specify output format"},{"line_number":124,"context_line":"      --msg-template MSG_TEMPLATE"},{"line_number":125,"context_line":"                            specify output message template (only usable with"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f4e5783_b92df947","line":122,"range":{"start_line":122,"start_character":14,"end_line":122,"end_character":20},"updated":"2017-10-10 12:51:08.000000000","message":"we should put this at the end of this list","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"55ed82b93f81893431f7fb626f5cad250d481397","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                            (-l for LOW, -ll for MEDIUM, -lll for HIGH)"},{"line_number":120,"context_line":"      -i, --confidence      report only issues of a given confidence level or"},{"line_number":121,"context_line":"                            higher (-i for LOW, -ii for MEDIUM, -iii for HIGH)"},{"line_number":122,"context_line":"      -f {csv,custom,html,json,screen,txt,xml,yaml}, --format {csv,custom,html,json,screen,txt,xml,yaml}"},{"line_number":123,"context_line":"                            specify output format"},{"line_number":124,"context_line":"      --msg-template MSG_TEMPLATE"},{"line_number":125,"context_line":"                            specify output message template (only usable with"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f4e5783_6dd0d7ca","line":122,"range":{"start_line":122,"start_character":14,"end_line":122,"end_character":20},"in_reply_to":"5f4e5783_b92df947","updated":"2017-10-10 15:13:39.000000000","message":"Thanks, changed.","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"1840926184315e5f0bec11623d668846d7ebb507","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    The following tests were discovered and loaded:"},{"line_number":151,"context_line":"    -----------------------------------------------"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"      B101\tassert_used"},{"line_number":154,"context_line":"      B102\texec_used"},{"line_number":155,"context_line":"      B103\tset_bad_file_permissions"},{"line_number":156,"context_line":"      B104\thardcoded_bind_all_interfaces"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f4e5783_d9fe75ad","line":153,"range":{"start_line":153,"start_character":10,"end_line":153,"end_character":11},"updated":"2017-10-10 12:51:08.000000000","message":"tab?","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"55ed82b93f81893431f7fb626f5cad250d481397","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    The following tests were discovered and loaded:"},{"line_number":151,"context_line":"    -----------------------------------------------"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"      B101\tassert_used"},{"line_number":154,"context_line":"      B102\texec_used"},{"line_number":155,"context_line":"      B103\tset_bad_file_permissions"},{"line_number":156,"context_line":"      B104\thardcoded_bind_all_interfaces"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f4e5783_8d667351","line":153,"range":{"start_line":153,"start_character":10,"end_line":153,"end_character":11},"in_reply_to":"5f4e5783_c2c1da30","updated":"2017-10-10 15:13:39.000000000","message":"Thanks, changed, but note that the output is formatted with tabs in main.py (I just copied the output from my terminal).","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"99765986e433bb22d575cb3ea06154a6d07ca8b8","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    The following tests were discovered and loaded:"},{"line_number":151,"context_line":"    -----------------------------------------------"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"      B101\tassert_used"},{"line_number":154,"context_line":"      B102\texec_used"},{"line_number":155,"context_line":"      B103\tset_bad_file_permissions"},{"line_number":156,"context_line":"      B104\thardcoded_bind_all_interfaces"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f4e5783_c2c1da30","line":153,"range":{"start_line":153,"start_character":10,"end_line":153,"end_character":11},"in_reply_to":"5f4e5783_d9fe75ad","updated":"2017-10-10 14:27:08.000000000","message":"++, please change back to spaces","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"a4aa5e2eb0f2a7cb840b62a7ff8408be9bcbe669","unresolved":false,"context_lines":[{"line_number":370,"context_line":"        bandit.plugins \u003d"},{"line_number":371,"context_line":"            mako \u003d bandit_mako"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"Custom Formatting"},{"line_number":375,"context_line":"-----------------"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"Available tags:"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"::"},{"line_number":380,"context_line":"    {abspath}, {relpath}, {line},  {test_id},"},{"line_number":381,"context_line":"    {severity}, {msg}, {confidence}, {range}"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"Example usage:"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"  Default template::"},{"line_number":386,"context_line":"    bandit -r examples/ --format custom --msg-template \\"},{"line_number":387,"context_line":"    \"{abspath}:{line}: {test_id}[bandit]: {severity}: {msg}\""},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"  Provides same output as::"},{"line_number":390,"context_line":"    bandit -r examples/ --format custom"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"  Tags can also be formatted in python string.format() style::"},{"line_number":393,"context_line":"    bandit -r examples/ --format custom --msg-template \\"},{"line_number":394,"context_line":"    \"{relpath:20.20s}: {line:03}: {test_id:^8}: DEFECT: {msg:\u003e20}\""},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"See python documentation for more information about formatting style:"},{"line_number":397,"context_line":"https://docs.python.org/3.4/library/string.html"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"Contributing"},{"line_number":401,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1f485f77_ef85435b","line":398,"range":{"start_line":373,"start_character":0,"end_line":398,"end_character":0},"updated":"2017-11-16 20:10:24.000000000","message":"This can be removed since it\u0027s provided above, but this can be done in another change.","commit_id":"d159335700938f25ebd2606c066e3895e2a3d577"}],"bandit/cli/main.py":[{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"1840926184315e5f0bec11623d668846d7ebb507","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            blacklist_info.append(\u0027%s\\t%s\u0027 % (b[\u0027id\u0027], b[\u0027name\u0027]))"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    plugin_list \u003d \u0027\\n\\t\u0027.join(sorted(set(plugin_info + blacklist_info)))"},{"line_number":263,"context_line":"    dedent_text \u003d textwrap.dedent(\u0027\u0027\u0027\\"},{"line_number":264,"context_line":"    TAGS"},{"line_number":265,"context_line":"    ----"},{"line_number":266,"context_line":"        \u003cabspath\u003e, \u003crelpath\u003e, \u003cline\u003e,  \u003ctest_id\u003e,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_19f52dcc","line":263,"range":{"start_line":263,"start_character":37,"end_line":263,"end_character":38},"updated":"2017-10-10 12:51:08.000000000","message":"this is redundant","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"55ed82b93f81893431f7fb626f5cad250d481397","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            blacklist_info.append(\u0027%s\\t%s\u0027 % (b[\u0027id\u0027], b[\u0027name\u0027]))"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    plugin_list \u003d \u0027\\n\\t\u0027.join(sorted(set(plugin_info + blacklist_info)))"},{"line_number":263,"context_line":"    dedent_text \u003d textwrap.dedent(\u0027\u0027\u0027\\"},{"line_number":264,"context_line":"    TAGS"},{"line_number":265,"context_line":"    ----"},{"line_number":266,"context_line":"        \u003cabspath\u003e, \u003crelpath\u003e, \u003cline\u003e,  \u003ctest_id\u003e,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_08c27186","line":263,"range":{"start_line":263,"start_character":37,"end_line":263,"end_character":38},"in_reply_to":"5f4e5783_19f52dcc","updated":"2017-10-10 15:13:39.000000000","message":"Thanks, changed.","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":1528,"name":"Stanislaw Pitucha","email":"viraptor@gmail.com","username":"stanislaw-pitucha"},"change_message_id":"e3f3c76b51f62ebd7337247f986a24e825dc4f4b","unresolved":false,"context_lines":[{"line_number":284,"context_line":"    args \u003d parser.parse_args()"},{"line_number":285,"context_line":"    # Check if `--msg-template` is not present without custom formatter"},{"line_number":286,"context_line":"    if args.output_format !\u003d \u0027custom\u0027 and args.msg_template is not None:"},{"line_number":287,"context_line":"        parser.error(\"--msg-template can only be used with --format\u003dcustom\")"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    try:"},{"line_number":290,"context_line":"        b_conf \u003d b_config.BanditConfig(config_file\u003dargs.config_file)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f4b6375_68786d29","line":287,"updated":"2017-10-23 11:08:06.000000000","message":"What if format is custom and the msg_template is not defined?","commit_id":"d0bd5e2d98deeda3c8dc25515586f678c6f1dd17"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"578530fd128f96eaa5367acdac877515d99888b9","unresolved":false,"context_lines":[{"line_number":284,"context_line":"    args \u003d parser.parse_args()"},{"line_number":285,"context_line":"    # Check if `--msg-template` is not present without custom formatter"},{"line_number":286,"context_line":"    if args.output_format !\u003d \u0027custom\u0027 and args.msg_template is not None:"},{"line_number":287,"context_line":"        parser.error(\"--msg-template can only be used with --format\u003dcustom\")"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    try:"},{"line_number":290,"context_line":"        b_conf \u003d b_config.BanditConfig(config_file\u003dargs.config_file)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f4b6375_c8176151","line":287,"in_reply_to":"3f4b6375_68786d29","updated":"2017-10-23 11:26:25.000000000","message":"Thanks for the comment. I am not sure what you mean here, tho.\n`bandit --format custom` works with default template as shown in examples if no --msg-template parameter is provided.","commit_id":"d0bd5e2d98deeda3c8dc25515586f678c6f1dd17"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"a76b9d32f733e1c2c30c4308ac42f6ffa7d06357","unresolved":false,"context_lines":[{"line_number":203,"context_line":"    parser.add_argument("},{"line_number":204,"context_line":"        \u0027-f\u0027, \u0027--format\u0027, dest\u003d\u0027output_format\u0027, action\u003d\u0027store\u0027,"},{"line_number":205,"context_line":"        default\u003doutput_format, help\u003d\u0027specify output format\u0027,"},{"line_number":206,"context_line":"        choices\u003dsorted(extension_mgr.formatter_names)"},{"line_number":207,"context_line":"    )"},{"line_number":208,"context_line":"    parser.add_argument("},{"line_number":209,"context_line":"        \u0027--msg-template\u0027, action\u003d\u0027store\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_c3f6fbd7","line":206,"updated":"2017-11-02 18:38:11.000000000","message":"In patchset 3 the change was suggested by Tovis Seven - to put custom at the end. This discards it.","commit_id":"062e5d1c6ddbc45d59cf1cb2c6b25926aeeec993"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"a76b9d32f733e1c2c30c4308ac42f6ffa7d06357","unresolved":false,"context_lines":[{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    plugin_list \u003d \u0027\\n\\t\u0027.join(sorted(set(plugin_info + blacklist_info)))"},{"line_number":263,"context_line":"    parser.epilog \u003d (\u0027The following tests were discovered and\u0027"},{"line_number":264,"context_line":"                     \u0027 loaded:\\n\\t{0}\\n\u0027.format(plugin_list))"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    # setup work - parse arguments, and initialize BanditManager"},{"line_number":267,"context_line":"    args \u003d parser.parse_args()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_a36adf7d","line":264,"updated":"2017-11-02 18:38:11.000000000","message":"So your suggestion is to remove the CUSTOM FORMAT section from both --help and man completely? I don\u0027t think thats a good idea, I do not expect users to look up README on github to know how to use the formatter.","commit_id":"062e5d1c6ddbc45d59cf1cb2c6b25926aeeec993"}],"bandit/core/manager.py":[{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"1840926184315e5f0bec11623d668846d7ebb507","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        :param output_file: File to store results"},{"line_number":146,"context_line":"        :param output_format: output format plugin name"},{"line_number":147,"context_line":"        :param template: Output template with non-terminal tags \u003cN\u003e"},{"line_number":148,"context_line":"                        (default: \u003cabspath\u003e:\u003cline\u003e:"},{"line_number":149,"context_line":"                         \u003ctest_id\u003e[bandit]: \u003cseverity\u003e: \u003cmsg\u003e)"},{"line_number":150,"context_line":"        :return: -"},{"line_number":151,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_797d416d","line":148,"range":{"start_line":148,"start_character":23,"end_line":148,"end_character":24},"updated":"2017-10-10 12:51:08.000000000","message":"nit: add one space","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"55ed82b93f81893431f7fb626f5cad250d481397","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        :param output_file: File to store results"},{"line_number":146,"context_line":"        :param output_format: output format plugin name"},{"line_number":147,"context_line":"        :param template: Output template with non-terminal tags \u003cN\u003e"},{"line_number":148,"context_line":"                        (default: \u003cabspath\u003e:\u003cline\u003e:"},{"line_number":149,"context_line":"                         \u003ctest_id\u003e[bandit]: \u003cseverity\u003e: \u003cmsg\u003e)"},{"line_number":150,"context_line":"        :return: -"},{"line_number":151,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_a836bdb3","line":148,"range":{"start_line":148,"start_character":23,"end_line":148,"end_character":24},"in_reply_to":"5f4e5783_797d416d","updated":"2017-10-10 15:13:39.000000000","message":"Thanks, changed.","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"1840926184315e5f0bec11623d668846d7ebb507","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"            formatter \u003d formatters_mgr[output_format]"},{"line_number":158,"context_line":"            report_func \u003d formatter.plugin"},{"line_number":159,"context_line":"            if \u0027custom\u0027 \u003d\u003d output_format:"},{"line_number":160,"context_line":"                report_func(self, fileobj\u003doutput_file, sev_level\u003dsev_level,"},{"line_number":161,"context_line":"                            conf_level\u003dconf_level, lines\u003dlines,"},{"line_number":162,"context_line":"                            template\u003dtemplate)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_19940d8b","line":159,"range":{"start_line":159,"start_character":12,"end_line":159,"end_character":40},"updated":"2017-10-10 12:51:08.000000000","message":"We should compare like this:\n\n  if output_format \u003d\u003d \u0027custom\u0027","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"55ed82b93f81893431f7fb626f5cad250d481397","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"            formatter \u003d formatters_mgr[output_format]"},{"line_number":158,"context_line":"            report_func \u003d formatter.plugin"},{"line_number":159,"context_line":"            if \u0027custom\u0027 \u003d\u003d output_format:"},{"line_number":160,"context_line":"                report_func(self, fileobj\u003doutput_file, sev_level\u003dsev_level,"},{"line_number":161,"context_line":"                            conf_level\u003dconf_level, lines\u003dlines,"},{"line_number":162,"context_line":"                            template\u003dtemplate)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_e86cb59d","line":159,"range":{"start_line":159,"start_character":12,"end_line":159,"end_character":40},"in_reply_to":"5f4e5783_19940d8b","updated":"2017-10-10 15:13:39.000000000","message":"Thanks, any specific reason for that? .. I consider this notation way safer and typo-proof.","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"}],"bandit/formatters/custom.py":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"00cd64b5521677bf97f95e579161ad4fc144efcd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 Hewlett Packard Enterprise"},{"line_number":2,"context_line":"# -*- coding:utf-8 -*-"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_49918599","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":20},"updated":"2017-10-10 19:31:31.000000000","message":"The year is 2017","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"f3d2900d719b097bea3ed61937eed5a96b8d2789","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 Hewlett Packard Enterprise"},{"line_number":2,"context_line":"# -*- coding:utf-8 -*-"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_412ef1a5","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":20},"in_reply_to":"5f4e5783_49918599","updated":"2017-10-11 07:49:39.000000000","message":"Thanks, corrected.","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"00cd64b5521677bf97f95e579161ad4fc144efcd","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"r\"\"\""},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":"Custom Formatter"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_09e94d19","line":17,"range":{"start_line":17,"start_character":16,"end_line":17,"end_character":17},"updated":"2017-10-10 19:31:31.000000000","message":"remove extra \u003d","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"f3d2900d719b097bea3ed61937eed5a96b8d2789","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"r\"\"\""},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":"Custom Formatter"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_212bf594","line":17,"range":{"start_line":17,"start_character":16,"end_line":17,"end_character":17},"in_reply_to":"5f4e5783_09e94d19","updated":"2017-10-11 07:49:39.000000000","message":"Thanks, corrected","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"00cd64b5521677bf97f95e579161ad4fc144efcd","unresolved":false,"context_lines":[{"line_number":16,"context_line":"r\"\"\""},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":"Custom Formatter"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"This formatter outputs the issues in custom machine-readable format."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_e9edd125","line":19,"range":{"start_line":19,"start_character":16,"end_line":19,"end_character":17},"updated":"2017-10-10 19:31:31.000000000","message":"remove extra \u003d","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":1528,"name":"Stanislaw Pitucha","email":"viraptor@gmail.com","username":"stanislaw-pitucha"},"change_message_id":"e3f3c76b51f62ebd7337247f986a24e825dc4f4b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    pattern \u003d re.compile(\"\u003c[^\u003e]*\u003e\")"},{"line_number":83,"context_line":"    # Substitute non terminal characters"},{"line_number":84,"context_line":"    msg_template_sub \u003d re.sub(pattern, \"{}\", msg_template)"},{"line_number":85,"context_line":"    msg_template_sub +\u003d \"\\n\""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    limit \u003d lines if lines \u003e 0 else None"},{"line_number":88,"context_line":"    for defect in results[:limit]:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f4b6375_88d609c3","line":85,"updated":"2017-10-23 11:08:06.000000000","message":"Is there a reason for using specific format here rather than python\u0027s `.format()` syntax? That provides addressing within dict, escaping tags, padding, a familiar syntax, etc. which people could find useful.","commit_id":"d0bd5e2d98deeda3c8dc25515586f678c6f1dd17"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"578530fd128f96eaa5367acdac877515d99888b9","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    pattern \u003d re.compile(\"\u003c[^\u003e]*\u003e\")"},{"line_number":83,"context_line":"    # Substitute non terminal characters"},{"line_number":84,"context_line":"    msg_template_sub \u003d re.sub(pattern, \"{}\", msg_template)"},{"line_number":85,"context_line":"    msg_template_sub +\u003d \"\\n\""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    limit \u003d lines if lines \u003e 0 else None"},{"line_number":88,"context_line":"    for defect in results[:limit]:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f4b6375_abf9bfc8","line":85,"in_reply_to":"3f4b6375_88d609c3","updated":"2017-10-23 11:26:25.000000000","message":"This is actually a very good point! I will elaborate on that approach. It would certainly provide more modularity. Thank you.","commit_id":"d0bd5e2d98deeda3c8dc25515586f678c6f1dd17"}],"doc/source/man/bandit.rst":[{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"a76b9d32f733e1c2c30c4308ac42f6ffa7d06357","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"bandit [-h] [-r] [-a {file,vuln}] [-n CONTEXT_LINES] [-c CONFIG_FILE]"},{"line_number":9,"context_line":"            [-p PROFILE] [-t TESTS] [-s SKIPS] [-l] [-i]"},{"line_number":10,"context_line":"            [-f {csv,custom,html,json,screen,txt,xml,yaml}]"},{"line_number":11,"context_line":"            [--msg-template MSG_TEMPLATE] [-o OUTPUT_FILE] [-v] [-d]"},{"line_number":12,"context_line":"            [--ignore-nosec] [-x EXCLUDED_PATHS] [-b BASELINE]"},{"line_number":13,"context_line":"            [--ini INI_PATH] [--version]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f4b6375_c3cddb85","line":10,"updated":"2017-11-02 18:38:11.000000000","message":"Great you noticed I forgot about the man file.","commit_id":"062e5d1c6ddbc45d59cf1cb2c6b25926aeeec993"}],"setup.cfg":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"00cd64b5521677bf97f95e579161ad4fc144efcd","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    html \u003d bandit.formatters.html:report"},{"line_number":38,"context_line":"    screen \u003d bandit.formatters.screen:report"},{"line_number":39,"context_line":"    yaml \u003d bandit.formatters.yaml:report"},{"line_number":40,"context_line":"    custom \u003d bandit.formatters.yaml:report"},{"line_number":41,"context_line":"bandit.plugins \u003d"},{"line_number":42,"context_line":"    # bandit/plugins/app_debug.py"},{"line_number":43,"context_line":"    flask_debug_true \u003d bandit.plugins.app_debug:flask_debug_true"}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"5f4e5783_e9d6f14f","line":40,"range":{"start_line":40,"start_character":31,"end_line":40,"end_character":35},"updated":"2017-10-10 19:31:31.000000000","message":"should be custom, not yaml","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"},{"author":{"_account_id":27037,"name":"Marek Cermak","email":"macermak@redhat.com","username":"macermak"},"change_message_id":"f3d2900d719b097bea3ed61937eed5a96b8d2789","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    html \u003d bandit.formatters.html:report"},{"line_number":38,"context_line":"    screen \u003d bandit.formatters.screen:report"},{"line_number":39,"context_line":"    yaml \u003d bandit.formatters.yaml:report"},{"line_number":40,"context_line":"    custom \u003d bandit.formatters.yaml:report"},{"line_number":41,"context_line":"bandit.plugins \u003d"},{"line_number":42,"context_line":"    # bandit/plugins/app_debug.py"},{"line_number":43,"context_line":"    flask_debug_true \u003d bandit.plugins.app_debug:flask_debug_true"}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"5f4e5783_815f4940","line":40,"range":{"start_line":40,"start_character":31,"end_line":40,"end_character":35},"in_reply_to":"5f4e5783_e9d6f14f","updated":"2017-10-11 07:49:39.000000000","message":"God damn it, don\u0027t know how that one happened, thanks for noticing ( In the last run, I focused on --help section and must have neglected this somehow. )","commit_id":"a015e6cda8060dcbc6c89a49dc23c05cf5038d71"}],"tests/functional/test_runtime.py":[{"author":{"_account_id":27096,"name":"Joshua Padman","email":"jpadman@redhat.com","username":"jpadman"},"change_message_id":"d232ec5bac23ccf29efbaad60af45f09ba357172","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        for i in replace_list:"},{"line_number":83,"context_line":"            output \u003d output.replace(i, \u0027\u0027)"},{"line_number":84,"context_line":"        output \u003d output.replace(\"\u0027\", \"\\\u0027\")"},{"line_number":85,"context_line":"        output \u003d output.replace(\u0027\\n\u0027, \u0027\u0027)"},{"line_number":86,"context_line":"        with open(\u0027README.rst\u0027) as f:"},{"line_number":87,"context_line":"            readme \u003d f.read()"},{"line_number":88,"context_line":"            for i in replace_list:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f485f77_98668eed","line":85,"range":{"start_line":85,"start_character":8,"end_line":85,"end_character":41},"updated":"2017-11-13 10:28:17.000000000","message":"This line could be added to the replace_list list. The reason line 84 is not included in that group is because it doesn\u0027t replace to \u0027\u0027","commit_id":"adc9d7d1546892cc191c861cbbd2bfda0abd37f6"},{"author":{"_account_id":27096,"name":"Joshua Padman","email":"jpadman@redhat.com","username":"jpadman"},"change_message_id":"d232ec5bac23ccf29efbaad60af45f09ba357172","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            readme \u003d f.read()"},{"line_number":88,"context_line":"            for i in replace_list:"},{"line_number":89,"context_line":"                readme \u003d readme.replace(i, \u0027\u0027)"},{"line_number":90,"context_line":"            readme \u003d readme.replace(\u0027\\n\u0027, \u0027\u0027)"},{"line_number":91,"context_line":"            self.assertIn(output, readme)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    # test examples (use _test_example() to wrap in config location argument"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f485f77_586016cf","line":90,"updated":"2017-11-13 10:28:17.000000000","message":"This line would not be needed if the \\n was added to replace_list","commit_id":"adc9d7d1546892cc191c861cbbd2bfda0abd37f6"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"a4aa5e2eb0f2a7cb840b62a7ff8408be9bcbe669","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        self.assertIn(\"tests were discovered and loaded:\", output)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def test_help_in_readme(self):"},{"line_number":80,"context_line":"        replace_list \u003d [\u0027 \u0027, \u0027\\t\u0027, \u0027\\n\u0027]"},{"line_number":81,"context_line":"        (retcode, output) \u003d self._test_runtime([\u0027bandit\u0027, \u0027-h\u0027])"},{"line_number":82,"context_line":"        for i in replace_list:"},{"line_number":83,"context_line":"            output \u003d output.replace(i, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f485f77_efeae30c","line":80,"range":{"start_line":80,"start_character":34,"end_line":80,"end_character":39},"updated":"2017-11-16 20:10:24.000000000","message":"yeah this is better, thanks!","commit_id":"d159335700938f25ebd2606c066e3895e2a3d577"}]}
