{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":16918137,"defaultBranch":"master","name":"bodyparser","ownerLogin":"koajs","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-02-17T16:02:53.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/5055057?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717640514.0","currentOid":""},"activityList":{"items":[{"before":"e6fe74d9de9a6fe80c2b2f8f962eab02398cc6aa","after":"031348a2d469dd288dc21cd10d8de280d9936f2c","ref":"refs/heads/master","pushedAt":"2024-06-14T05:21:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"feat: add check for closed requests (#162)\n\n## Checklist\r\n\r\n- [x] I have ensured my pull request is not behind the main or master\r\nbranch of the original repository.\r\n- [x] I have rebased all commits where necessary so that reviewing this\r\npull request can be done without having to merge it first.\r\n- [x] I have written a commit message that passes commitlint linting.\r\n- [x] I have ensured that my code changes pass linting tests.\r\n- [x] I have ensured that my code changes pass unit tests.\r\n- [x] I have described my pull request and the reasons for code changes\r\nalong with context if necessary.\r\n\r\n## Changes\r\n\r\nAdded a check for `req.ctx.closed` to ensure that, when a request is\r\nclosed (canceled) before reaching the bodyparser middleware, the body of\r\nthe closed request is not attempted to be parsed (which would result in\r\nan error). Instead, if the request is closed, then the middleware\r\nreturns a `499 Client Closed Request` status.\r\n\r\n## Reason\r\n\r\nErrors can occur when parsing bodies of closed requests - `stream not\r\nreadable`. This indicates the request was cancelled. This can happen\r\nwhen body parser is not on the \"synchronous path\" of a request - e.g. if\r\nAuth is verified asynchronously from headers before bothering to parse\r\nthe bodies. This allows time for users to occasionally close the\r\nrequest, resulting in a `500 'stream not readable'` error.","shortMessageHtmlLink":"feat: add check for closed requests (#162)"}},{"before":"7ca7b38a8d8c19acc88500f0aaa8baacc2204967","after":null,"ref":"refs/heads/add-test-for-4.x","pushedAt":"2024-06-06T02:21:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"}},{"before":"38b36c94b41a260eb18ee77ef588257b98ce3241","after":"768ee6bfd2a48861588a1ef22bb5d7f76c3dc22c","ref":"refs/heads/4.x","pushedAt":"2024-06-06T02:21:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"test: run test on github action (#163)","shortMessageHtmlLink":"test: run test on github action (#163)"}},{"before":"bce182462bbdde70601d14a41fc47017c5eea883","after":"7ca7b38a8d8c19acc88500f0aaa8baacc2204967","ref":"refs/heads/add-test-for-4.x","pushedAt":"2024-06-06T02:01:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"f","shortMessageHtmlLink":"f"}},{"before":"1483c43e90d1148fa79f5fdff94c66fe4316c631","after":"bce182462bbdde70601d14a41fc47017c5eea883","ref":"refs/heads/add-test-for-4.x","pushedAt":"2024-06-06T01:59:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"f","shortMessageHtmlLink":"f"}},{"before":"b2a885e67ec22615fb45dc18fdc1423951522e08","after":"1483c43e90d1148fa79f5fdff94c66fe4316c631","ref":"refs/heads/add-test-for-4.x","pushedAt":"2024-06-06T01:49:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"f","shortMessageHtmlLink":"f"}},{"before":"59fb04296393de5db47f84226dea6b34673043af","after":"b2a885e67ec22615fb45dc18fdc1423951522e08","ref":"refs/heads/add-test-for-4.x","pushedAt":"2024-06-06T01:45:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"f","shortMessageHtmlLink":"f"}},{"before":null,"after":"59fb04296393de5db47f84226dea6b34673043af","ref":"refs/heads/add-test-for-4.x","pushedAt":"2024-06-06T01:44:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"test: run test on github action","shortMessageHtmlLink":"test: run test on github action"}},{"before":"1c46568d61a59e0853a543792b47e16e67f957aa","after":"e6fe74d9de9a6fe80c2b2f8f962eab02398cc6aa","ref":"refs/heads/master","pushedAt":"2024-04-08T20:42:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"titanism","name":null,"path":"/titanism","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/101466223?s=80&v=4"},"commit":{"message":"5.1.1","shortMessageHtmlLink":"5.1.1"}},{"before":"f27be45528d6885f08675ee1c650897e44d3dbfa","after":"1c46568d61a59e0853a543792b47e16e67f957aa","ref":"refs/heads/master","pushedAt":"2024-04-08T20:39:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"titanism","name":null,"path":"/titanism","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/101466223?s=80&v=4"},"commit":{"message":"fix: downgrade version","shortMessageHtmlLink":"fix: downgrade version"}},{"before":"1e3add0311f7af1dfbc9b9c3f1539d587ce01034","after":null,"ref":"refs/heads/fix/fix-v5.1.0","pushedAt":"2024-04-08T20:37:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"titanism","name":null,"path":"/titanism","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/101466223?s=80&v=4"}},{"before":"8018af881374478ff68729e930c5dfe3eed16fc7","after":"f27be45528d6885f08675ee1c650897e44d3dbfa","ref":"refs/heads/master","pushedAt":"2024-04-08T20:37:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"titanism","name":null,"path":"/titanism","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/101466223?s=80&v=4"},"commit":{"message":"Add koa as peerDeps and fix the encoding option propagation (#160)\n\n## Description\r\n\r\nFix #155 and #157\r\n\r\n## Checklist\r\n\r\n- [x] I have ensured my pull request is not behind the main or master\r\nbranch of the original repository.\r\n- [x] I have rebased all commits where necessary so that reviewing this\r\npull request can be done without having to merge it first.\r\n- [x] I have written a commit message that passes commitlint linting.\r\n- [x] I have ensured that my code changes pass linting tests.\r\n- [x] I have ensured that my code changes pass unit tests.\r\n- [x] I have described my pull request and the reasons for code changes\r\nalong with context if necessary.","shortMessageHtmlLink":"Add koa as peerDeps and fix the encoding option propagation (#160)"}},{"before":"8018af881374478ff68729e930c5dfe3eed16fc7","after":"1e3add0311f7af1dfbc9b9c3f1539d587ce01034","ref":"refs/heads/fix/fix-v5.1.0","pushedAt":"2024-04-07T04:06:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"3imed-jaberi","name":"Imed Jaberi","path":"/3imed-jaberi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43971542?s=80&v=4"},"commit":{"message":"fix: fix release 5.1.0","shortMessageHtmlLink":"fix: fix release 5.1.0"}},{"before":null,"after":"8018af881374478ff68729e930c5dfe3eed16fc7","ref":"refs/heads/fix/fix-v5.1.0","pushedAt":"2024-04-07T04:05:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"3imed-jaberi","name":"Imed Jaberi","path":"/3imed-jaberi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43971542?s=80&v=4"},"commit":{"message":"Release 5.1.0","shortMessageHtmlLink":"Release 5.1.0"}},{"before":"9c181798ef1467df9109ed54bbd4a612382a6490","after":"8018af881374478ff68729e930c5dfe3eed16fc7","ref":"refs/heads/master","pushedAt":"2024-03-25T02:27:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"Release 5.1.0","shortMessageHtmlLink":"Release 5.1.0"}},{"before":"664cd7c413250d5e12eb5bb0fbf4e52d31ef24f5","after":"9c181798ef1467df9109ed54bbd4a612382a6490","ref":"refs/heads/master","pushedAt":"2024-03-25T01:59:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"feat: set name of middleware function to improve interop with monitoring tools (#159)\n\nSet name of middleware function to improve interop with monitoring\r\ntools.\r\n\r\nTools like\r\n[@opentelemetry/instrumentation-koa](https://www.npmjs.com/package/@opentelemetry/instrumentation-koa)\r\nuse function names to generate span names. These names appear in UI of\r\nmonitoring tools, such as datadog.\r\n\r\nBecause the returned function doesn't have a name, there's no hint about\r\nthe actual middleware associated with that span. See below:\r\n\r\n\"Screenshot\r\n\r\nIn v4 the returned middleware had a name but in v5 got removed, see:\r\nhttps://github.com/koajs/bodyparser/blob/5678a79e64d7833e0dd7734c9e9de40126e14d98/index.js#L63.","shortMessageHtmlLink":"feat: set name of middleware function to improve interop with monitor…"}},{"before":null,"after":"38b36c94b41a260eb18ee77ef588257b98ce3241","ref":"refs/heads/4.x","pushedAt":"2023-10-12T13:47:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"chore: start 4.x branch","shortMessageHtmlLink":"chore: start 4.x branch"}},{"before":"1eb053267c9e092ada6c316489e20596edd819f4","after":"664cd7c413250d5e12eb5bb0fbf4e52d31ef24f5","ref":"refs/heads/master","pushedAt":"2023-07-08T15:20:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"docs: fix usage for @koa/bodyparser v5 (#154)","shortMessageHtmlLink":"docs: fix usage for @koa/bodyparser v5 (#154)"}},{"before":"55783fc0ce77c0235d74244efe4069e4f9ca5850","after":"1eb053267c9e092ada6c316489e20596edd819f4","ref":"refs/heads/master","pushedAt":"2023-06-25T01:33:35.422Z","pushType":"push","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"chore: typo npm-url","shortMessageHtmlLink":"chore: typo npm-url"}},{"before":"89e0524c35acf0ba0d49e97342d5e1b9db92f233","after":"55783fc0ce77c0235d74244efe4069e4f9ca5850","ref":"refs/heads/master","pushedAt":"2023-06-25T01:30:27.109Z","pushType":"push","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"chore: add publishConfig access to public","shortMessageHtmlLink":"chore: add publishConfig access to public"}},{"before":"b89581adc53257d8e4d949735402dc8e3c18a7e8","after":"89e0524c35acf0ba0d49e97342d5e1b9db92f233","ref":"refs/heads/master","pushedAt":"2023-06-25T01:29:02.564Z","pushType":"push","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"Release 5.0.0","shortMessageHtmlLink":"Release 5.0.0"}},{"before":"cc1cf074e3db00b3ff54b14ba4a2823434a3f14b","after":null,"ref":"refs/heads/next-body-parser-v5","pushedAt":"2023-06-25T01:22:51.468Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"}},{"before":"5678a79e64d7833e0dd7734c9e9de40126e14d98","after":"b89581adc53257d8e4d949735402dc8e3c18a7e8","ref":"refs/heads/master","pushedAt":"2023-06-25T01:22:50.259Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"feat: Re-create the module with TypeScript (#152)\n\n* refactor: imporve the return type for shouldParseBodyAs method\r\n* test: coverage 100%\r\n* feat: support the already parsed body\r\n* feat: prevent runtime problems\r\n* feat: add patchNode option to support patching ctx.req.body\r\n* feat: add parsedMethods option to parse only the passed ones\r\n* feat: support extra value under the content-type + use async/await over done in testing","shortMessageHtmlLink":"feat: Re-create the module with TypeScript (#152)"}},{"before":"6ef5d7acc4e131bfa95cd9a97f4829be76807c3e","after":"cc1cf074e3db00b3ff54b14ba4a2823434a3f14b","ref":"refs/heads/next-body-parser-v5","pushedAt":"2023-06-24T16:19:13.516Z","pushType":"push","commitsCount":1,"pusher":{"login":"3imed-jaberi","name":"Imed Jaberi","path":"/3imed-jaberi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43971542?s=80&v=4"},"commit":{"message":"setup: use only one file for ci with gh actions","shortMessageHtmlLink":"setup: use only one file for ci with gh actions"}},{"before":"0421a1d0b2628f5095320c449351dd73c49b07f4","after":"6ef5d7acc4e131bfa95cd9a97f4829be76807c3e","ref":"refs/heads/next-body-parser-v5","pushedAt":"2023-06-24T16:15:24.076Z","pushType":"push","commitsCount":3,"pusher":{"login":"3imed-jaberi","name":"Imed Jaberi","path":"/3imed-jaberi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43971542?s=80&v=4"},"commit":{"message":"Merge branch 'master' into next-body-parser-v5","shortMessageHtmlLink":"Merge branch 'master' into next-body-parser-v5"}},{"before":"b496e70ce84f6ec6c01a1c9433997bad3ed491a5","after":"0421a1d0b2628f5095320c449351dd73c49b07f4","ref":"refs/heads/next-body-parser-v5","pushedAt":"2023-06-24T16:10:24.808Z","pushType":"push","commitsCount":1,"pusher":{"login":"3imed-jaberi","name":"Imed Jaberi","path":"/3imed-jaberi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43971542?s=80&v=4"},"commit":{"message":"feat: support extra value under the content-type + use async/await over done in testing","shortMessageHtmlLink":"feat: support extra value under the content-type + use async/await ov…"}},{"before":"5a551b1de6f5e2200b8a838207b56ea1198bdb96","after":"5678a79e64d7833e0dd7734c9e9de40126e14d98","ref":"refs/heads/master","pushedAt":"2023-06-22T06:52:27.907Z","pushType":"push","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"Release 4.4.1","shortMessageHtmlLink":"Release 4.4.1"}},{"before":"21bd372b265353ca5895671c4b1d26b2fa1d3a0e","after":null,"ref":"refs/heads/trim-extra-semicolon","pushedAt":"2023-06-22T06:51:09.198Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"}},{"before":"c16f056cf2536755132104e452dbaa8de2df8f5c","after":"5a551b1de6f5e2200b8a838207b56ea1198bdb96","ref":"refs/heads/master","pushedAt":"2023-06-22T06:51:08.183Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"fix: compatible extra semicolon on content-type header (#153)","shortMessageHtmlLink":"fix: compatible extra semicolon on content-type header (#153)"}},{"before":"4e1a46fded7495d3ff82d33ca5f7c8eb41ea0c3d","after":"21bd372b265353ca5895671c4b1d26b2fa1d3a0e","ref":"refs/heads/trim-extra-semicolon","pushedAt":"2023-06-22T06:47:38.618Z","pushType":"push","commitsCount":1,"pusher":{"login":"fengmk2","name":"fengmk2","path":"/fengmk2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156269?s=80&v=4"},"commit":{"message":"f","shortMessageHtmlLink":"f"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEZRkczQA","startCursor":null,"endCursor":null}},"title":"Activity · koajs/bodyparser"}