{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":336822007,"defaultBranch":"main","name":"graphql-ws-client","ownerLogin":"obmarg","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-02-07T15:36:32.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/556490?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1724260410.0","currentOid":""},"activityList":{"items":[{"before":"a92fb00ed67456aa6ef1243483db13d83e30b10a","after":null,"ref":"refs/heads/release-plz-2024-06-29T13-40-07Z","pushedAt":"2024-08-21T17:12:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"}},{"before":"bb958cb05efaf62f4c7a60d39568ab4e15497292","after":"fa8447d6acd797c90f6bb936fa831126b21a301e","ref":"refs/heads/main","pushedAt":"2024-08-21T17:12:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"release: v0.10.2 (#115)","shortMessageHtmlLink":"release: v0.10.2 (#115)"}},{"before":"35be455025538d87c0bbece1432df0e992808790","after":"a92fb00ed67456aa6ef1243483db13d83e30b10a","ref":"refs/heads/release-plz-2024-06-29T13-40-07Z","pushedAt":"2024-08-21T17:11:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md","shortMessageHtmlLink":"Update CHANGELOG.md"}},{"before":"67ac8ffce172b77343a784f14d858c3dc40cb774","after":"35be455025538d87c0bbece1432df0e992808790","ref":"refs/heads/release-plz-2024-06-29T13-40-07Z","pushedAt":"2024-08-21T17:10:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md","shortMessageHtmlLink":"Update CHANGELOG.md"}},{"before":"bb958cb05efaf62f4c7a60d39568ab4e15497292","after":"67ac8ffce172b77343a784f14d858c3dc40cb774","ref":"refs/heads/release-plz-2024-06-29T13-40-07Z","pushedAt":"2024-08-21T17:05:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"graphql-ws-client-releaser[bot]","name":null,"path":"/apps/graphql-ws-client-releaser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"chore: release","shortMessageHtmlLink":"chore: release"}},{"before":"8e03aaae427bb2efa3b86a64069a5617e0de479c","after":"bb958cb05efaf62f4c7a60d39568ab4e15497292","ref":"refs/heads/release-plz-2024-06-29T13-40-07Z","pushedAt":"2024-08-21T17:05:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"graphql-ws-client-releaser[bot]","name":null,"path":"/apps/graphql-ws-client-releaser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"fix: send graphql-specific ping instead of ws ping frame (#117)\n\n## Description\n\nWhen using the new keepalive functionality, we noticed that the pings\nare sent as [websocket ping frames][1] rather than as\n[graphql-transport-ws ping messages][2].\n\nAside from conforming to the protocol, the sub-protocol ping messages\nshould be used to support a heartbeat mechanism from browser (i.e. wasm)\nclients, where there isn't a concept of ping / pong frames.\nSpecifically, setting a `KeepAliveSettings::interval` from a browser\nclient does not do anything right now.\n\n## Testing\n\nLocally tested to confirm that the correct ping messages are now sent\nfrom browser clients (and that a gql-conforming server responds with the\nappropriate pong message).\n\n[1]: https://datatracker.ietf.org/doc/html/rfc6455#section-5.5.2\n[2]: https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md#ping","shortMessageHtmlLink":"fix: send graphql-specific ping instead of ws ping frame (#117)"}},{"before":"a4e7eb8e9b839fc312b253350384d424c6787092","after":"bb958cb05efaf62f4c7a60d39568ab4e15497292","ref":"refs/heads/main","pushedAt":"2024-08-21T17:03:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"fix: send graphql-specific ping instead of ws ping frame (#117)\n\n## Description\n\nWhen using the new keepalive functionality, we noticed that the pings\nare sent as [websocket ping frames][1] rather than as\n[graphql-transport-ws ping messages][2].\n\nAside from conforming to the protocol, the sub-protocol ping messages\nshould be used to support a heartbeat mechanism from browser (i.e. wasm)\nclients, where there isn't a concept of ping / pong frames.\nSpecifically, setting a `KeepAliveSettings::interval` from a browser\nclient does not do anything right now.\n\n## Testing\n\nLocally tested to confirm that the correct ping messages are now sent\nfrom browser clients (and that a gql-conforming server responds with the\nappropriate pong message).\n\n[1]: https://datatracker.ietf.org/doc/html/rfc6455#section-5.5.2\n[2]: https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md#ping","shortMessageHtmlLink":"fix: send graphql-specific ping instead of ws ping frame (#117)"}},{"before":"a4e7eb8e9b839fc312b253350384d424c6787092","after":"8e03aaae427bb2efa3b86a64069a5617e0de479c","ref":"refs/heads/release-plz-2024-06-29T13-40-07Z","pushedAt":"2024-08-21T17:01:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"graphql-ws-client-releaser[bot]","name":null,"path":"/apps/graphql-ws-client-releaser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"chore: release","shortMessageHtmlLink":"chore: release"}},{"before":"be6b4abd5f3f123ff7677f97637670dfbc8df38a","after":"a4e7eb8e9b839fc312b253350384d424c6787092","ref":"refs/heads/release-plz-2024-06-29T13-40-07Z","pushedAt":"2024-08-21T17:01:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"graphql-ws-client-releaser[bot]","name":null,"path":"/apps/graphql-ws-client-releaser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"Fix pong messages to follow the graphql websocket protocol. (#116)\n\nThe graphql websocket protocol uses messages with the text opcode and\r\npayload `{\"type\": \"ping\"}`/`{\"type\": \"pong\"}` instead of using the ping\r\nand pong opcodes.\r\n\r\nAt present, `graphql-ws-client` interprets a text message with payload\r\n`{\"type\": \"ping\"}` but responds with a pong message. This can lead to\r\nservers dropping the connection, due to receiving a message that doesn't\r\nconform with the `graphql-transport-ws` protocol (see:\r\nhttps://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md#ping).\r\n\r\n`Message::graphql_pong()` is already used in\r\n[`ClientBuilder::build()`](https://github.com/obmarg/graphql-ws-client/blob/1233eb5c8473c1c402c6a9acf189b0dc28fbf395/src/next/builder.rs#L189-L191)\r\nto respond to any ping messages received during connection\r\ninitialization, but it isn't used for pings received after a\r\nsubscription has been established.\r\n\r\nI discovered this when updating our codebase from `graphql-ws-client\r\n0.6.0` to `graphql-ws-client 0.10.1`, and noticed that the server would\r\nrespond with a close frame after our client responded to a server-sent\r\nping frame.","shortMessageHtmlLink":"Fix pong messages to follow the graphql websocket protocol. (#116)"}},{"before":"1233eb5c8473c1c402c6a9acf189b0dc28fbf395","after":"a4e7eb8e9b839fc312b253350384d424c6787092","ref":"refs/heads/main","pushedAt":"2024-08-21T16:55:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"Fix pong messages to follow the graphql websocket protocol. (#116)\n\nThe graphql websocket protocol uses messages with the text opcode and\r\npayload `{\"type\": \"ping\"}`/`{\"type\": \"pong\"}` instead of using the ping\r\nand pong opcodes.\r\n\r\nAt present, `graphql-ws-client` interprets a text message with payload\r\n`{\"type\": \"ping\"}` but responds with a pong message. This can lead to\r\nservers dropping the connection, due to receiving a message that doesn't\r\nconform with the `graphql-transport-ws` protocol (see:\r\nhttps://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md#ping).\r\n\r\n`Message::graphql_pong()` is already used in\r\n[`ClientBuilder::build()`](https://github.com/obmarg/graphql-ws-client/blob/1233eb5c8473c1c402c6a9acf189b0dc28fbf395/src/next/builder.rs#L189-L191)\r\nto respond to any ping messages received during connection\r\ninitialization, but it isn't used for pings received after a\r\nsubscription has been established.\r\n\r\nI discovered this when updating our codebase from `graphql-ws-client\r\n0.6.0` to `graphql-ws-client 0.10.1`, and noticed that the server would\r\nrespond with a close frame after our client responded to a server-sent\r\nping frame.","shortMessageHtmlLink":"Fix pong messages to follow the graphql websocket protocol. (#116)"}},{"before":"1233eb5c8473c1c402c6a9acf189b0dc28fbf395","after":"be6b4abd5f3f123ff7677f97637670dfbc8df38a","ref":"refs/heads/release-plz-2024-06-29T13-40-07Z","pushedAt":"2024-06-29T13:40:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"graphql-ws-client-releaser[bot]","name":null,"path":"/apps/graphql-ws-client-releaser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"chore: release","shortMessageHtmlLink":"chore: release"}},{"before":null,"after":"1233eb5c8473c1c402c6a9acf189b0dc28fbf395","ref":"refs/heads/release-plz-2024-06-29T13-40-07Z","pushedAt":"2024-06-29T13:40:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"graphql-ws-client-releaser[bot]","name":null,"path":"/apps/graphql-ws-client-releaser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"chore: tidy some things (#114)","shortMessageHtmlLink":"chore: tidy some things (#114)"}},{"before":"a167a2a5ad3529987dad3c83c72c9374a8447a9a","after":"1233eb5c8473c1c402c6a9acf189b0dc28fbf395","ref":"refs/heads/main","pushedAt":"2024-06-29T13:34:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"chore: tidy some things (#114)","shortMessageHtmlLink":"chore: tidy some things (#114)"}},{"before":"5e7d4328589a202d7bda13fc6560f3a8427c941e","after":null,"ref":"refs/heads/release-plz-2024-06-08T15-02-11Z","pushedAt":"2024-06-08T16:20:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"}},{"before":"c76a8263358c0cdec00eb21cf8802a0ab8ccf07c","after":"a167a2a5ad3529987dad3c83c72c9374a8447a9a","ref":"refs/heads/main","pushedAt":"2024-06-08T16:20:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"release: v0.10.1 (#110)","shortMessageHtmlLink":"release: v0.10.1 (#110)"}},{"before":"f50a3c07b617610cc56a0edc035b4f41248ca3ee","after":"5e7d4328589a202d7bda13fc6560f3a8427c941e","ref":"refs/heads/release-plz-2024-06-08T15-02-11Z","pushedAt":"2024-06-08T16:19:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md","shortMessageHtmlLink":"Update CHANGELOG.md"}},{"before":"c76a8263358c0cdec00eb21cf8802a0ab8ccf07c","after":"f50a3c07b617610cc56a0edc035b4f41248ca3ee","ref":"refs/heads/release-plz-2024-06-08T15-02-11Z","pushedAt":"2024-06-08T16:13:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"graphql-ws-client-releaser[bot]","name":null,"path":"/apps/graphql-ws-client-releaser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"chore: release","shortMessageHtmlLink":"chore: release"}},{"before":"03d3cd023dafddb54fa59168cbaf95fed155ea2f","after":"c76a8263358c0cdec00eb21cf8802a0ab8ccf07c","ref":"refs/heads/release-plz-2024-06-08T15-02-11Z","pushedAt":"2024-06-08T16:13:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"graphql-ws-client-releaser[bot]","name":null,"path":"/apps/graphql-ws-client-releaser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"fix: remove futures from ws_stream_wasm module (#111)\n\nIn #107 I removed futures in favour of futures-lite in various places.\r\nHowever, because ws_stream_wasm is not a default feature I didn't notice\r\nthat I'd not removed futures from there as well.\r\n\r\nCI also did not catch this because futures was used for the tungstenite\r\nfeature, which is often always on.\r\n\r\nThis PR removes futures entirely, by implementing our own copy of\r\nStreamExt::send based on the futures impl, and then making sure there's\r\nno remaining uses of futures in the crate.","shortMessageHtmlLink":"fix: remove futures from ws_stream_wasm module (#111)"}},{"before":"8067e3c1ccb98ee45a3ca34b9ba37b2a20439481","after":null,"ref":"refs/heads/obmarg/push-qzollyxwkpvw","pushedAt":"2024-06-08T16:12:21.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"}},{"before":"681d7e8bf6d9075d33bc931a10665ac46bdf07eb","after":"c76a8263358c0cdec00eb21cf8802a0ab8ccf07c","ref":"refs/heads/main","pushedAt":"2024-06-08T16:12:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"fix: remove futures from ws_stream_wasm module (#111)\n\nIn #107 I removed futures in favour of futures-lite in various places.\r\nHowever, because ws_stream_wasm is not a default feature I didn't notice\r\nthat I'd not removed futures from there as well.\r\n\r\nCI also did not catch this because futures was used for the tungstenite\r\nfeature, which is often always on.\r\n\r\nThis PR removes futures entirely, by implementing our own copy of\r\nStreamExt::send based on the futures impl, and then making sure there's\r\nno remaining uses of futures in the crate.","shortMessageHtmlLink":"fix: remove futures from ws_stream_wasm module (#111)"}},{"before":"d4bd0fd3e7bb5466c4c4f634b330cab1b4129870","after":"8067e3c1ccb98ee45a3ca34b9ba37b2a20439481","ref":"refs/heads/obmarg/push-qzollyxwkpvw","pushedAt":"2024-06-08T16:10:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"fix: remove futures from ws_stream_wasm module\n\nIn #107 I removed futures in favour of futures-lite in various places.\nHowever, because ws_stream_wasm is not a default feature I didn't notice that\nI'd not removed futures from there as well.\n\nCI also did not catch this because futures was used for the tungstenite\nfeature, which is often always on.\n\nThis PR removes futures entirely, by implementing our own copy of\nStreamExt::send based on the futures impl, and then making sure there's no\nremaining uses of futures in the crate.","shortMessageHtmlLink":"fix: remove futures from ws_stream_wasm module"}},{"before":"807afd15a9fe925fef654d34b183f11f2786239e","after":"d4bd0fd3e7bb5466c4c4f634b330cab1b4129870","ref":"refs/heads/obmarg/push-qzollyxwkpvw","pushedAt":"2024-06-08T16:06:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"fix: remove futures from ws_stream_wasm module\n\nIn #107 I removed futures in favour of futures-lite in various places.\nHowever, because ws_stream_wasm is not a default feature I didn't notice that\nI'd not removed futures from there as well.\n\nCI also did not catch this because futures was used for the tungstenite\nfeature, which is often always on.\n\nThis PR removes futures entirely, by implementing our own copy of\nStreamExt::send based on the futures impl, and then making sure there's no\nremaining uses of futures in the crate.","shortMessageHtmlLink":"fix: remove futures from ws_stream_wasm module"}},{"before":"ed53205b0c33b7488b346670c2b2216f428fc073","after":"807afd15a9fe925fef654d34b183f11f2786239e","ref":"refs/heads/obmarg/push-qzollyxwkpvw","pushedAt":"2024-06-08T16:06:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"fix: remove futures from ws_stream_wasm module\n\nIn #107 I removed futures in favour of futures-lite in various places.\nHowever, because ws_stream_wasm is not a default feature I didn't notice that\nI'd not removed futures from there as well.\n\nCI also did not catch this because futures was used for the tungstenite\nfeature, which is often always on.\n\nThis PR removes futures entirely, by implementing our own copy of\nStreamExt::send based on the futures impl, and then making sure there's no\nremaining uses of futures in the crate.","shortMessageHtmlLink":"fix: remove futures from ws_stream_wasm module"}},{"before":"79c4869515815355c48dc5ceefb4dc63c5b63fb6","after":"ed53205b0c33b7488b346670c2b2216f428fc073","ref":"refs/heads/obmarg/push-qzollyxwkpvw","pushedAt":"2024-06-08T16:05:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"fix: remove futures from ws_stream_wasm module\n\nIn #107 I removed futures in favour of futures-lite in various places.\nHowever, because ws_stream_wasm is not a default feature I didn't notice that\nI'd not removed futures from there as well.\n\nCI also did not catch this because futures was used for the tungstenite\nfeature, which is often always on.\n\nThis PR removes futures entirely, by implementing our own copy of\nStreamExt::send based on the futures impl, and then making sure there's no\nremaining uses of futures in the crate.","shortMessageHtmlLink":"fix: remove futures from ws_stream_wasm module"}},{"before":null,"after":"79c4869515815355c48dc5ceefb4dc63c5b63fb6","ref":"refs/heads/obmarg/push-qzollyxwkpvw","pushedAt":"2024-06-08T16:02:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"fix: remove futures from ws_stream_wasm module\n\nIn #107 I removed futures in favour of futures-lite in various places.\nHowever, because ws_stream_wasm is not a default feature I didn't notice that\nI'd not removed futures from there as well.\n\nCI also did not catch this because futures was used for the tungstenite\nfeature, which is often always on.\n\nThis PR removes futures entirely, by implementing our own copy of\nStreamExt::send based on the futures impl, and then making sure there's no\nremaining uses of futures in the crate.","shortMessageHtmlLink":"fix: remove futures from ws_stream_wasm module"}},{"before":"681d7e8bf6d9075d33bc931a10665ac46bdf07eb","after":"03d3cd023dafddb54fa59168cbaf95fed155ea2f","ref":"refs/heads/release-plz-2024-06-08T15-02-11Z","pushedAt":"2024-06-08T15:02:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"graphql-ws-client-releaser[bot]","name":null,"path":"/apps/graphql-ws-client-releaser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"chore: release","shortMessageHtmlLink":"chore: release"}},{"before":null,"after":"681d7e8bf6d9075d33bc931a10665ac46bdf07eb","ref":"refs/heads/release-plz-2024-06-08T15-02-11Z","pushedAt":"2024-06-08T15:02:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"graphql-ws-client-releaser[bot]","name":null,"path":"/apps/graphql-ws-client-releaser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"chore: configure github release name (#109)","shortMessageHtmlLink":"chore: configure github release name (#109)"}},{"before":"f355777f39408696c1764a4adb5df76b2a618b00","after":null,"ref":"refs/heads/obmarg/push-kotkpnzuuont","pushedAt":"2024-06-08T15:00:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"}},{"before":"ee7848e1d81355e8708f91d1122f7fc4ba94a847","after":"681d7e8bf6d9075d33bc931a10665ac46bdf07eb","ref":"refs/heads/main","pushedAt":"2024-06-08T15:00:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"chore: configure github release name (#109)","shortMessageHtmlLink":"chore: configure github release name (#109)"}},{"before":null,"after":"f355777f39408696c1764a4adb5df76b2a618b00","ref":"refs/heads/obmarg/push-kotkpnzuuont","pushedAt":"2024-06-08T14:59:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"obmarg","name":"Graeme Coupar","path":"/obmarg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/556490?s=80&v=4"},"commit":{"message":"chore: configure github release name","shortMessageHtmlLink":"chore: configure github release name"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0yMVQxNzoxMjozNi4wMDAwMDBazwAAAASgc3Ga","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0wOFQxNDo1OToyNi4wMDAwMDBazwAAAARf9nfZ"}},"title":"Activity ยท obmarg/graphql-ws-client"}