)]}'
{"metropolis/test/e2e/connectivity/agent/main.go":[{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"94938a10f4d028b998d4da7eefb6264157a8e2e9","unresolved":true,"context_lines":[{"line_number":29,"context_line":"\t}"},{"line_number":30,"context_line":"\tfor {"},{"line_number":31,"context_line":"\t\tvar req spec.Request"},{"line_number":32,"context_line":"\t\tif err :\u003d protodelim.UnmarshalFrom(bufio.NewReader(os.Stdin), \u0026req); err !\u003d nil {"},{"line_number":33,"context_line":"\t\t\tlog.Fatalf(\"Unable to unmarshal request: %v\", err)"},{"line_number":34,"context_line":"\t\t}"},{"line_number":35,"context_line":"\t\tvar res spec.Response"}],"source_content_type":"text/x-go","patch_set":3,"id":"5e0d07eb_6e3426d2","line":32,"range":{"start_line":32,"start_character":37,"end_line":32,"end_character":52},"updated":"2025-02-05 09:05:03.000000000","message":"I would create the buffered reader once, before the loop.","commit_id":"1751b29803dcc821f1eabe45f92b63e1c8ef364e"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"990790aa57974df18715841c16181737d501737a","unresolved":false,"context_lines":[{"line_number":29,"context_line":"\t}"},{"line_number":30,"context_line":"\tfor {"},{"line_number":31,"context_line":"\t\tvar req spec.Request"},{"line_number":32,"context_line":"\t\tif err :\u003d protodelim.UnmarshalFrom(bufio.NewReader(os.Stdin), \u0026req); err !\u003d nil {"},{"line_number":33,"context_line":"\t\t\tlog.Fatalf(\"Unable to unmarshal request: %v\", err)"},{"line_number":34,"context_line":"\t\t}"},{"line_number":35,"context_line":"\t\tvar res spec.Response"}],"source_content_type":"text/x-go","patch_set":3,"id":"7984bece_ad703b60","line":32,"range":{"start_line":32,"start_character":37,"end_line":32,"end_character":52},"in_reply_to":"5e0d07eb_6e3426d2","updated":"2025-02-05 21:08:16.000000000","message":"Done","commit_id":"1751b29803dcc821f1eabe45f92b63e1c8ef364e"}],"metropolis/test/e2e/connectivity/connectivity.go":[{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"94938a10f4d028b998d4da7eefb6264157a8e2e9","unresolved":true,"context_lines":[{"line_number":70,"context_line":"\tExpectedReject  \u003d spec.TestResponse_CONNECTION_REJECTED"},{"line_number":71,"context_line":")"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"type Protocol int"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"const ("},{"line_number":76,"context_line":"\tProtoTCP Protocol \u003d iota"}],"source_content_type":"text/x-go","patch_set":3,"id":"a5106263_0517151e","line":73,"range":{"start_line":73,"start_character":5,"end_line":73,"end_character":13},"updated":"2025-02-05 09:05:03.000000000","message":"This is unused; delete it or use it.","commit_id":"1751b29803dcc821f1eabe45f92b63e1c8ef364e"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"990790aa57974df18715841c16181737d501737a","unresolved":false,"context_lines":[{"line_number":70,"context_line":"\tExpectedReject  \u003d spec.TestResponse_CONNECTION_REJECTED"},{"line_number":71,"context_line":")"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"type Protocol int"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"const ("},{"line_number":76,"context_line":"\tProtoTCP Protocol \u003d iota"}],"source_content_type":"text/x-go","patch_set":3,"id":"30b6594e_98ec8b17","line":73,"range":{"start_line":73,"start_character":5,"end_line":73,"end_character":13},"in_reply_to":"a5106263_0517151e","updated":"2025-02-05 21:08:16.000000000","message":"Done","commit_id":"1751b29803dcc821f1eabe45f92b63e1c8ef364e"},{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"94938a10f4d028b998d4da7eefb6264157a8e2e9","unresolved":true,"context_lines":[{"line_number":106,"context_line":"\t}"},{"line_number":107,"context_line":"\tswitch res.Result {"},{"line_number":108,"context_line":"\tcase spec.TestResponse_CONNECTION_REJECTED:"},{"line_number":109,"context_line":"\t\tif expected !\u003d ExpectedReject {"},{"line_number":110,"context_line":"\t\t\tt.Errorf(\"%v expected %v, got %v (%v)\", prefix, expected, res.Result, res.ErrorDescription)"},{"line_number":111,"context_line":"\t\t}"},{"line_number":112,"context_line":"\tcase spec.TestResponse_CONNECTION_TIMEOUT:"}],"source_content_type":"text/x-go","patch_set":3,"id":"23bc82c6_500be4e7","line":109,"range":{"start_line":109,"start_character":17,"end_line":109,"end_character":31},"updated":"2025-02-05 09:05:03.000000000","message":"You can replace this with `res.Result`. Then the two error cases are identical and you can merge them.","commit_id":"1751b29803dcc821f1eabe45f92b63e1c8ef364e"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"990790aa57974df18715841c16181737d501737a","unresolved":false,"context_lines":[{"line_number":106,"context_line":"\t}"},{"line_number":107,"context_line":"\tswitch res.Result {"},{"line_number":108,"context_line":"\tcase spec.TestResponse_CONNECTION_REJECTED:"},{"line_number":109,"context_line":"\t\tif expected !\u003d ExpectedReject {"},{"line_number":110,"context_line":"\t\t\tt.Errorf(\"%v expected %v, got %v (%v)\", prefix, expected, res.Result, res.ErrorDescription)"},{"line_number":111,"context_line":"\t\t}"},{"line_number":112,"context_line":"\tcase spec.TestResponse_CONNECTION_TIMEOUT:"}],"source_content_type":"text/x-go","patch_set":3,"id":"91d12724_8727fe53","line":109,"range":{"start_line":109,"start_character":17,"end_line":109,"end_character":31},"in_reply_to":"23bc82c6_500be4e7","updated":"2025-02-05 21:08:16.000000000","message":"Done","commit_id":"1751b29803dcc821f1eabe45f92b63e1c8ef364e"},{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"94938a10f4d028b998d4da7eefb6264157a8e2e9","unresolved":true,"context_lines":[{"line_number":238,"context_line":"\t\t\t\tdefer podW.Stop()"},{"line_number":239,"context_line":"\t\t\t\tpodUpdates :\u003d podW.ResultChan()"},{"line_number":240,"context_line":"\t\t\t\tfor {"},{"line_number":241,"context_line":"\t\t\t\t\tevent :\u003d \u003c-podUpdates"},{"line_number":242,"context_line":"\t\t\t\t\tif event.Type !\u003d watch.Modified \u0026\u0026 event.Type !\u003d watch.Added {"},{"line_number":243,"context_line":"\t\t\t\t\t\tcontinue"},{"line_number":244,"context_line":"\t\t\t\t\t}"}],"source_content_type":"text/x-go","patch_set":3,"id":"04d91b54_6698f885","line":241,"range":{"start_line":241,"start_character":5,"end_line":241,"end_character":26},"updated":"2025-02-05 09:05:03.000000000","message":"If the watch fails, then the channel is closed and this busy-loops. Add a check to return an error when the channel is closed, or use a range loop over the channel.","commit_id":"1751b29803dcc821f1eabe45f92b63e1c8ef364e"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"990790aa57974df18715841c16181737d501737a","unresolved":false,"context_lines":[{"line_number":238,"context_line":"\t\t\t\tdefer podW.Stop()"},{"line_number":239,"context_line":"\t\t\t\tpodUpdates :\u003d podW.ResultChan()"},{"line_number":240,"context_line":"\t\t\t\tfor {"},{"line_number":241,"context_line":"\t\t\t\t\tevent :\u003d \u003c-podUpdates"},{"line_number":242,"context_line":"\t\t\t\t\tif event.Type !\u003d watch.Modified \u0026\u0026 event.Type !\u003d watch.Added {"},{"line_number":243,"context_line":"\t\t\t\t\t\tcontinue"},{"line_number":244,"context_line":"\t\t\t\t\t}"}],"source_content_type":"text/x-go","patch_set":3,"id":"29159f88_d43a18f3","line":241,"range":{"start_line":241,"start_character":5,"end_line":241,"end_character":26},"in_reply_to":"04d91b54_6698f885","updated":"2025-02-05 21:08:16.000000000","message":"Done","commit_id":"1751b29803dcc821f1eabe45f92b63e1c8ef364e"},{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"94938a10f4d028b998d4da7eefb6264157a8e2e9","unresolved":true,"context_lines":[{"line_number":242,"context_line":"\t\t\t\t\tif event.Type !\u003d watch.Modified \u0026\u0026 event.Type !\u003d watch.Added {"},{"line_number":243,"context_line":"\t\t\t\t\t\tcontinue"},{"line_number":244,"context_line":"\t\t\t\t\t}"},{"line_number":245,"context_line":"\t\t\t\t\tpod :\u003d event.Object.(*corev1.Pod)"},{"line_number":246,"context_line":"\t\t\t\t\tif pod.Status.Phase \u003d\u003d corev1.PodRunning {"},{"line_number":247,"context_line":"\t\t\t\t\t\tfor _, ipObj :\u003d range pod.Status.PodIPs {"},{"line_number":248,"context_line":"\t\t\t\t\t\t\tip, err :\u003d netip.ParseAddr(ipObj.IP)"}],"source_content_type":"text/x-go","patch_set":3,"id":"c4ee28cb_bbbf5d35","line":245,"range":{"start_line":245,"start_character":9,"end_line":245,"end_character":11},"updated":"2025-02-05 09:05:03.000000000","message":"Change this to `\u003d`. That way, if the watcher is restarted, it does not first return the same events again, but starts at the last observed event.","commit_id":"1751b29803dcc821f1eabe45f92b63e1c8ef364e"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"990790aa57974df18715841c16181737d501737a","unresolved":false,"context_lines":[{"line_number":242,"context_line":"\t\t\t\t\tif event.Type !\u003d watch.Modified \u0026\u0026 event.Type !\u003d watch.Added {"},{"line_number":243,"context_line":"\t\t\t\t\t\tcontinue"},{"line_number":244,"context_line":"\t\t\t\t\t}"},{"line_number":245,"context_line":"\t\t\t\t\tpod :\u003d event.Object.(*corev1.Pod)"},{"line_number":246,"context_line":"\t\t\t\t\tif pod.Status.Phase \u003d\u003d corev1.PodRunning {"},{"line_number":247,"context_line":"\t\t\t\t\t\tfor _, ipObj :\u003d range pod.Status.PodIPs {"},{"line_number":248,"context_line":"\t\t\t\t\t\t\tip, err :\u003d netip.ParseAddr(ipObj.IP)"}],"source_content_type":"text/x-go","patch_set":3,"id":"dbc58dd3_e25c1c6c","line":245,"range":{"start_line":245,"start_character":9,"end_line":245,"end_character":11},"in_reply_to":"c4ee28cb_bbbf5d35","updated":"2025-02-05 21:08:16.000000000","message":"Done","commit_id":"1751b29803dcc821f1eabe45f92b63e1c8ef364e"},{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"94938a10f4d028b998d4da7eefb6264157a8e2e9","unresolved":true,"context_lines":[{"line_number":310,"context_line":"\t\t\t\terr :\u003d backoff.Retry(func() error {"},{"line_number":311,"context_line":"\t\t\t\t\tctx, cancel :\u003d context.WithTimeout(cleanupCtx, 5*time.Second)"},{"line_number":312,"context_line":"\t\t\t\t\tdefer cancel()"},{"line_number":313,"context_line":"\t\t\t\t\treturn s.ClientSet.CoreV1().Pods(p.namespace).Delete(ctx, p.name, metav1.DeleteOptions{})"},{"line_number":314,"context_line":"\t\t\t\t}, backoff.WithContext(backoff.NewConstantBackOff(1*time.Second), setupCtx))"},{"line_number":315,"context_line":"\t\t\t\tif err !\u003d nil {"},{"line_number":316,"context_line":"\t\t\t\t\tt.Logf(\"Cleanup of pod %d failed: %v\", i, err)"}],"source_content_type":"text/x-go","patch_set":4,"id":"8fd8b288_afcbcf0e","line":313,"range":{"start_line":313,"start_character":5,"end_line":313,"end_character":11},"updated":"2025-02-05 09:05:03.000000000","message":"Add a check here to return nil instead if kerrors.IsNotFound(err) is true.","commit_id":"988d940d9c9d3e955967c49bf55d90c0c193e3f4"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"990790aa57974df18715841c16181737d501737a","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\t\t\t\terr :\u003d backoff.Retry(func() error {"},{"line_number":311,"context_line":"\t\t\t\t\tctx, cancel :\u003d context.WithTimeout(cleanupCtx, 5*time.Second)"},{"line_number":312,"context_line":"\t\t\t\t\tdefer cancel()"},{"line_number":313,"context_line":"\t\t\t\t\treturn s.ClientSet.CoreV1().Pods(p.namespace).Delete(ctx, p.name, metav1.DeleteOptions{})"},{"line_number":314,"context_line":"\t\t\t\t}, backoff.WithContext(backoff.NewConstantBackOff(1*time.Second), setupCtx))"},{"line_number":315,"context_line":"\t\t\t\tif err !\u003d nil {"},{"line_number":316,"context_line":"\t\t\t\t\tt.Logf(\"Cleanup of pod %d failed: %v\", i, err)"}],"source_content_type":"text/x-go","patch_set":4,"id":"4616ca27_caa260d8","line":313,"range":{"start_line":313,"start_character":5,"end_line":313,"end_character":11},"in_reply_to":"8fd8b288_afcbcf0e","updated":"2025-02-05 21:08:16.000000000","message":"Done","commit_id":"988d940d9c9d3e955967c49bf55d90c0c193e3f4"},{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"94938a10f4d028b998d4da7eefb6264157a8e2e9","unresolved":true,"context_lines":[{"line_number":311,"context_line":"\t\t\t\t\tctx, cancel :\u003d context.WithTimeout(cleanupCtx, 5*time.Second)"},{"line_number":312,"context_line":"\t\t\t\t\tdefer cancel()"},{"line_number":313,"context_line":"\t\t\t\t\treturn s.ClientSet.CoreV1().Pods(p.namespace).Delete(ctx, p.name, metav1.DeleteOptions{})"},{"line_number":314,"context_line":"\t\t\t\t}, backoff.WithContext(backoff.NewConstantBackOff(1*time.Second), setupCtx))"},{"line_number":315,"context_line":"\t\t\t\tif err !\u003d nil {"},{"line_number":316,"context_line":"\t\t\t\t\tt.Logf(\"Cleanup of pod %d failed: %v\", i, err)"},{"line_number":317,"context_line":"\t\t\t\t}"}],"source_content_type":"text/x-go","patch_set":4,"id":"8046f97c_80f8583e","line":314,"range":{"start_line":314,"start_character":70,"end_line":314,"end_character":78},"updated":"2025-02-05 09:05:03.000000000","message":"Should this be cleanupCtx instead?","commit_id":"988d940d9c9d3e955967c49bf55d90c0c193e3f4"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"990790aa57974df18715841c16181737d501737a","unresolved":false,"context_lines":[{"line_number":311,"context_line":"\t\t\t\t\tctx, cancel :\u003d context.WithTimeout(cleanupCtx, 5*time.Second)"},{"line_number":312,"context_line":"\t\t\t\t\tdefer cancel()"},{"line_number":313,"context_line":"\t\t\t\t\treturn s.ClientSet.CoreV1().Pods(p.namespace).Delete(ctx, p.name, metav1.DeleteOptions{})"},{"line_number":314,"context_line":"\t\t\t\t}, backoff.WithContext(backoff.NewConstantBackOff(1*time.Second), setupCtx))"},{"line_number":315,"context_line":"\t\t\t\tif err !\u003d nil {"},{"line_number":316,"context_line":"\t\t\t\t\tt.Logf(\"Cleanup of pod %d failed: %v\", i, err)"},{"line_number":317,"context_line":"\t\t\t\t}"}],"source_content_type":"text/x-go","patch_set":4,"id":"7ec6615f_24c4793d","line":314,"range":{"start_line":314,"start_character":70,"end_line":314,"end_character":78},"in_reply_to":"8046f97c_80f8583e","updated":"2025-02-05 21:08:16.000000000","message":"Done","commit_id":"988d940d9c9d3e955967c49bf55d90c0c193e3f4"},{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8eaa0872edcd2c3e3b4f26c497174919078e6d39","unresolved":true,"context_lines":[{"line_number":108,"context_line":"\t\tif err :\u003d checkExpectations(t, res, expected, prefix); err !\u003d nil \u0026\u0026 !deadline.After(time.Now()) {"},{"line_number":109,"context_line":"\t\t\tt.Error(err)"},{"line_number":110,"context_line":"\t\t\treturn"},{"line_number":111,"context_line":"\t\t}"},{"line_number":112,"context_line":"\t}"},{"line_number":113,"context_line":"}"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-go","patch_set":6,"id":"357accbe_60085a08","line":111,"range":{"start_line":111,"start_character":2,"end_line":111,"end_character":3},"updated":"2025-02-06 08:52:23.000000000","message":"I would add a short sleep here, maybe 100 ms, before retrying.","commit_id":"49b53b49052b39179cd88b5ac5df07e6f41cbf4f"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"5a1e2418f4e540a9022b43d547a8c0db6602326c","unresolved":false,"context_lines":[{"line_number":108,"context_line":"\t\tif err :\u003d checkExpectations(t, res, expected, prefix); err !\u003d nil \u0026\u0026 !deadline.After(time.Now()) {"},{"line_number":109,"context_line":"\t\t\tt.Error(err)"},{"line_number":110,"context_line":"\t\t\treturn"},{"line_number":111,"context_line":"\t\t}"},{"line_number":112,"context_line":"\t}"},{"line_number":113,"context_line":"}"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-go","patch_set":6,"id":"a50fb7fd_fb073b5b","line":111,"range":{"start_line":111,"start_character":2,"end_line":111,"end_character":3},"in_reply_to":"357accbe_60085a08","updated":"2025-02-06 17:12:53.000000000","message":"Done","commit_id":"49b53b49052b39179cd88b5ac5df07e6f41cbf4f"},{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8eaa0872edcd2c3e3b4f26c497174919078e6d39","unresolved":true,"context_lines":[{"line_number":263,"context_line":"\t\t\t\t\t\treturn nil"},{"line_number":264,"context_line":"\t\t\t\t\t}"},{"line_number":265,"context_line":"\t\t\t\t}"},{"line_number":266,"context_line":"\t\t\t\treturn nil"},{"line_number":267,"context_line":"\t\t\t}, backoff.WithContext(backoff.NewConstantBackOff(1*time.Second), setupCtx))"},{"line_number":268,"context_line":"\t\t\tif err !\u003d nil {"},{"line_number":269,"context_line":"\t\t\t\terrChan \u003c- fmt.Errorf(\"waiting for pod %d to be running failed: %w\", i, err)"}],"source_content_type":"text/x-go","patch_set":6,"id":"ee3da90e_3d6a18d5","line":266,"range":{"start_line":266,"start_character":11,"end_line":266,"end_character":14},"updated":"2025-02-06 08:52:23.000000000","message":"This should return an error, such that the watch is restarted, for example: ` fmt.Errorf(\"pod watcher failed\")`","commit_id":"49b53b49052b39179cd88b5ac5df07e6f41cbf4f"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"5a1e2418f4e540a9022b43d547a8c0db6602326c","unresolved":false,"context_lines":[{"line_number":263,"context_line":"\t\t\t\t\t\treturn nil"},{"line_number":264,"context_line":"\t\t\t\t\t}"},{"line_number":265,"context_line":"\t\t\t\t}"},{"line_number":266,"context_line":"\t\t\t\treturn nil"},{"line_number":267,"context_line":"\t\t\t}, backoff.WithContext(backoff.NewConstantBackOff(1*time.Second), setupCtx))"},{"line_number":268,"context_line":"\t\t\tif err !\u003d nil {"},{"line_number":269,"context_line":"\t\t\t\terrChan \u003c- fmt.Errorf(\"waiting for pod %d to be running failed: %w\", i, err)"}],"source_content_type":"text/x-go","patch_set":6,"id":"427e6871_37cdeb32","line":266,"range":{"start_line":266,"start_character":11,"end_line":266,"end_character":14},"in_reply_to":"ee3da90e_3d6a18d5","updated":"2025-02-06 17:12:53.000000000","message":"Done","commit_id":"49b53b49052b39179cd88b5ac5df07e6f41cbf4f"},{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"73cfc4f20d4f9bc07d18ae5f67686141a6f332f3","unresolved":true,"context_lines":[{"line_number":1,"context_line":"// Copyright The Monogon Project Authors."},{"line_number":2,"context_line":"// SPDX-License-Identifier: Apache-2.0"},{"line_number":3,"context_line":"package connectivity"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"import ("}],"source_content_type":"text/x-go","patch_set":10,"id":"5cf750da_6467d89b","line":2,"updated":"2025-02-10 15:37:10.000000000","message":"There should be an empty line between the copyright header and the package clause. Otherwise the copyright header is treated as the documentation for the package.","commit_id":"36b9798e70a0242e5abe30caa1f9d47577d7de37"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"0f34437538b605435772083e278a4079cfc9b937","unresolved":false,"context_lines":[{"line_number":1,"context_line":"// Copyright The Monogon Project Authors."},{"line_number":2,"context_line":"// SPDX-License-Identifier: Apache-2.0"},{"line_number":3,"context_line":"package connectivity"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"import ("}],"source_content_type":"text/x-go","patch_set":10,"id":"77e838ff_a3252fa0","line":2,"in_reply_to":"5cf750da_6467d89b","updated":"2025-02-10 15:41:10.000000000","message":"Done","commit_id":"36b9798e70a0242e5abe30caa1f9d47577d7de37"}],"metropolis/test/e2e/connectivity/spec/spec.proto":[{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"94938a10f4d028b998d4da7eefb6264157a8e2e9","unresolved":true,"context_lines":[{"line_number":24,"context_line":"    string address \u003d 1;"},{"line_number":25,"context_line":"    uint64 token \u003d 2;"},{"line_number":26,"context_line":"    google.protobuf.Duration timeout \u003d 3;"},{"line_number":27,"context_line":"    enum Protocol {"},{"line_number":28,"context_line":"        TCP \u003d 0;"},{"line_number":29,"context_line":"        UDP \u003d 1;"},{"line_number":30,"context_line":"        ICMP \u003d 2;"}],"source_content_type":"text/x-protobuf","patch_set":4,"id":"1c53d8c9_bd8bff10","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":17},"updated":"2025-02-05 09:05:03.000000000","message":"This is unused, so I would either remove it or add a comment.","commit_id":"988d940d9c9d3e955967c49bf55d90c0c193e3f4"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"990790aa57974df18715841c16181737d501737a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    string address \u003d 1;"},{"line_number":25,"context_line":"    uint64 token \u003d 2;"},{"line_number":26,"context_line":"    google.protobuf.Duration timeout \u003d 3;"},{"line_number":27,"context_line":"    enum Protocol {"},{"line_number":28,"context_line":"        TCP \u003d 0;"},{"line_number":29,"context_line":"        UDP \u003d 1;"},{"line_number":30,"context_line":"        ICMP \u003d 2;"}],"source_content_type":"text/x-protobuf","patch_set":4,"id":"7249211a_86dc939c","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":17},"in_reply_to":"1c53d8c9_bd8bff10","updated":"2025-02-05 21:08:16.000000000","message":"Done","commit_id":"988d940d9c9d3e955967c49bf55d90c0c193e3f4"}]}
