)]}'
{"/PATCHSET_LEVEL":[{"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":"4444cd4a7175c648cf8c89b784f5d3f245612fb5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":13,"id":"6eb1130e_a4e24714","updated":"2024-03-05 18:16:33.000000000","message":"I am fine with landing this without some of the validation in place (but please file an issue and reference it in the TODO), but you need to fix things like the hacked system partition size as that\u0027s not just an annoyance but an operational issue. Also this is IMO too much code for this feature, we need better abstractions to do this.","commit_id":"7a6263881f9cf12c06a0bd4525757362aec40485"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b473d4683270aa8ef593b1870c2f084498be1b47","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"8862a405_e49fbdb0","in_reply_to":"6eb1130e_a4e24714","updated":"2024-09-13 05:08:12.000000000","message":"Doneish. We still have too much code because of the duplicate installer routine but that will be replaced with the new bundle/installer soon.","commit_id":"7a6263881f9cf12c06a0bd4525757362aec40485"}],"go.mod":[{"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":"4444cd4a7175c648cf8c89b784f5d3f245612fb5","unresolved":true,"context_lines":[{"line_number":141,"context_line":"\tgithub.com/spf13/pflag v1.0.5"},{"line_number":142,"context_line":"\tgithub.com/sqlc-dev/sqlc v1.23.0"},{"line_number":143,"context_line":"\tgithub.com/stretchr/testify v1.8.4"},{"line_number":144,"context_line":"\tgithub.com/vbauerster/mpb/v8 v8.7.2"},{"line_number":145,"context_line":"\tgithub.com/vishvananda/netlink v1.2.1-beta.2"},{"line_number":146,"context_line":"\tgithub.com/yalue/native_endian v1.0.2"},{"line_number":147,"context_line":"\tgo.etcd.io/etcd/api/v3 v3.5.4"}],"source_content_type":"audio/x-mod","patch_set":13,"id":"2546443a_5a02a12d","line":144,"range":{"start_line":144,"start_character":1,"end_line":144,"end_character":29},"updated":"2024-03-05 18:16:33.000000000","message":"Is there another progress bar with less than 8 major versions and less dependencies? I don\u0027t really like this. We need a simple progress bar, not a framework.","commit_id":"7a6263881f9cf12c06a0bd4525757362aec40485"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8e8a131dbec5c590896962ca80cee7db1144d047","unresolved":false,"context_lines":[{"line_number":141,"context_line":"\tgithub.com/spf13/pflag v1.0.5"},{"line_number":142,"context_line":"\tgithub.com/sqlc-dev/sqlc v1.23.0"},{"line_number":143,"context_line":"\tgithub.com/stretchr/testify v1.8.4"},{"line_number":144,"context_line":"\tgithub.com/vbauerster/mpb/v8 v8.7.2"},{"line_number":145,"context_line":"\tgithub.com/vishvananda/netlink v1.2.1-beta.2"},{"line_number":146,"context_line":"\tgithub.com/yalue/native_endian v1.0.2"},{"line_number":147,"context_line":"\tgo.etcd.io/etcd/api/v3 v3.5.4"}],"source_content_type":"audio/x-mod","patch_set":13,"id":"a83ef26a_0b50732e","line":144,"range":{"start_line":144,"start_character":1,"end_line":144,"end_character":29},"in_reply_to":"2546443a_5a02a12d","updated":"2024-04-08 21:18:07.000000000","message":"Done","commit_id":"7a6263881f9cf12c06a0bd4525757362aec40485"}],"metropolis/cli/metroctl/BUILD.bazel":[{"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":"1a93672ba1d235bd982a811bfba591d91bd85d3d","unresolved":true,"context_lines":[{"line_number":33,"context_line":"        \"rpc.go\","},{"line_number":34,"context_line":"        \"table_node.go\","},{"line_number":35,"context_line":"    ],"},{"line_number":36,"context_line":"    data \u003d select({"},{"line_number":37,"context_line":"        \":buildkind_lite\": [],"},{"line_number":38,"context_line":"        \"//conditions:default\": ["},{"line_number":39,"context_line":"            \"//metropolis/cli/takeover\",  # keep"}],"source_content_type":"text/x-python","patch_set":20,"id":"c2ae3454_da261357","line":36,"range":{"start_line":36,"start_character":4,"end_line":36,"end_character":19},"updated":"2024-09-16 11:53:24.000000000","message":"Bad rebase","commit_id":"f7c095d12a49958cfb8e3bad02900992e5ea45c4"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cde88668349e2ee85030736d85f04d6bf241941b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        \"rpc.go\","},{"line_number":34,"context_line":"        \"table_node.go\","},{"line_number":35,"context_line":"    ],"},{"line_number":36,"context_line":"    data \u003d select({"},{"line_number":37,"context_line":"        \":buildkind_lite\": [],"},{"line_number":38,"context_line":"        \"//conditions:default\": ["},{"line_number":39,"context_line":"            \"//metropolis/cli/takeover\",  # keep"}],"source_content_type":"text/x-python","patch_set":20,"id":"52ce0930_2c39d5b6","line":36,"range":{"start_line":36,"start_character":4,"end_line":36,"end_character":19},"in_reply_to":"c2ae3454_da261357","updated":"2024-09-17 02:08:05.000000000","message":"Done","commit_id":"f7c095d12a49958cfb8e3bad02900992e5ea45c4"}],"metropolis/cli/metroctl/cmd_install_ssh.go":[{"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":"4444cd4a7175c648cf8c89b784f5d3f245612fb5","unresolved":true,"context_lines":[{"line_number":102,"context_line":"\t\t)"},{"line_number":103,"context_line":"\t\tdefer bar.SetTotal(-1, true)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"\t\t// Without this the progressbar doesn\u0027t get updated. I (tim) don\u0027t have"},{"line_number":106,"context_line":"\t\t// a clue why this happens, but adding a pipe and another io.Copy"},{"line_number":107,"context_line":"\t\t// to this operation fixes it. Lets just roll with it as I don\u0027t have"},{"line_number":108,"context_line":"\t\t// the patience to debug this further."},{"line_number":109,"context_line":"\t\treader, writer :\u003d io.Pipe()"},{"line_number":110,"context_line":"\t\tgo func() {"},{"line_number":111,"context_line":"\t\t\tio.Copy(writer, r)"},{"line_number":112,"context_line":"\t\t\twriter.Close()"}],"source_content_type":"text/x-go","patch_set":13,"id":"4dce1d83_a81cad42","line":109,"range":{"start_line":105,"start_character":0,"end_line":109,"end_character":0},"updated":"2024-03-05 18:16:33.000000000","message":"This smells like a brittle hack. Fix it or swap the progress bar library which I don\u0027t really like anyways for reasons mentioned above.","commit_id":"7a6263881f9cf12c06a0bd4525757362aec40485"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8e8a131dbec5c590896962ca80cee7db1144d047","unresolved":false,"context_lines":[{"line_number":102,"context_line":"\t\t)"},{"line_number":103,"context_line":"\t\tdefer bar.SetTotal(-1, true)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"\t\t// Without this the progressbar doesn\u0027t get updated. I (tim) don\u0027t have"},{"line_number":106,"context_line":"\t\t// a clue why this happens, but adding a pipe and another io.Copy"},{"line_number":107,"context_line":"\t\t// to this operation fixes it. Lets just roll with it as I don\u0027t have"},{"line_number":108,"context_line":"\t\t// the patience to debug this further."},{"line_number":109,"context_line":"\t\treader, writer :\u003d io.Pipe()"},{"line_number":110,"context_line":"\t\tgo func() {"},{"line_number":111,"context_line":"\t\t\tio.Copy(writer, r)"},{"line_number":112,"context_line":"\t\t\twriter.Close()"}],"source_content_type":"text/x-go","patch_set":13,"id":"95b3e6c7_7c2797f8","line":109,"range":{"start_line":105,"start_character":0,"end_line":109,"end_character":0},"in_reply_to":"4dce1d83_a81cad42","updated":"2024-04-08 21:18:07.000000000","message":"Done","commit_id":"7a6263881f9cf12c06a0bd4525757362aec40485"},{"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":"1a93672ba1d235bd982a811bfba591d91bd85d3d","unresolved":true,"context_lines":[{"line_number":45,"context_line":"\t}"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"\taconn, err :\u003d net.Dial(\"unix\", os.Getenv(\"SSH_AUTH_SOCK\"))"},{"line_number":48,"context_line":"\tif err !\u003d nil {"},{"line_number":49,"context_line":"\t\treturn fmt.Errorf(\"error while establishing agent connection: %v\", err)"},{"line_number":50,"context_line":"\t}"},{"line_number":51,"context_line":"\tdefer aconn.Close()"}],"source_content_type":"text/x-go","patch_set":20,"id":"1f2d7baf_62a0a8c9","line":48,"range":{"start_line":48,"start_character":4,"end_line":48,"end_character":7},"updated":"2024-09-16 11:53:24.000000000","message":"Probably should fallback to password if agent is not available or public key auth doesn\u0027t work.","commit_id":"f7c095d12a49958cfb8e3bad02900992e5ea45c4"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cde88668349e2ee85030736d85f04d6bf241941b","unresolved":false,"context_lines":[{"line_number":45,"context_line":"\t}"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"\taconn, err :\u003d net.Dial(\"unix\", os.Getenv(\"SSH_AUTH_SOCK\"))"},{"line_number":48,"context_line":"\tif err !\u003d nil {"},{"line_number":49,"context_line":"\t\treturn fmt.Errorf(\"error while establishing agent connection: %v\", err)"},{"line_number":50,"context_line":"\t}"},{"line_number":51,"context_line":"\tdefer aconn.Close()"}],"source_content_type":"text/x-go","patch_set":20,"id":"96281ed2_fed6f369","line":48,"range":{"start_line":48,"start_character":4,"end_line":48,"end_character":7},"in_reply_to":"1f2d7baf_62a0a8c9","updated":"2024-09-17 02:08:05.000000000","message":"True. Have to rework the ssh DirectClient to accept multiple AuthMethods for that.","commit_id":"f7c095d12a49958cfb8e3bad02900992e5ea45c4"},{"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":"1a93672ba1d235bd982a811bfba591d91bd85d3d","unresolved":true,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"\taconn, err :\u003d net.Dial(\"unix\", os.Getenv(\"SSH_AUTH_SOCK\"))"},{"line_number":48,"context_line":"\tif err !\u003d nil {"},{"line_number":49,"context_line":"\t\treturn fmt.Errorf(\"error while establishing agent connection: %v\", err)"},{"line_number":50,"context_line":"\t}"},{"line_number":51,"context_line":"\tdefer aconn.Close()"},{"line_number":52,"context_line":"\ta :\u003d agent.NewClient(aconn)"}],"source_content_type":"text/x-go","patch_set":20,"id":"1134ab45_83b187f6","line":49,"range":{"start_line":49,"start_character":46,"end_line":49,"end_character":51},"updated":"2024-09-16 11:53:24.000000000","message":"SSH agent","commit_id":"f7c095d12a49958cfb8e3bad02900992e5ea45c4"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cde88668349e2ee85030736d85f04d6bf241941b","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"\taconn, err :\u003d net.Dial(\"unix\", os.Getenv(\"SSH_AUTH_SOCK\"))"},{"line_number":48,"context_line":"\tif err !\u003d nil {"},{"line_number":49,"context_line":"\t\treturn fmt.Errorf(\"error while establishing agent connection: %v\", err)"},{"line_number":50,"context_line":"\t}"},{"line_number":51,"context_line":"\tdefer aconn.Close()"},{"line_number":52,"context_line":"\ta :\u003d agent.NewClient(aconn)"}],"source_content_type":"text/x-go","patch_set":20,"id":"4cb2981d_b5213042","line":49,"range":{"start_line":49,"start_character":46,"end_line":49,"end_character":51},"in_reply_to":"1134ab45_83b187f6","updated":"2024-09-17 02:08:05.000000000","message":"Done","commit_id":"f7c095d12a49958cfb8e3bad02900992e5ea45c4"},{"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":"84a6348de5a4fe1e572851579919da9caaa618ad","unresolved":true,"context_lines":[{"line_number":98,"context_line":"\t}"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"\tctx, _ :\u003d signal.NotifyContext(context.Background(), os.Interrupt)"},{"line_number":101,"context_line":"\tconn, err :\u003d cl.Dial(ctx, address, 5*time.Second)"},{"line_number":102,"context_line":"\tif err !\u003d nil {"},{"line_number":103,"context_line":"\t\treturn fmt.Errorf(\"error while establishing ssh connection: %v\", err)"},{"line_number":104,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":23,"id":"2f6c6cd2_4db0fa26","line":101,"range":{"start_line":101,"start_character":27,"end_line":101,"end_character":34},"updated":"2024-09-17 19:00:58.000000000","message":"`Error: error while establishing ssh connection: dial tcp: address xyz: missing port in address`\n\nThis needs a port 22 default, otherwise even the example command doesn\u0027t work.","commit_id":"9d85189693ebfa40c87de4328ed738d3b092fb22"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"74b6fafdae031e1f1cc11e779492e0ae054e6162","unresolved":false,"context_lines":[{"line_number":98,"context_line":"\t}"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"\tctx, _ :\u003d signal.NotifyContext(context.Background(), os.Interrupt)"},{"line_number":101,"context_line":"\tconn, err :\u003d cl.Dial(ctx, address, 5*time.Second)"},{"line_number":102,"context_line":"\tif err !\u003d nil {"},{"line_number":103,"context_line":"\t\treturn fmt.Errorf(\"error while establishing ssh connection: %v\", err)"},{"line_number":104,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":23,"id":"793df8bd_678128f8","line":101,"range":{"start_line":101,"start_character":27,"end_line":101,"end_character":34},"in_reply_to":"2f6c6cd2_4db0fa26","updated":"2024-09-18 00:13:35.000000000","message":"Done","commit_id":"9d85189693ebfa40c87de4328ed738d3b092fb22"},{"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":"31fa1aaa4db26515615b1c3a6a17776e78ea2efd","unresolved":true,"context_lines":[{"line_number":39,"context_line":"\t\treturn fmt.Errorf(\"SSH user is mandatory\")"},{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\tvar addrPort netip.AddrPort"},{"line_number":43,"context_line":"\tif !strings.Contains(address, \":\") {"},{"line_number":44,"context_line":"\t\taddr, err :\u003d netip.ParseAddr(address)"},{"line_number":45,"context_line":"\t\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":24,"id":"cb833ab1_4b3a127a","line":42,"range":{"start_line":42,"start_character":14,"end_line":42,"end_character":28},"updated":"2024-09-18 11:01:49.000000000","message":"Doesn\u0027t work with DNS labels which is probably unintended as the example contains one.","commit_id":"471e877fb94e6bbe453d160b2acb4e9042e31c57"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"51b652cf60e1487bd24f4d72c4586991cb7d0bda","unresolved":false,"context_lines":[{"line_number":39,"context_line":"\t\treturn fmt.Errorf(\"SSH user is mandatory\")"},{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\tvar addrPort netip.AddrPort"},{"line_number":43,"context_line":"\tif !strings.Contains(address, \":\") {"},{"line_number":44,"context_line":"\t\taddr, err :\u003d netip.ParseAddr(address)"},{"line_number":45,"context_line":"\t\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":24,"id":"40422ac7_5f4f455a","line":42,"range":{"start_line":42,"start_character":14,"end_line":42,"end_character":28},"in_reply_to":"cb833ab1_4b3a127a","updated":"2024-09-18 14:47:43.000000000","message":"Done","commit_id":"471e877fb94e6bbe453d160b2acb4e9042e31c57"},{"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":"31fa1aaa4db26515615b1c3a6a17776e78ea2efd","unresolved":true,"context_lines":[{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\tvar addrPort netip.AddrPort"},{"line_number":43,"context_line":"\tif !strings.Contains(address, \":\") {"},{"line_number":44,"context_line":"\t\taddr, err :\u003d netip.ParseAddr(address)"},{"line_number":45,"context_line":"\t\tif err !\u003d nil {"},{"line_number":46,"context_line":"\t\t\treturn fmt.Errorf(\"failed parsing address: %w\", err)"}],"source_content_type":"text/x-go","patch_set":24,"id":"bcc3efec_1ce7c6be","line":43,"range":{"start_line":43,"start_character":22,"end_line":43,"end_character":29},"updated":"2024-09-18 11:01:49.000000000","message":"Doesn\u0027t work with IPv6","commit_id":"471e877fb94e6bbe453d160b2acb4e9042e31c57"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"51b652cf60e1487bd24f4d72c4586991cb7d0bda","unresolved":false,"context_lines":[{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\tvar addrPort netip.AddrPort"},{"line_number":43,"context_line":"\tif !strings.Contains(address, \":\") {"},{"line_number":44,"context_line":"\t\taddr, err :\u003d netip.ParseAddr(address)"},{"line_number":45,"context_line":"\t\tif err !\u003d nil {"},{"line_number":46,"context_line":"\t\t\treturn fmt.Errorf(\"failed parsing address: %w\", err)"}],"source_content_type":"text/x-go","patch_set":24,"id":"aebcd7c4_859d933f","line":43,"range":{"start_line":43,"start_character":22,"end_line":43,"end_character":29},"in_reply_to":"42435885_3ef87149","updated":"2024-09-18 14:47:43.000000000","message":"Acknowledged","commit_id":"471e877fb94e6bbe453d160b2acb4e9042e31c57"},{"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":"25926c6de83a9be29bc3dfca1a3129c57d3b87a4","unresolved":true,"context_lines":[{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\tvar addrPort netip.AddrPort"},{"line_number":43,"context_line":"\tif !strings.Contains(address, \":\") {"},{"line_number":44,"context_line":"\t\taddr, err :\u003d netip.ParseAddr(address)"},{"line_number":45,"context_line":"\t\tif err !\u003d nil {"},{"line_number":46,"context_line":"\t\t\treturn fmt.Errorf(\"failed parsing address: %w\", err)"}],"source_content_type":"text/x-go","patch_set":24,"id":"42435885_3ef87149","line":43,"range":{"start_line":43,"start_character":22,"end_line":43,"end_character":29},"in_reply_to":"5eb6ca4c_788dbcd4","updated":"2024-09-18 11:59:05.000000000","message":"They can do it because if you only have an address, it\u0027s fine. If you can also have a port it\u0027s not.","commit_id":"471e877fb94e6bbe453d160b2acb4e9042e31c57"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4fd46c63d4ff419a4ee879ca3c1890fd6cfdb124","unresolved":true,"context_lines":[{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\tvar addrPort netip.AddrPort"},{"line_number":43,"context_line":"\tif !strings.Contains(address, \":\") {"},{"line_number":44,"context_line":"\t\taddr, err :\u003d netip.ParseAddr(address)"},{"line_number":45,"context_line":"\t\tif err !\u003d nil {"},{"line_number":46,"context_line":"\t\t\treturn fmt.Errorf(\"failed parsing address: %w\", err)"}],"source_content_type":"text/x-go","patch_set":24,"id":"5eb6ca4c_788dbcd4","line":43,"range":{"start_line":43,"start_character":22,"end_line":43,"end_character":29},"in_reply_to":"bcc3efec_1ce7c6be","updated":"2024-09-18 11:55:13.000000000","message":"Thats the same logic netip does internally too. But because this doesn\u0027t work with dns labels, this has to be replaced anyway. I am thinking about just removing ability to parse the port and just adding a separate flag for it.","commit_id":"471e877fb94e6bbe453d160b2acb4e9042e31c57"}],"metropolis/cli/pkg/takeover/install.go":[{"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":"4444cd4a7175c648cf8c89b784f5d3f245612fb5","unresolved":true,"context_lines":[{"line_number":36,"context_line":"// Environment variable which tells the takeover binary where to install to"},{"line_number":37,"context_line":"const installTarget \u003d \"TAKEOVER_INSTALL_TARGET\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"func installMetropolis(l logtree.LeveledLogger, isEFIBoot bool) error {"},{"line_number":40,"context_line":"\tif !isEFIBoot {"},{"line_number":41,"context_line":"\t\treturn fmt.Errorf(\"Monogon OS can only be installed on EFI-booted machines, this one is not\")"},{"line_number":42,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":13,"id":"6fc5c457_29184f9e","line":39,"range":{"start_line":39,"start_character":5,"end_line":39,"end_character":22},"updated":"2024-03-05 18:16:33.000000000","message":"This looks like an exact copy of some code I wrote for the agent-based install. Do we really want to duplicate this?","commit_id":"7a6263881f9cf12c06a0bd4525757362aec40485"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"7e20ad1229a422429056d831a1a8ce1db196988c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"// Environment variable which tells the takeover binary where to install to"},{"line_number":37,"context_line":"const installTarget \u003d \"TAKEOVER_INSTALL_TARGET\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"func installMetropolis(l logtree.LeveledLogger, isEFIBoot bool) error {"},{"line_number":40,"context_line":"\tif !isEFIBoot {"},{"line_number":41,"context_line":"\t\treturn fmt.Errorf(\"Monogon OS can only be installed on EFI-booted machines, this one is not\")"},{"line_number":42,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":13,"id":"28cd6c9d_57917d9a","line":39,"range":{"start_line":39,"start_character":5,"end_line":39,"end_character":22},"in_reply_to":"6fc5c457_29184f9e","updated":"2024-09-10 02:01:01.000000000","message":"As discussed we will keep the duplicate code until we have the new bundle format/installer landed","commit_id":"7a6263881f9cf12c06a0bd4525757362aec40485"},{"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":"4444cd4a7175c648cf8c89b784f5d3f245612fb5","unresolved":true,"context_lines":[{"line_number":80,"context_line":"\tinstallParams :\u003d osimage.Params{"},{"line_number":81,"context_line":"\t\tPartitionSize: osimage.PartitionSizeInfo{"},{"line_number":82,"context_line":"\t\t\tESP:    384,"},{"line_number":83,"context_line":"\t\t\tSystem: 512, //TODO: Make this configurable"},{"line_number":84,"context_line":"\t\t\tData:   128,"},{"line_number":85,"context_line":"\t\t},"},{"line_number":86,"context_line":"\t\tSystemImage:    systemImage,"}],"source_content_type":"text/x-go","patch_set":13,"id":"e7170280_1a59786b","line":83,"range":{"start_line":83,"start_character":11,"end_line":83,"end_character":14},"updated":"2024-03-05 18:16:33.000000000","message":"We cannot leave this in.","commit_id":"7a6263881f9cf12c06a0bd4525757362aec40485"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b473d4683270aa8ef593b1870c2f084498be1b47","unresolved":false,"context_lines":[{"line_number":80,"context_line":"\tinstallParams :\u003d osimage.Params{"},{"line_number":81,"context_line":"\t\tPartitionSize: osimage.PartitionSizeInfo{"},{"line_number":82,"context_line":"\t\t\tESP:    384,"},{"line_number":83,"context_line":"\t\t\tSystem: 512, //TODO: Make this configurable"},{"line_number":84,"context_line":"\t\t\tData:   128,"},{"line_number":85,"context_line":"\t\t},"},{"line_number":86,"context_line":"\t\tSystemImage:    systemImage,"}],"source_content_type":"text/x-go","patch_set":13,"id":"f272dab6_1f114374","line":83,"range":{"start_line":83,"start_character":11,"end_line":83,"end_character":14},"in_reply_to":"e7170280_1a59786b","updated":"2024-09-13 05:08:12.000000000","message":"Done","commit_id":"7a6263881f9cf12c06a0bd4525757362aec40485"}],"metropolis/cli/takeover/install.go":[{"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":"1a93672ba1d235bd982a811bfba591d91bd85d3d","unresolved":true,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"func installMetropolis(l logtree.LeveledLogger) error {"},{"line_number":41,"context_line":"\t// Read something from efivarfs to validate we are running via EFI."},{"line_number":42,"context_line":"\tif _, err :\u003d efivarfs.GetBootOrder(); err !\u003d nil {"},{"line_number":43,"context_line":"\t\t//nolint:ST1005"},{"line_number":44,"context_line":"\t\treturn fmt.Errorf(\"Monogon OS can only be installed on EFI-booted machines, this one is not\")"},{"line_number":45,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":20,"id":"c765e093_54c12a2c","line":42,"range":{"start_line":42,"start_character":14,"end_line":42,"end_character":35},"updated":"2024-09-16 11:53:24.000000000","message":"Just check if /sys/firmware/efi exists","commit_id":"f7c095d12a49958cfb8e3bad02900992e5ea45c4"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cde88668349e2ee85030736d85f04d6bf241941b","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"func installMetropolis(l logtree.LeveledLogger) error {"},{"line_number":41,"context_line":"\t// Read something from efivarfs to validate we are running via EFI."},{"line_number":42,"context_line":"\tif _, err :\u003d efivarfs.GetBootOrder(); err !\u003d nil {"},{"line_number":43,"context_line":"\t\t//nolint:ST1005"},{"line_number":44,"context_line":"\t\treturn fmt.Errorf(\"Monogon OS can only be installed on EFI-booted machines, this one is not\")"},{"line_number":45,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":20,"id":"3b595a7e_2abd9c6d","line":42,"range":{"start_line":42,"start_character":14,"end_line":42,"end_character":35},"in_reply_to":"c765e093_54c12a2c","updated":"2024-09-17 02:08:05.000000000","message":"Done","commit_id":"f7c095d12a49958cfb8e3bad02900992e5ea45c4"}],"metropolis/cli/takeover/takeover.go":[{"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":"1a93672ba1d235bd982a811bfba591d91bd85d3d","unresolved":true,"context_lines":[{"line_number":105,"context_line":"\t\treturn nil, err"},{"line_number":106,"context_line":"\t}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"\t// Validate that this installation will not fail because of disk issues"},{"line_number":109,"context_line":"\tif _, err :\u003d osimage.Plan(oParams); err !\u003d nil {"},{"line_number":110,"context_line":"\t\treturn nil, fmt.Errorf(\"failed to plan installation: %w\", err)"},{"line_number":111,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":20,"id":"fde97c7a_359e1d6a","line":108,"range":{"start_line":108,"start_character":4,"end_line":108,"end_character":17},"updated":"2024-09-16 11:53:24.000000000","message":"Check for EFI availability here as well","commit_id":"f7c095d12a49958cfb8e3bad02900992e5ea45c4"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cde88668349e2ee85030736d85f04d6bf241941b","unresolved":false,"context_lines":[{"line_number":105,"context_line":"\t\treturn nil, err"},{"line_number":106,"context_line":"\t}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"\t// Validate that this installation will not fail because of disk issues"},{"line_number":109,"context_line":"\tif _, err :\u003d osimage.Plan(oParams); err !\u003d nil {"},{"line_number":110,"context_line":"\t\treturn nil, fmt.Errorf(\"failed to plan installation: %w\", err)"},{"line_number":111,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":20,"id":"aba60b17_8b2d3d3b","line":108,"range":{"start_line":108,"start_character":4,"end_line":108,"end_character":17},"in_reply_to":"fde97c7a_359e1d6a","updated":"2024-09-17 02:08:05.000000000","message":"Already done in the beginning of the setup function","commit_id":"f7c095d12a49958cfb8e3bad02900992e5ea45c4"}]}
