)]}'
{"metropolis/test/launch/cli/launch-cluster/main.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":"b4aef0db68e80262646763282261cc25fa0c3d7a","unresolved":true,"context_lines":[{"line_number":94,"context_line":"func sizeFlagDisk(p *uint64, name string, usage string) {"},{"line_number":95,"context_line":"\tflag.Func(name, usage, func(val string) error {"},{"line_number":96,"context_line":"\t\tvar multiplier uint64"},{"line_number":97,"context_line":"\t\tswitch {"},{"line_number":98,"context_line":"\t\tcase strings.HasSuffix(val, \"M\"):"},{"line_number":99,"context_line":"\t\t\tmultiplier \u003d 1000 * 1000"},{"line_number":100,"context_line":"\t\tcase strings.HasSuffix(val, \"G\"):"}],"source_content_type":"text/x-go","patch_set":3,"id":"747d86c4_ffdc2662","line":97,"range":{"start_line":97,"start_character":2,"end_line":97,"end_character":8},"updated":"2024-08-28 15:32:03.000000000","message":"Allow T for TiB here, it\u0027s large but disks in the TiB range do exist and are used in the wild and this is all lazily-allocated, so the user doesn\u0027t even need the space.","commit_id":"cbb6d5cff6c40e03eacc03b8b94f3c3d9a5e56bd"},{"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":"d96f5264254b2e400754c9eb219413334b5ac203","unresolved":false,"context_lines":[{"line_number":94,"context_line":"func sizeFlagDisk(p *uint64, name string, usage string) {"},{"line_number":95,"context_line":"\tflag.Func(name, usage, func(val string) error {"},{"line_number":96,"context_line":"\t\tvar multiplier uint64"},{"line_number":97,"context_line":"\t\tswitch {"},{"line_number":98,"context_line":"\t\tcase strings.HasSuffix(val, \"M\"):"},{"line_number":99,"context_line":"\t\t\tmultiplier \u003d 1000 * 1000"},{"line_number":100,"context_line":"\t\tcase strings.HasSuffix(val, \"G\"):"}],"source_content_type":"text/x-go","patch_set":3,"id":"c2066b79_cb42d991","line":97,"range":{"start_line":97,"start_character":2,"end_line":97,"end_character":8},"in_reply_to":"747d86c4_ffdc2662","updated":"2024-09-02 15:54:24.000000000","message":"Done","commit_id":"cbb6d5cff6c40e03eacc03b8b94f3c3d9a5e56bd"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cd76ba07c2a126d9322a55af716943b3b2536843","unresolved":true,"context_lines":[{"line_number":100,"context_line":"\t\tcase strings.HasSuffix(val, \"G\"):"},{"line_number":101,"context_line":"\t\t\tmultiplier \u003d 1000 * 1000 * 1000"},{"line_number":102,"context_line":"\t\tdefault:"},{"line_number":103,"context_line":"\t\t\treturn errors.New(\"must have suffix M for MB or G for GB\")"},{"line_number":104,"context_line":"\t\t}"},{"line_number":105,"context_line":"\t\tintVal, err :\u003d strconv.ParseUint(val[:len(val)-1], 10, 64)"},{"line_number":106,"context_line":"\t\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":3,"id":"d179c6e3_5ce125bc","line":103,"range":{"start_line":103,"start_character":45,"end_line":103,"end_character":47},"updated":"2024-08-29 11:01:15.000000000","message":"Don\u0027t we want to be using MiB/GiB instead? I don\u0027t want to start a religious war and subsequent schism, but in my experience this is what industry cares more about.","commit_id":"cbb6d5cff6c40e03eacc03b8b94f3c3d9a5e56bd"},{"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":"d96f5264254b2e400754c9eb219413334b5ac203","unresolved":false,"context_lines":[{"line_number":100,"context_line":"\t\tcase strings.HasSuffix(val, \"G\"):"},{"line_number":101,"context_line":"\t\t\tmultiplier \u003d 1000 * 1000 * 1000"},{"line_number":102,"context_line":"\t\tdefault:"},{"line_number":103,"context_line":"\t\t\treturn errors.New(\"must have suffix M for MB or G for GB\")"},{"line_number":104,"context_line":"\t\t}"},{"line_number":105,"context_line":"\t\tintVal, err :\u003d strconv.ParseUint(val[:len(val)-1], 10, 64)"},{"line_number":106,"context_line":"\t\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":3,"id":"a445a701_596db26b","line":103,"range":{"start_line":103,"start_character":45,"end_line":103,"end_character":47},"in_reply_to":"d179c6e3_5ce125bc","updated":"2024-09-02 15:54:24.000000000","message":"Done","commit_id":"cbb6d5cff6c40e03eacc03b8b94f3c3d9a5e56bd"}],"metropolis/test/launch/cluster.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":"b4aef0db68e80262646763282261cc25fa0c3d7a","unresolved":true,"context_lines":[{"line_number":72,"context_line":"\t// MemoryMiB is the RAM size in MiB of the VM."},{"line_number":73,"context_line":"\tMemoryMiB int"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"\tDisk uint64"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"\t// Ports contains the port mapping where to expose the internal ports of the VM to"},{"line_number":78,"context_line":"\t// the host. See IdentityPortMap() and ConflictFreePortMap(). Ignored when"}],"source_content_type":"text/x-go","patch_set":3,"id":"26d88068_0633cabf","line":75,"range":{"start_line":75,"start_character":1,"end_line":75,"end_character":5},"updated":"2024-08-28 15:32:03.000000000","message":"// DiskBytes contains the size of the root disk in bytes or zero if the unmodified image size is used.","commit_id":"cbb6d5cff6c40e03eacc03b8b94f3c3d9a5e56bd"},{"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":"d96f5264254b2e400754c9eb219413334b5ac203","unresolved":false,"context_lines":[{"line_number":72,"context_line":"\t// MemoryMiB is the RAM size in MiB of the VM."},{"line_number":73,"context_line":"\tMemoryMiB int"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"\tDisk uint64"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"\t// Ports contains the port mapping where to expose the internal ports of the VM to"},{"line_number":78,"context_line":"\t// the host. See IdentityPortMap() and ConflictFreePortMap(). Ignored when"}],"source_content_type":"text/x-go","patch_set":3,"id":"d7b353c0_1450ba2c","line":75,"range":{"start_line":75,"start_character":1,"end_line":75,"end_character":5},"in_reply_to":"26d88068_0633cabf","updated":"2024-09-02 15:54:24.000000000","message":"Done","commit_id":"cbb6d5cff6c40e03eacc03b8b94f3c3d9a5e56bd"}]}
