)]}'
{"tests/unit/test_web.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"4709a60c2dfd652a59e7f4671ed42839587474ff","unresolved":false,"context_lines":[{"line_number":962,"context_line":"        expected \u003d [\"label1\", \"fake\", \"tenant-two-label\"]"},{"line_number":963,"context_line":"        res \u003d self.get_url(\u0027api/tenant/tenant-two/labels\u0027).json()"},{"line_number":964,"context_line":"        self.assertEqual("},{"line_number":965,"context_line":"            list(map(lambda x: {\u0027name\u0027: x}, sorted(expected))), res)"},{"line_number":966,"context_line":""},{"line_number":967,"context_line":""},{"line_number":968,"context_line":"class TestWebSecrets(BaseTestWeb):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_298b7469","line":965,"updated":"2020-02-06 23:45:20.000000000","message":"Nit, you could drop the sorted() call and use manually sort the list above. Would simplify the test a little.","commit_id":"61e5c3a0f90747b2b27216eb38e46e50f6a7d959"}],"zuul/configloader.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"efb21b60eaa2a386f5c722fb8592e70f2b469d33","unresolved":false,"context_lines":[{"line_number":517,"context_line":"                    if re2.match(pattern, conf_node[\u0027label\u0027]):"},{"line_number":518,"context_line":"                        allowed \u003d True"},{"line_number":519,"context_line":"                        break"},{"line_number":520,"context_line":"            if disallowed_labels:"},{"line_number":521,"context_line":"                for pattern in disallowed_labels:"},{"line_number":522,"context_line":"                    if re2.match(pattern, conf_node[\u0027label\u0027]):"},{"line_number":523,"context_line":"                        allowed \u003d False"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_a9abe46e","line":520,"updated":"2020-02-07 00:01:30.000000000","message":"Done in followup.","commit_id":"61e5c3a0f90747b2b27216eb38e46e50f6a7d959"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"4709a60c2dfd652a59e7f4671ed42839587474ff","unresolved":false,"context_lines":[{"line_number":517,"context_line":"                    if re2.match(pattern, conf_node[\u0027label\u0027]):"},{"line_number":518,"context_line":"                        allowed \u003d True"},{"line_number":519,"context_line":"                        break"},{"line_number":520,"context_line":"            if disallowed_labels:"},{"line_number":521,"context_line":"                for pattern in disallowed_labels:"},{"line_number":522,"context_line":"                    if re2.match(pattern, conf_node[\u0027label\u0027]):"},{"line_number":523,"context_line":"                        allowed \u003d False"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_a9ec4428","line":520,"updated":"2020-02-06 23:45:20.000000000","message":"Nit, I think you can short circuit this with:\n\n  if allowed and disallowed_labels:\n\nFor the case where you don\u0027t match allowed.","commit_id":"61e5c3a0f90747b2b27216eb38e46e50f6a7d959"}],"zuul/web/__init__.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"4709a60c2dfd652a59e7f4671ed42839587474ff","unresolved":false,"context_lines":[{"line_number":757,"context_line":"                        if re2.match(pattern, label):"},{"line_number":758,"context_line":"                            allowed \u003d True"},{"line_number":759,"context_line":"                            break"},{"line_number":760,"context_line":"                if disallowed_labels:"},{"line_number":761,"context_line":"                    for pattern in disallowed_labels:"},{"line_number":762,"context_line":"                        if re2.match(pattern, label):"},{"line_number":763,"context_line":"                            allowed \u003d False"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_09cf98b2","line":760,"updated":"2020-02-06 23:45:20.000000000","message":"See previous comment.","commit_id":"61e5c3a0f90747b2b27216eb38e46e50f6a7d959"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"fe5f193bb3d5722d2b2718a9a8f120425a936024","unresolved":false,"context_lines":[{"line_number":750,"context_line":"        labels \u003d set()"},{"line_number":751,"context_line":"        for launcher in self.zk.getRegisteredLaunchers():"},{"line_number":752,"context_line":"            for label in launcher.supported_labels:"},{"line_number":753,"context_line":"                allowed \u003d True"},{"line_number":754,"context_line":"                if allowed_labels:"},{"line_number":755,"context_line":"                    allowed \u003d False"},{"line_number":756,"context_line":"                    for pattern in allowed_labels:"},{"line_number":757,"context_line":"                        if re2.match(pattern, label):"},{"line_number":758,"context_line":"                            allowed \u003d True"},{"line_number":759,"context_line":"                            break"},{"line_number":760,"context_line":"                if disallowed_labels:"},{"line_number":761,"context_line":"                    for pattern in disallowed_labels:"},{"line_number":762,"context_line":"                        if re2.match(pattern, label):"},{"line_number":763,"context_line":"                            allowed \u003d False"},{"line_number":764,"context_line":"                            break"},{"line_number":765,"context_line":"                if allowed:"},{"line_number":766,"context_line":"                    labels.add(label)"},{"line_number":767,"context_line":"        ret \u003d [{\u0027name\u0027: label} for label in sorted(labels)]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_39e0becb","line":764,"range":{"start_line":753,"start_character":0,"end_line":764,"end_character":33},"updated":"2020-02-05 17:03:02.000000000","message":"I wonder if it makes sense to have this logic in a utility function as it is very similar to the one where they are enforced.","commit_id":"61e5c3a0f90747b2b27216eb38e46e50f6a7d959"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"6203dba079e15e3b0c0acb4231307acb1db550c6","unresolved":false,"context_lines":[{"line_number":761,"context_line":"                    for pattern in disallowed_labels:"},{"line_number":762,"context_line":"                        if re2.match(pattern, label):"},{"line_number":763,"context_line":"                            allowed \u003d False"},{"line_number":764,"context_line":"                            break"},{"line_number":765,"context_line":"                if allowed:"},{"line_number":766,"context_line":"                    labels.add(label)"},{"line_number":767,"context_line":"        ret \u003d [{\u0027name\u0027: label} for label in sorted(labels)]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_9927721e","line":764,"updated":"2020-02-05 17:04:12.000000000","message":"Yeah, not a bad idea.  Mind if I do that in a followup?","commit_id":"61e5c3a0f90747b2b27216eb38e46e50f6a7d959"}]}
