)]}'
{"cloud/shepherd/equinix/wrapngo/wrapn.go":[{"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":"b97ea00eac837a073c0277a0b1a1fbf8ee70a8f3","unresolved":true,"context_lines":[{"line_number":102,"context_line":"\t// which this machine was requested got lost."},{"line_number":103,"context_line":"\tCreateDevice(ctx context.Context, request *packngo.DeviceCreateRequest) (*packngo.Device, error)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"\t// ListReservations returns a complete list of hardware reservations associated"},{"line_number":106,"context_line":"\t// with project pid. This is an expensive method that takes a while to execute,"},{"line_number":107,"context_line":"\t// handle with care."},{"line_number":108,"context_line":"\tListReservations(ctx context.Context, pid string) ([]packngo.HardwareReservation, error)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"\t// MoveReservation moves a reserved device to the given project."},{"line_number":111,"context_line":"\tMoveReservation(ctx context.Context, hardwareReservationDID, projectID string) (*packngo.HardwareReservation, error)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"\t// ListSSHKeys wraps packngo\u0027s cl.Keys.List."},{"line_number":114,"context_line":"\tListSSHKeys(ctx context.Context) ([]packngo.SSHKey, error)"}],"source_content_type":"text/x-go","patch_set":4,"id":"5e3c5f48_a98e8514","line":111,"range":{"start_line":105,"start_character":0,"end_line":111,"end_character":117},"updated":"2023-05-30 11:48:18.000000000","message":"```suggestion\n\t// ListReservations returns a complete list of hardware reservations associated\n\t// with project pid. This is an expensive method that takes a while to execute,\n\t// handle with care.\n\tListReservations(ctx context.Context, pid string) ([]packngo.HardwareReservation, error)\n\t// MoveReservation moves a reserved device to the given project.\n\tMoveReservation(ctx context.Context, hardwareReservationDID, projectID string) (*packngo.HardwareReservation, error)\n```","commit_id":"54751c8978bb8d491551a2c2ad14372273d7b858"},{"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":"bfb4ad720bb9a8d47559fec5506e0f11324f7642","unresolved":false,"context_lines":[{"line_number":102,"context_line":"\t// which this machine was requested got lost."},{"line_number":103,"context_line":"\tCreateDevice(ctx context.Context, request *packngo.DeviceCreateRequest) (*packngo.Device, error)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"\t// ListReservations returns a complete list of hardware reservations associated"},{"line_number":106,"context_line":"\t// with project pid. This is an expensive method that takes a while to execute,"},{"line_number":107,"context_line":"\t// handle with care."},{"line_number":108,"context_line":"\tListReservations(ctx context.Context, pid string) ([]packngo.HardwareReservation, error)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"\t// MoveReservation moves a reserved device to the given project."},{"line_number":111,"context_line":"\tMoveReservation(ctx context.Context, hardwareReservationDID, projectID string) (*packngo.HardwareReservation, error)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"\t// ListSSHKeys wraps packngo\u0027s cl.Keys.List."},{"line_number":114,"context_line":"\tListSSHKeys(ctx context.Context) ([]packngo.SSHKey, error)"}],"source_content_type":"text/x-go","patch_set":4,"id":"eac22285_10932258","line":111,"range":{"start_line":105,"start_character":0,"end_line":111,"end_character":117},"in_reply_to":"5e3c5f48_a98e8514","updated":"2023-05-30 13:28:07.000000000","message":"Ack","commit_id":"54751c8978bb8d491551a2c2ad14372273d7b858"},{"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":"b97ea00eac837a073c0277a0b1a1fbf8ee70a8f3","unresolved":true,"context_lines":[{"line_number":125,"context_line":"\tRebootDevice(ctx context.Context, did string) error"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"\tClose()"},{"line_number":128,"context_line":"\tDeleteDevice(ctx context.Context, id string) error"},{"line_number":129,"context_line":"}"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"// client implements the Client interface."},{"line_number":132,"context_line":"type client struct {"}],"source_content_type":"text/x-go","patch_set":4,"id":"749dfa53_8b27d8aa","line":129,"range":{"start_line":128,"start_character":1,"end_line":129,"end_character":1},"updated":"2023-05-30 11:48:18.000000000","message":"Whoops, that interface is now a bit out of order.\n\nPlease move RebootDevice and DeleteDevice to be right after CreateDevice, and leave Close at the end of the interface.","commit_id":"54751c8978bb8d491551a2c2ad14372273d7b858"},{"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":"bfb4ad720bb9a8d47559fec5506e0f11324f7642","unresolved":false,"context_lines":[{"line_number":125,"context_line":"\tRebootDevice(ctx context.Context, did string) error"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"\tClose()"},{"line_number":128,"context_line":"\tDeleteDevice(ctx context.Context, id string) error"},{"line_number":129,"context_line":"}"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"// client implements the Client interface."},{"line_number":132,"context_line":"type client struct {"}],"source_content_type":"text/x-go","patch_set":4,"id":"47382be2_ba0c5db8","line":129,"range":{"start_line":128,"start_character":1,"end_line":129,"end_character":1},"in_reply_to":"749dfa53_8b27d8aa","updated":"2023-05-30 13:28:07.000000000","message":"Ack","commit_id":"54751c8978bb8d491551a2c2ad14372273d7b858"},{"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":"b97ea00eac837a073c0277a0b1a1fbf8ee70a8f3","unresolved":true,"context_lines":[{"line_number":179,"context_line":"\treturn"},{"line_number":180,"context_line":"}"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"func (e *client) UpdateMachine(ctx context.Context, id string, r *packngo.DeviceUpdateRequest) (*packngo.Device, error) {"},{"line_number":183,"context_line":"\treturn wrap(ctx, e, func(p *packngo.Client) (*packngo.Device, error) {"},{"line_number":184,"context_line":"\t\td, _, err :\u003d p.Devices.Update(id, r)"},{"line_number":185,"context_line":"\t\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":4,"id":"501442e0_fa41ba18","line":182,"updated":"2023-05-30 11:48:18.000000000","message":"UpdateDevice (we call them Devices here, not machines).\n\nAlso move this to be lower down in the file, next to the other XXXDevice calls.","commit_id":"54751c8978bb8d491551a2c2ad14372273d7b858"},{"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":"bfb4ad720bb9a8d47559fec5506e0f11324f7642","unresolved":false,"context_lines":[{"line_number":179,"context_line":"\treturn"},{"line_number":180,"context_line":"}"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"func (e *client) UpdateMachine(ctx context.Context, id string, r *packngo.DeviceUpdateRequest) (*packngo.Device, error) {"},{"line_number":183,"context_line":"\treturn wrap(ctx, e, func(p *packngo.Client) (*packngo.Device, error) {"},{"line_number":184,"context_line":"\t\td, _, err :\u003d p.Devices.Update(id, r)"},{"line_number":185,"context_line":"\t\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":4,"id":"5d93ec0b_39bac501","line":182,"in_reply_to":"501442e0_fa41ba18","updated":"2023-05-30 13:28:07.000000000","message":"Ack","commit_id":"54751c8978bb8d491551a2c2ad14372273d7b858"},{"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":"b97ea00eac837a073c0277a0b1a1fbf8ee70a8f3","unresolved":true,"context_lines":[{"line_number":373,"context_line":"\t})"},{"line_number":374,"context_line":"}"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"func (e *client) MoveReservation(ctx context.Context, hardwareReservationDID, projectID string) (*packngo.HardwareReservation, error) {"},{"line_number":377,"context_line":"\treturn wrap(ctx, e, func(cl *packngo.Client) (*packngo.HardwareReservation, error) {"},{"line_number":378,"context_line":"\t\thr, _, err :\u003d cl.HardwareReservations.Move(hardwareReservationDID, projectID)"},{"line_number":379,"context_line":"\t\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":4,"id":"4950343c_95e77e4f","line":376,"range":{"start_line":376,"start_character":17,"end_line":376,"end_character":32},"updated":"2023-05-30 11:48:18.000000000","message":"Move this to be after ListReservations.","commit_id":"54751c8978bb8d491551a2c2ad14372273d7b858"},{"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":"867df56278927271e25fe114bb89ac9de4b36912","unresolved":false,"context_lines":[{"line_number":373,"context_line":"\t})"},{"line_number":374,"context_line":"}"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"func (e *client) MoveReservation(ctx context.Context, hardwareReservationDID, projectID string) (*packngo.HardwareReservation, error) {"},{"line_number":377,"context_line":"\treturn wrap(ctx, e, func(cl *packngo.Client) (*packngo.HardwareReservation, error) {"},{"line_number":378,"context_line":"\t\thr, _, err :\u003d cl.HardwareReservations.Move(hardwareReservationDID, projectID)"},{"line_number":379,"context_line":"\t\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":4,"id":"1f596cc7_15a42467","line":376,"range":{"start_line":376,"start_character":17,"end_line":376,"end_character":32},"in_reply_to":"4950343c_95e77e4f","updated":"2023-05-30 13:28:12.000000000","message":"Done","commit_id":"54751c8978bb8d491551a2c2ad14372273d7b858"}]}
