{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":9113587,"defaultBranch":"main","name":"websockets","ownerLogin":"python-websockets","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-03-30T08:59:30.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/130129149?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726290254.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"a7d501248b0225c1e9c35aa18f80482617ae1823","ref":"refs/heads/dependabot/github_actions/pypa/cibuildwheel-2.21.0","pushedAt":"2024-09-14T05:04:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump pypa/cibuildwheel from 2.20.0 to 2.21.0\n\nBumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.20.0 to 2.21.0.\n- [Release notes](https://github.com/pypa/cibuildwheel/releases)\n- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)\n- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.20.0...v2.21.0)\n\n---\nupdated-dependencies:\n- dependency-name: pypa/cibuildwheel\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump pypa/cibuildwheel from 2.20.0 to 2.21.0"}},{"before":"98f236f89529d317628fe8ee3d4d0564e675f68d","after":null,"ref":"refs/heads/stop-if-connection-is-not-open","pushedAt":"2024-09-11T20:03:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"}},{"before":"d19ed267b5e04ded752f78da6c85ad2905cf89e5","after":"98f236f89529d317628fe8ee3d4d0564e675f68d","ref":"refs/heads/main","pushedAt":"2024-09-11T20:03:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Run handler only when opening handshake succeeds.\n\nWhen process_request() or process_response() returned a HTTP response\nwithout calling accept() or reject() and with a status code other than\n101, the connection handler used to start, which was incorrect.\n\nFix #1419.\n\nAlso move start_keepalive() outside of handshake() and bring it together\nwith starting the connection handler, which is more logical.","shortMessageHtmlLink":"Run handler only when opening handshake succeeds."}},{"before":"1c82b64e10c3f7470ad445f577c2e22aad0885c2","after":"98f236f89529d317628fe8ee3d4d0564e675f68d","ref":"refs/heads/stop-if-connection-is-not-open","pushedAt":"2024-09-11T19:55:07.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Run handler only when opening handshake succeeds.\n\nWhen process_request() or process_response() returned a HTTP response\nwithout calling accept() or reject() and with a status code other than\n101, the connection handler used to start, which was incorrect.\n\nFix #1419.\n\nAlso move start_keepalive() outside of handshake() and bring it together\nwith starting the connection handler, which is more logical.","shortMessageHtmlLink":"Run handler only when opening handshake succeeds."}},{"before":"51fb596443cf7d8f302868a9a8e4ed95cf44e418","after":"1c82b64e10c3f7470ad445f577c2e22aad0885c2","ref":"refs/heads/stop-if-connection-is-not-open","pushedAt":"2024-09-11T05:33:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Run handler only when opening handshake succeeds.\n\nWhen process_request() or process_response() returned a HTTP response\nwithout calling accept() or reject() and with a status code other than\n101, the connection handler used to start, which was incorrect.\n\nFix #1419.\n\nAlso move start_keepalive() outside of handshake() and bring it together\nwith starting the connection handler, which is more logical.","shortMessageHtmlLink":"Run handler only when opening handshake succeeds."}},{"before":"070ff1a3e536e497a9ee11ea3b0649f82f3974c9","after":"d19ed267b5e04ded752f78da6c85ad2905cf89e5","ref":"refs/heads/main","pushedAt":"2024-09-11T05:28:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Run spellcheck.","shortMessageHtmlLink":"Run spellcheck."}},{"before":"e97aabeaf718c4c0af6af50aabc7c6c3e780302f","after":"51fb596443cf7d8f302868a9a8e4ed95cf44e418","ref":"refs/heads/stop-if-connection-is-not-open","pushedAt":"2024-09-11T05:28:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Run handler only when opening handshake succeeds.\n\nWhen process_request() or process_response() returned a HTTP response\nwithout calling accept() or reject() and with a status code other than\n101, the connection handler used to start, which was incorrect.\n\nFix #1419.\n\nAlso move start_keepalive() outside of handshake() and bring it together\nwith starting the connection handler, which is more logical.","shortMessageHtmlLink":"Run handler only when opening handshake succeeds."}},{"before":"5107a8c4e29d9ae53a335e762a5472c96452d2b6","after":"e97aabeaf718c4c0af6af50aabc7c6c3e780302f","ref":"refs/heads/stop-if-connection-is-not-open","pushedAt":"2024-09-11T05:21:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Run handler only when opening handshake succeeds.\n\nWhen process_request() or process_response() returned a HTTP response\nwithout calling accept() or reject() and with a status code other than\n101, the connection handler used to start, which was incorrect.\n\nFix #1419.\n\nAlso move start_keepalive() outside of handshake() and bring it together\nwith starting the connection handler, which is more logical.","shortMessageHtmlLink":"Run handler only when opening handshake succeeds."}},{"before":"b0bb612f782ecf6477818a2870bdcb6dfa23a9f7","after":"5107a8c4e29d9ae53a335e762a5472c96452d2b6","ref":"refs/heads/stop-if-connection-is-not-open","pushedAt":"2024-09-11T04:59:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Run handler only when opening handshake succeeds.\n\nWhen process_request or process_response returned a HTTP response with a\nstatus code other than 101, the connection handler used to start, which\nwas incorrect.\n\nFix #1419.","shortMessageHtmlLink":"Run handler only when opening handshake succeeds."}},{"before":null,"after":"b0bb612f782ecf6477818a2870bdcb6dfa23a9f7","ref":"refs/heads/stop-if-connection-is-not-open","pushedAt":"2024-09-10T06:03:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Stop if process_request/response fails the handshake.\n\nFix #1419.","shortMessageHtmlLink":"Stop if process_request/response fails the handshake."}},{"before":"f9cea9cca568dc92704de3744639eb4248278a8f","after":"070ff1a3e536e497a9ee11ea3b0649f82f3974c9","ref":"refs/heads/main","pushedAt":"2024-09-09T20:36:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Add dedicated ConcurrencyError exception.\n\nPreviously, a generic RuntimeError was used.\n\nFix #1499.","shortMessageHtmlLink":"Add dedicated ConcurrencyError exception."}},{"before":"f9cea9cca568dc92704de3744639eb4248278a8f","after":null,"ref":"refs/heads/debug-flaky-test","pushedAt":"2024-09-09T19:56:44.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"}},{"before":null,"after":"f9cea9cca568dc92704de3744639eb4248278a8f","ref":"refs/heads/debug-flaky-test","pushedAt":"2024-09-09T19:56:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Improve isolation of tests of sync implementation.\n\nBefore this change, threads handling requests could continue running\nafter the end of the test. This caused spurious failures.\n\nSpecifically, a test expecting an error log could get an error log from\na previous tests. This happened sporadically on PyPy.","shortMessageHtmlLink":"Improve isolation of tests of sync implementation."}},{"before":"3c1fbcc5095280751e341a4b007754e1d85acfb7","after":null,"ref":"refs/heads/debug-flaky-test","pushedAt":"2024-09-09T19:54:00.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"}},{"before":"14d9d40acd23ecc66a8ac8d0535af9d8a1b0fa07","after":"f9cea9cca568dc92704de3744639eb4248278a8f","ref":"refs/heads/main","pushedAt":"2024-09-09T19:53:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Improve isolation of tests of sync implementation.\n\nBefore this change, threads handling requests could continue running\nafter the end of the test. This caused spurious failures.\n\nSpecifically, a test expecting an error log could get an error log from\na previous tests. This happened sporadically on PyPy.","shortMessageHtmlLink":"Improve isolation of tests of sync implementation."}},{"before":"fdae2d04841ba13b8fa51c34628b917e359a9e26","after":"3c1fbcc5095280751e341a4b007754e1d85acfb7","ref":"refs/heads/debug-flaky-test","pushedAt":"2024-09-09T05:45:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"More debug.","shortMessageHtmlLink":"More debug."}},{"before":"2dc427eff15b8833a9433c2ccaa9c1dbd08065ea","after":"fdae2d04841ba13b8fa51c34628b917e359a9e26","ref":"refs/heads/debug-flaky-test","pushedAt":"2024-09-09T05:44:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"More debug.","shortMessageHtmlLink":"More debug."}},{"before":"0bf36e58616842119337f739892706a013eaf138","after":"14d9d40acd23ecc66a8ac8d0535af9d8a1b0fa07","ref":"refs/heads/main","pushedAt":"2024-09-09T05:41:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Fix typo in convenience imports.\n\nFix #1496.","shortMessageHtmlLink":"Fix typo in convenience imports."}},{"before":"6ad5fd7a54ffc492fae9490c315b7491079c5187","after":"2dc427eff15b8833a9433c2ccaa9c1dbd08065ea","ref":"refs/heads/debug-flaky-test","pushedAt":"2024-09-08T21:10:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"FLAKY ON PYPY","shortMessageHtmlLink":"FLAKY ON PYPY"}},{"before":null,"after":"6ad5fd7a54ffc492fae9490c315b7491079c5187","ref":"refs/heads/debug-flaky-test","pushedAt":"2024-09-08T21:06:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"DEBUG","shortMessageHtmlLink":"DEBUG"}},{"before":"14d9d40acd23ecc66a8ac8d0535af9d8a1b0fa07","after":"0bf36e58616842119337f739892706a013eaf138","ref":"refs/heads/main","pushedAt":"2024-09-08T20:58:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Fix flaky test.\n\nSometimes this test would catch the message from websockets.server\nand websockets.client and fail.","shortMessageHtmlLink":"Fix flaky test."}},{"before":"90270d8b1bc19ee0c4ac94c6a200c95614ab8771","after":"14d9d40acd23ecc66a8ac8d0535af9d8a1b0fa07","ref":"refs/heads/main","pushedAt":"2024-09-08T20:54:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Fix typo in convenience imports.\n\nFix #1496.","shortMessageHtmlLink":"Fix typo in convenience imports."}},{"before":"90270d8b1bc19ee0c4ac94c6a200c95614ab8771","after":null,"ref":"refs/heads/handshake-exceptions","pushedAt":"2024-09-08T20:33:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"}},{"before":"0158a246683437de2f85a27fecef06f5e5393e99","after":"90270d8b1bc19ee0c4ac94c6a200c95614ab8771","ref":"refs/heads/main","pushedAt":"2024-09-08T20:33:45.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Add changelog for previous commits.","shortMessageHtmlLink":"Add changelog for previous commits."}},{"before":"5adc4fb8a99a45ba084eadf976b872536b90011d","after":"90270d8b1bc19ee0c4ac94c6a200c95614ab8771","ref":"refs/heads/handshake-exceptions","pushedAt":"2024-09-08T20:27:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Add changelog for previous commits.","shortMessageHtmlLink":"Add changelog for previous commits."}},{"before":"f6180123bda70cc9733632da87b3d5caa92b33e9","after":"5adc4fb8a99a45ba084eadf976b872536b90011d","ref":"refs/heads/handshake-exceptions","pushedAt":"2024-09-08T20:20:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Add changelog for previous commits.","shortMessageHtmlLink":"Add changelog for previous commits."}},{"before":"560f6eed24a516bf9c8c4c7eaf83f84d2ce606f0","after":"f6180123bda70cc9733632da87b3d5caa92b33e9","ref":"refs/heads/handshake-exceptions","pushedAt":"2024-09-08T20:15:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Improve error messages on HTTP parsing errors.","shortMessageHtmlLink":"Improve error messages on HTTP parsing errors."}},{"before":"b1b4f2f6975a19fe1a726bc6b2be86f10484a3ad","after":"560f6eed24a516bf9c8c4c7eaf83f84d2ce606f0","ref":"refs/heads/handshake-exceptions","pushedAt":"2024-09-08T19:53:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Log error when server receives bad request.","shortMessageHtmlLink":"Log error when server receives bad request."}},{"before":"aff67806e7fe3d6a299e651141292b908aefc40f","after":"b1b4f2f6975a19fe1a726bc6b2be86f10484a3ad","ref":"refs/heads/handshake-exceptions","pushedAt":"2024-09-08T19:27:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Log error when server receives bad request.","shortMessageHtmlLink":"Log error when server receives bad request."}},{"before":null,"after":"aff67806e7fe3d6a299e651141292b908aefc40f","ref":"refs/heads/handshake-exceptions","pushedAt":"2024-09-08T16:54:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aaugustin","name":"Aymeric Augustin","path":"/aaugustin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/788910?s=80&v=4"},"commit":{"message":"Close connection when client receives bad response.\n\nThis avoids stalling until the opening handshake timeouts.","shortMessageHtmlLink":"Close connection when client receives bad response."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xNFQwNTowNDoxNC4wMDAwMDBazwAAAAS2EDtq","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xNFQwNTowNDoxNC4wMDAwMDBazwAAAAS2EDtq","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wOFQxNjo1NDo1NC4wMDAwMDBazwAAAASwMcMP"}},"title":"Activity ยท python-websockets/websockets"}