)]}'
{"/COMMIT_MSG":[{"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":"c70aedde91fcc56e8cd7725ab040dfe06ced6529","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"To allow users to not always request all messages,"},{"line_number":10,"context_line":"we introduce another option to the logtree.LogReader allowing"},{"line_number":11,"context_line":"for starting at a specific global log id. This allows e.g. an"},{"line_number":12,"context_line":"easier scrollback implementation."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I1773288f670f476706d94baf3f052fe1e5da9eb0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"251d575d_816bcfba","line":11,"range":{"start_line":11,"start_character":55,"end_line":11,"end_character":58},"updated":"2025-07-22 15:23:17.000000000","message":"for example","commit_id":"263e94a73c22fb4c73e659a51fd14d3cd18a4cf1"},{"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":"128a80b35b6e4b1f25f090dc07719e3dc5fe1559","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"To allow users to not always request all messages,"},{"line_number":10,"context_line":"we introduce another option to the logtree.LogReader allowing"},{"line_number":11,"context_line":"for starting at a specific global log id. This allows e.g. an"},{"line_number":12,"context_line":"easier scrollback implementation."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I1773288f670f476706d94baf3f052fe1e5da9eb0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"e263edc7_36bb3447","line":11,"range":{"start_line":11,"start_character":55,"end_line":11,"end_character":58},"in_reply_to":"251d575d_816bcfba","updated":"2025-07-22 16:26:50.000000000","message":"Done","commit_id":"263e94a73c22fb4c73e659a51fd14d3cd18a4cf1"}],"osbase/logtree/logtree_access.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":"c70aedde91fcc56e8cd7725ab040dfe06ced6529","unresolved":true,"context_lines":[{"line_number":68,"context_line":"\treturn func(lro *logReaderOptions) { lro.withBacklogOrder \u003d order }"},{"line_number":69,"context_line":"}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"// WithStartPosition makes Read return log entries from the given position"},{"line_number":72,"context_line":"// index. It requires WithBacklog to be provided."},{"line_number":73,"context_line":"func WithStartPosition(pos int) LogReadOption {"},{"line_number":74,"context_line":"\treturn func(lro *logReaderOptions) { lro.withStartPosition \u003d pos }"},{"line_number":75,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":4,"id":"d3f5e3b6_39bf5350","line":72,"range":{"start_line":71,"start_character":66,"end_line":72,"end_character":10},"updated":"2025-07-22 15:23:17.000000000","message":"Either use `position` or `index`, not both. And make it consistent. Also explain where users of this API can get such positions. Also I think right now since it is not exported this functionality cannot be used outside of this package.","commit_id":"263e94a73c22fb4c73e659a51fd14d3cd18a4cf1"},{"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":"03cd4bc51daf2fe5775f9113e6c78e267d76f4d0","unresolved":false,"context_lines":[{"line_number":68,"context_line":"\treturn func(lro *logReaderOptions) { lro.withBacklogOrder \u003d order }"},{"line_number":69,"context_line":"}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"// WithStartPosition makes Read return log entries from the given position"},{"line_number":72,"context_line":"// index. It requires WithBacklog to be provided."},{"line_number":73,"context_line":"func WithStartPosition(pos int) LogReadOption {"},{"line_number":74,"context_line":"\treturn func(lro *logReaderOptions) { lro.withStartPosition \u003d pos }"},{"line_number":75,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":4,"id":"2662318f_43fe3c82","line":72,"range":{"start_line":71,"start_character":66,"end_line":72,"end_character":10},"in_reply_to":"d3f5e3b6_39bf5350","updated":"2025-07-22 16:27:03.000000000","message":"Done","commit_id":"263e94a73c22fb4c73e659a51fd14d3cd18a4cf1"}],"osbase/logtree/logtree_access_test.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":"f781c66b7184ffd44ff423dde418870b325c2fb3","unresolved":true,"context_lines":[{"line_number":27,"context_line":"\t\tdirection ReadDirection"},{"line_number":28,"context_line":"\t\tpos       int"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"\t\texpectedCount int"},{"line_number":31,"context_line":"\t}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"\tfor _, tc :\u003d range []tCase{"}],"source_content_type":"text/x-go","patch_set":9,"id":"8362dabd_276efb5d","line":30,"range":{"start_line":30,"start_character":2,"end_line":30,"end_character":15},"updated":"2025-07-24 14:39:40.000000000","message":"Also test for the first and last entry.","commit_id":"e705d2c98b25650c9e0c8ed1fcbb28acb2963477"},{"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":"dc34d83a64124ea4c9e6dcafddaa836a6a795942","unresolved":true,"context_lines":[{"line_number":27,"context_line":"\t\tdirection ReadDirection"},{"line_number":28,"context_line":"\t\tpos       int"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"\t\texpectedCount int"},{"line_number":31,"context_line":"\t}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"\tfor _, tc :\u003d range []tCase{"}],"source_content_type":"text/x-go","patch_set":9,"id":"957f8909_9128b742","line":30,"range":{"start_line":30,"start_character":2,"end_line":30,"end_character":15},"in_reply_to":"8362dabd_276efb5d","updated":"2025-07-24 22:49:26.000000000","message":"What do you mean?","commit_id":"e705d2c98b25650c9e0c8ed1fcbb28acb2963477"},{"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":"4b3efad912ee2b4151aaec9772af5c9563f02fc2","unresolved":true,"context_lines":[{"line_number":27,"context_line":"\t\tdirection ReadDirection"},{"line_number":28,"context_line":"\t\tpos       int"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"\t\texpectedCount int"},{"line_number":31,"context_line":"\t}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"\tfor _, tc :\u003d range []tCase{"}],"source_content_type":"text/x-go","patch_set":9,"id":"e87c57ca_e772e899","line":30,"range":{"start_line":30,"start_character":2,"end_line":30,"end_character":15},"in_reply_to":"957f8909_9128b742","updated":"2025-07-28 13:10:14.000000000","message":"Test for an expected first and last line to make sure that we\u0027re actually getting what we\u0027re expecting.","commit_id":"e705d2c98b25650c9e0c8ed1fcbb28acb2963477"},{"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":"f398b1c81eb6bb8dcefac73bf5d0dae049c6cdaf","unresolved":false,"context_lines":[{"line_number":27,"context_line":"\t\tdirection ReadDirection"},{"line_number":28,"context_line":"\t\tpos       int"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"\t\texpectedCount int"},{"line_number":31,"context_line":"\t}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"\tfor _, tc :\u003d range []tCase{"}],"source_content_type":"text/x-go","patch_set":9,"id":"bc950e4a_6363fe3d","line":30,"range":{"start_line":30,"start_character":2,"end_line":30,"end_character":15},"in_reply_to":"d177d180_8ff11538","updated":"2025-07-28 16:28:07.000000000","message":"Done","commit_id":"e705d2c98b25650c9e0c8ed1fcbb28acb2963477"},{"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":"4c44c5266394f945f8b1980ece1a17dcbd1008d2","unresolved":true,"context_lines":[{"line_number":27,"context_line":"\t\tdirection ReadDirection"},{"line_number":28,"context_line":"\t\tpos       int"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"\t\texpectedCount int"},{"line_number":31,"context_line":"\t}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"\tfor _, tc :\u003d range []tCase{"}],"source_content_type":"text/x-go","patch_set":9,"id":"d177d180_8ff11538","line":30,"range":{"start_line":30,"start_character":2,"end_line":30,"end_character":15},"in_reply_to":"e87c57ca_e772e899","updated":"2025-07-28 13:33:42.000000000","message":"Thats what the test already does...","commit_id":"e705d2c98b25650c9e0c8ed1fcbb28acb2963477"}]}
