)]}'
{"osbase/oci/layout.go":[{"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":"2b561396b8cf3f8ccbff65cc73a877433c349eed","unresolved":true,"context_lines":[{"line_number":98,"context_line":"\t// Build the index."},{"line_number":99,"context_line":"\tartifactType :\u003d \"\""},{"line_number":100,"context_line":"\tif image, ok :\u003d ref.(*Image); ok {"},{"line_number":101,"context_line":"\t\tartifactType \u003d image.Manifest.Config.MediaType"},{"line_number":102,"context_line":"\t\tif artifactType \u003d\u003d ocispecv1.MediaTypeImageConfig {"},{"line_number":103,"context_line":"\t\t\tartifactType \u003d \"\""},{"line_number":104,"context_line":"\t\t}"}],"source_content_type":"text/x-go","patch_set":2,"id":"9392b735_51464e86","line":101,"updated":"2025-07-29 14:03:44.000000000","message":"Can you add a comment why this is done? As a person who doesn\u0027t know the depths of OCI, its not clear to me whats happening here.","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"c4de685eaf12982abd134938f420d03b09b112ad","unresolved":false,"context_lines":[{"line_number":98,"context_line":"\t// Build the index."},{"line_number":99,"context_line":"\tartifactType :\u003d \"\""},{"line_number":100,"context_line":"\tif image, ok :\u003d ref.(*Image); ok {"},{"line_number":101,"context_line":"\t\tartifactType \u003d image.Manifest.Config.MediaType"},{"line_number":102,"context_line":"\t\tif artifactType \u003d\u003d ocispecv1.MediaTypeImageConfig {"},{"line_number":103,"context_line":"\t\t\tartifactType \u003d \"\""},{"line_number":104,"context_line":"\t\t}"}],"source_content_type":"text/x-go","patch_set":2,"id":"ec85c260_345917de","line":101,"in_reply_to":"9392b735_51464e86","updated":"2025-07-30 09:59:54.000000000","message":"Done","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"2b561396b8cf3f8ccbff65cc73a877433c349eed","unresolved":true,"context_lines":[{"line_number":124,"context_line":"\t\tstructfs.File(\"index.json\", structfs.Bytes(imageIndexBytes)),"},{"line_number":125,"context_line":"\t}"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"\thasBlob :\u003d map[string]bool{}"},{"line_number":128,"context_line":"\tblobDirs :\u003d map[string]*structfs.Node{}"},{"line_number":129,"context_line":"\taddBlob :\u003d func(digest string, blob structfs.Blob) error {"},{"line_number":130,"context_line":"\t\tif hasBlob[digest] {"}],"source_content_type":"text/x-go","patch_set":2,"id":"47122f4c_71dc56f4","line":127,"updated":"2025-07-29 14:03:44.000000000","message":"I would prefer if you use make() for allocating maps. We don\u0027t have a linter for this yet, but I think I will add one.","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"c4de685eaf12982abd134938f420d03b09b112ad","unresolved":false,"context_lines":[{"line_number":124,"context_line":"\t\tstructfs.File(\"index.json\", structfs.Bytes(imageIndexBytes)),"},{"line_number":125,"context_line":"\t}"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"\thasBlob :\u003d map[string]bool{}"},{"line_number":128,"context_line":"\tblobDirs :\u003d map[string]*structfs.Node{}"},{"line_number":129,"context_line":"\taddBlob :\u003d func(digest string, blob structfs.Blob) error {"},{"line_number":130,"context_line":"\t\tif hasBlob[digest] {"}],"source_content_type":"text/x-go","patch_set":2,"id":"481b0817_762b87e9","line":127,"in_reply_to":"47122f4c_71dc56f4","updated":"2025-07-30 09:59:54.000000000","message":"Done","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"}],"osbase/oci/oci.go":[{"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":"2b561396b8cf3f8ccbff65cc73a877433c349eed","unresolved":true,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"\tswitch mediaType {"},{"line_number":96,"context_line":"\tcase ocispecv1.MediaTypeImageManifest:"},{"line_number":97,"context_line":"\t\tmanifest :\u003d \u0026ocispecv1.Manifest{}"},{"line_number":98,"context_line":"\t\terr :\u003d json.Unmarshal(rawManifest, \u0026manifest)"},{"line_number":99,"context_line":"\t\tif err !\u003d nil {"},{"line_number":100,"context_line":"\t\t\treturn nil, fmt.Errorf(\"failed to parse image manifest: %w\", err)"}],"source_content_type":"text/x-go","patch_set":2,"id":"4b33b870_07a5d3a3","line":97,"updated":"2025-07-29 14:03:44.000000000","message":"```suggestion\n\t\tvar manifest ocispecv1.Manifest\n```","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"2b561396b8cf3f8ccbff65cc73a877433c349eed","unresolved":true,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"\tswitch mediaType {"},{"line_number":96,"context_line":"\tcase ocispecv1.MediaTypeImageManifest:"},{"line_number":97,"context_line":"\t\tmanifest :\u003d \u0026ocispecv1.Manifest{}"},{"line_number":98,"context_line":"\t\terr :\u003d json.Unmarshal(rawManifest, \u0026manifest)"},{"line_number":99,"context_line":"\t\tif err !\u003d nil {"},{"line_number":100,"context_line":"\t\t\treturn nil, fmt.Errorf(\"failed to parse image manifest: %w\", err)"}],"source_content_type":"text/x-go","patch_set":2,"id":"c9066905_07bb9cb1","line":97,"updated":"2025-07-29 14:03:44.000000000","message":"`manifest` is *ocispecv1.Manifest, then two lines later, json.Unmarshal is called with `[]byte`, `**ocispecv1.Manifest`.","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"c4de685eaf12982abd134938f420d03b09b112ad","unresolved":true,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"\tswitch mediaType {"},{"line_number":96,"context_line":"\tcase ocispecv1.MediaTypeImageManifest:"},{"line_number":97,"context_line":"\t\tmanifest :\u003d \u0026ocispecv1.Manifest{}"},{"line_number":98,"context_line":"\t\terr :\u003d json.Unmarshal(rawManifest, \u0026manifest)"},{"line_number":99,"context_line":"\t\tif err !\u003d nil {"},{"line_number":100,"context_line":"\t\t\treturn nil, fmt.Errorf(\"failed to parse image manifest: %w\", err)"}],"source_content_type":"text/x-go","patch_set":2,"id":"e31caed2_5453c2f4","line":97,"in_reply_to":"4b33b870_07a5d3a3","updated":"2025-07-30 09:59:54.000000000","message":"I prefer to have the `\u0026` here instead of in the other places. Then there is only one `\u0026` instead of multiple, and it\u0027s clear that this is allocating memory.","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"c4de685eaf12982abd134938f420d03b09b112ad","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"\tswitch mediaType {"},{"line_number":96,"context_line":"\tcase ocispecv1.MediaTypeImageManifest:"},{"line_number":97,"context_line":"\t\tmanifest :\u003d \u0026ocispecv1.Manifest{}"},{"line_number":98,"context_line":"\t\terr :\u003d json.Unmarshal(rawManifest, \u0026manifest)"},{"line_number":99,"context_line":"\t\tif err !\u003d nil {"},{"line_number":100,"context_line":"\t\t\treturn nil, fmt.Errorf(\"failed to parse image manifest: %w\", err)"}],"source_content_type":"text/x-go","patch_set":2,"id":"5c7ac3c3_9985d8af","line":97,"in_reply_to":"c9066905_07bb9cb1","updated":"2025-07-30 09:59:54.000000000","message":"Thanks for catching this bug! This resulted in a nil pointer dereference when the input JSON is `null`.","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"55b7ea7dffb1c6b1f35f72d1255d47f402fc3dd6","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"\tswitch mediaType {"},{"line_number":96,"context_line":"\tcase ocispecv1.MediaTypeImageManifest:"},{"line_number":97,"context_line":"\t\tmanifest :\u003d \u0026ocispecv1.Manifest{}"},{"line_number":98,"context_line":"\t\terr :\u003d json.Unmarshal(rawManifest, \u0026manifest)"},{"line_number":99,"context_line":"\t\tif err !\u003d nil {"},{"line_number":100,"context_line":"\t\t\treturn nil, fmt.Errorf(\"failed to parse image manifest: %w\", err)"}],"source_content_type":"text/x-go","patch_set":2,"id":"35e07c11_7a27b7b0","line":97,"in_reply_to":"e31caed2_5453c2f4","updated":"2025-07-30 14:00:05.000000000","message":"Acknowledged","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"2b561396b8cf3f8ccbff65cc73a877433c349eed","unresolved":true,"context_lines":[{"line_number":96,"context_line":"\tcase ocispecv1.MediaTypeImageManifest:"},{"line_number":97,"context_line":"\t\tmanifest :\u003d \u0026ocispecv1.Manifest{}"},{"line_number":98,"context_line":"\t\terr :\u003d json.Unmarshal(rawManifest, \u0026manifest)"},{"line_number":99,"context_line":"\t\tif err !\u003d nil {"},{"line_number":100,"context_line":"\t\t\treturn nil, fmt.Errorf(\"failed to parse image manifest: %w\", err)"},{"line_number":101,"context_line":"\t\t}"},{"line_number":102,"context_line":"\t\tif manifest.MediaType !\u003d ocispecv1.MediaTypeImageManifest {"}],"source_content_type":"text/x-go","patch_set":2,"id":"743baa64_3cada3e8","line":99,"updated":"2025-07-29 14:03:44.000000000","message":"```suggestion\n\t\tif err :\u003d json.Unmarshal(rawManifest, \u0026manifest); err !\u003d nil {\n```","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"c4de685eaf12982abd134938f420d03b09b112ad","unresolved":false,"context_lines":[{"line_number":96,"context_line":"\tcase ocispecv1.MediaTypeImageManifest:"},{"line_number":97,"context_line":"\t\tmanifest :\u003d \u0026ocispecv1.Manifest{}"},{"line_number":98,"context_line":"\t\terr :\u003d json.Unmarshal(rawManifest, \u0026manifest)"},{"line_number":99,"context_line":"\t\tif err !\u003d nil {"},{"line_number":100,"context_line":"\t\t\treturn nil, fmt.Errorf(\"failed to parse image manifest: %w\", err)"},{"line_number":101,"context_line":"\t\t}"},{"line_number":102,"context_line":"\t\tif manifest.MediaType !\u003d ocispecv1.MediaTypeImageManifest {"}],"source_content_type":"text/x-go","patch_set":2,"id":"8bbcb9e0_30e381e1","line":99,"in_reply_to":"743baa64_3cada3e8","updated":"2025-07-30 09:59:54.000000000","message":"Done","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"2b561396b8cf3f8ccbff65cc73a877433c349eed","unresolved":true,"context_lines":[{"line_number":103,"context_line":"\t\t\treturn nil, fmt.Errorf(\"unexpected manifest media type %q, expected image\", manifest.MediaType)"},{"line_number":104,"context_line":"\t\t}"},{"line_number":105,"context_line":"\t\timage :\u003d \u0026Image{"},{"line_number":106,"context_line":"\t\t\tManifest:    manifest,"},{"line_number":107,"context_line":"\t\t\trawManifest: rawManifest,"},{"line_number":108,"context_line":"\t\t\tdigest:      digest,"},{"line_number":109,"context_line":"\t\t\tblobs:       blobs,"}],"source_content_type":"text/x-go","patch_set":2,"id":"85261e90_18f8ebcc","line":106,"updated":"2025-07-29 14:03:44.000000000","message":"```suggestion\n\t\t\tManifest:    \u0026manifest,\n```","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"c4de685eaf12982abd134938f420d03b09b112ad","unresolved":false,"context_lines":[{"line_number":103,"context_line":"\t\t\treturn nil, fmt.Errorf(\"unexpected manifest media type %q, expected image\", manifest.MediaType)"},{"line_number":104,"context_line":"\t\t}"},{"line_number":105,"context_line":"\t\timage :\u003d \u0026Image{"},{"line_number":106,"context_line":"\t\t\tManifest:    manifest,"},{"line_number":107,"context_line":"\t\t\trawManifest: rawManifest,"},{"line_number":108,"context_line":"\t\t\tdigest:      digest,"},{"line_number":109,"context_line":"\t\t\tblobs:       blobs,"}],"source_content_type":"text/x-go","patch_set":2,"id":"17fd8bf1_89e2a343","line":106,"in_reply_to":"85261e90_18f8ebcc","updated":"2025-07-30 09:59:54.000000000","message":"Done","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"2b561396b8cf3f8ccbff65cc73a877433c349eed","unresolved":true,"context_lines":[{"line_number":116,"context_line":"\t\t}"},{"line_number":117,"context_line":"\t\treturn image, nil"},{"line_number":118,"context_line":"\tcase ocispecv1.MediaTypeImageIndex:"},{"line_number":119,"context_line":"\t\tmanifest :\u003d \u0026ocispecv1.Index{}"},{"line_number":120,"context_line":"\t\terr :\u003d json.Unmarshal(rawManifest, \u0026manifest)"},{"line_number":121,"context_line":"\t\tif err !\u003d nil {"},{"line_number":122,"context_line":"\t\t\treturn nil, fmt.Errorf(\"failed to parse index manifest: %w\", err)"}],"source_content_type":"text/x-go","patch_set":2,"id":"4bd53844_1e18a551","line":119,"updated":"2025-07-29 14:03:44.000000000","message":"Same as above","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"c4de685eaf12982abd134938f420d03b09b112ad","unresolved":false,"context_lines":[{"line_number":116,"context_line":"\t\t}"},{"line_number":117,"context_line":"\t\treturn image, nil"},{"line_number":118,"context_line":"\tcase ocispecv1.MediaTypeImageIndex:"},{"line_number":119,"context_line":"\t\tmanifest :\u003d \u0026ocispecv1.Index{}"},{"line_number":120,"context_line":"\t\terr :\u003d json.Unmarshal(rawManifest, \u0026manifest)"},{"line_number":121,"context_line":"\t\tif err !\u003d nil {"},{"line_number":122,"context_line":"\t\t\treturn nil, fmt.Errorf(\"failed to parse index manifest: %w\", err)"}],"source_content_type":"text/x-go","patch_set":2,"id":"bcf2a7e8_a80d0f9f","line":119,"in_reply_to":"4bd53844_1e18a551","updated":"2025-07-30 09:59:54.000000000","message":"Done","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"2b561396b8cf3f8ccbff65cc73a877433c349eed","unresolved":true,"context_lines":[{"line_number":144,"context_line":"\t}"},{"line_number":145,"context_line":"\timage, ok :\u003d ref.(*Image)"},{"line_number":146,"context_line":"\tif !ok {"},{"line_number":147,"context_line":"\t\treturn nil, fmt.Errorf(\"unexpected manifest media type %q, only image is supported\", ref.MediaType())"},{"line_number":148,"context_line":"\t}"},{"line_number":149,"context_line":"\treturn image, nil"},{"line_number":150,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"bd2b245e_9ba9f359","line":147,"range":{"start_line":147,"start_character":66,"end_line":147,"end_character":71},"updated":"2025-07-29 14:03:44.000000000","message":"Add quotes around this, as the error also quotes the unexpected type","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"55b7ea7dffb1c6b1f35f72d1255d47f402fc3dd6","unresolved":false,"context_lines":[{"line_number":144,"context_line":"\t}"},{"line_number":145,"context_line":"\timage, ok :\u003d ref.(*Image)"},{"line_number":146,"context_line":"\tif !ok {"},{"line_number":147,"context_line":"\t\treturn nil, fmt.Errorf(\"unexpected manifest media type %q, only image is supported\", ref.MediaType())"},{"line_number":148,"context_line":"\t}"},{"line_number":149,"context_line":"\treturn image, nil"},{"line_number":150,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"be5c526a_7f513249","line":147,"range":{"start_line":147,"start_character":66,"end_line":147,"end_character":71},"in_reply_to":"b88386f1_d7742e8f","updated":"2025-07-30 14:00:05.000000000","message":"Acknowledged","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"c4de685eaf12982abd134938f420d03b09b112ad","unresolved":true,"context_lines":[{"line_number":144,"context_line":"\t}"},{"line_number":145,"context_line":"\timage, ok :\u003d ref.(*Image)"},{"line_number":146,"context_line":"\tif !ok {"},{"line_number":147,"context_line":"\t\treturn nil, fmt.Errorf(\"unexpected manifest media type %q, only image is supported\", ref.MediaType())"},{"line_number":148,"context_line":"\t}"},{"line_number":149,"context_line":"\treturn image, nil"},{"line_number":150,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"b88386f1_d7742e8f","line":147,"range":{"start_line":147,"start_character":66,"end_line":147,"end_character":71},"in_reply_to":"bd2b245e_9ba9f359","updated":"2025-07-30 09:59:54.000000000","message":"I intentionally did not add quotes here because this is an abbreviation, the full type is `application/vnd.oci.image.manifest.v1+json`. Here, the exact type does not matter, the error is that we got an index when we can only handle an image. But it does make sense to show the full expected type in NewRef, so I added that.","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"2b561396b8cf3f8ccbff65cc73a877433c349eed","unresolved":true,"context_lines":[{"line_number":156,"context_line":"// different from ref.Digest() if we ever support multiple digest algorithms."},{"line_number":157,"context_line":"func WalkRefs(digest string, ref Ref, fn func(digest string, ref Ref) error) error {"},{"line_number":158,"context_line":"\tvisited :\u003d make(map[string]bool)"},{"line_number":159,"context_line":"\treturn walkRefs(digest, ref, fn, visited)"},{"line_number":160,"context_line":"}"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"func walkRefs(digest string, ref Ref, fn func(digest string, ref Ref) error, visited map[string]bool) error {"}],"source_content_type":"text/x-go","patch_set":2,"id":"691b6a80_c6d9a49f","line":159,"updated":"2025-07-29 14:03:44.000000000","message":"I am still in conflict with myself if I would inline this or not","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"c4de685eaf12982abd134938f420d03b09b112ad","unresolved":false,"context_lines":[{"line_number":156,"context_line":"// different from ref.Digest() if we ever support multiple digest algorithms."},{"line_number":157,"context_line":"func WalkRefs(digest string, ref Ref, fn func(digest string, ref Ref) error) error {"},{"line_number":158,"context_line":"\tvisited :\u003d make(map[string]bool)"},{"line_number":159,"context_line":"\treturn walkRefs(digest, ref, fn, visited)"},{"line_number":160,"context_line":"}"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"func walkRefs(digest string, ref Ref, fn func(digest string, ref Ref) error, visited map[string]bool) error {"}],"source_content_type":"text/x-go","patch_set":2,"id":"f0136ded_f52b9911","line":159,"in_reply_to":"691b6a80_c6d9a49f","updated":"2025-07-30 09:59:54.000000000","message":"Doing it with a recursive closure doesn\u0027t look like an improvement to me.","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"}],"osbase/oci/registry/client.go":[{"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":"2b561396b8cf3f8ccbff65cc73a877433c349eed","unresolved":true,"context_lines":[{"line_number":140,"context_line":"\tdefault:"},{"line_number":141,"context_line":"\t\t// We need to parse the manifest to extract the media type, then parse it"},{"line_number":142,"context_line":"\t\t// again for that media type."},{"line_number":143,"context_line":"\t\tmanifest :\u003d \u0026unknownManifest{}"},{"line_number":144,"context_line":"\t\terr :\u003d json.Unmarshal(manifestBytes, \u0026manifest)"},{"line_number":145,"context_line":"\t\tif err !\u003d nil {"},{"line_number":146,"context_line":"\t\t\treturn nil, fmt.Errorf(\"failed to parse manifest: %w\", err)"}],"source_content_type":"text/x-go","patch_set":2,"id":"df6f4660_42139f10","line":143,"updated":"2025-07-29 14:03:44.000000000","message":"Same as the other json.Unmarshal calls.","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"},{"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":"c4de685eaf12982abd134938f420d03b09b112ad","unresolved":false,"context_lines":[{"line_number":140,"context_line":"\tdefault:"},{"line_number":141,"context_line":"\t\t// We need to parse the manifest to extract the media type, then parse it"},{"line_number":142,"context_line":"\t\t// again for that media type."},{"line_number":143,"context_line":"\t\tmanifest :\u003d \u0026unknownManifest{}"},{"line_number":144,"context_line":"\t\terr :\u003d json.Unmarshal(manifestBytes, \u0026manifest)"},{"line_number":145,"context_line":"\t\tif err !\u003d nil {"},{"line_number":146,"context_line":"\t\t\treturn nil, fmt.Errorf(\"failed to parse manifest: %w\", err)"}],"source_content_type":"text/x-go","patch_set":2,"id":"3b1712f1_9cfecef4","line":143,"in_reply_to":"df6f4660_42139f10","updated":"2025-07-30 09:59:54.000000000","message":"Done","commit_id":"56ede8fa99475d1fe9da84f6b63f42fc290cefa1"}]}
