{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":22046781,"defaultBranch":"master","name":"roda","ownerLogin":"jeremyevans","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2014-07-21T00:22:53.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3846?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1712936270.0","currentOid":""},"activityList":{"items":[{"before":"446633c35a9830971d57f503b5a042ed7d7f688d","after":"e2ef45b37fc4c5dc83c947653ce967055661dd3f","ref":"refs/heads/master","pushedAt":"2024-04-18T17:07:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Support :namespace option in hmac_paths plugin, allowing for easy per-user/per-group HMAC paths\n\nFor applications where the same path shows different content\ndepending on the logged in user, user A who was provided an\nhmac path could give that path to user B who had not been\nprovided an hmac path, and that path would work for user B.\nBy using the :namespace option, you the HMAC paths are\nnamespace-specific, so a path for a namespace used for user\nA would not be valid in a namespace for user B (assuming the\nnamespaces are different).\n\nThe majority of cases where HMAC path namespaces are useful\nwill based the namespace on some session value, so a\n:namespace_session_key plugin option has been added, which\nsets a default namespace used by both the hmac_path and\nr.hmac_path methods, so the namespace doesn't need to be\nspecified manually per-call.","shortMessageHtmlLink":"Support :namespace option in hmac_paths plugin, allowing for easy per…"}},{"before":"081aab6295b7879aed40144bd92505e4c60be62b","after":"073df39e09771529aa3e707cae2788e40bc3ea96","ref":"refs/heads/gh-pages","pushedAt":"2024-04-12T15:38:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Update website for 3.79.0 release","shortMessageHtmlLink":"Update website for 3.79.0 release"}},{"before":"cd7caf3a147fac95d1d224fa1cc6aec06c9fdbce","after":"446633c35a9830971d57f503b5a042ed7d7f688d","ref":"refs/heads/master","pushedAt":"2024-04-12T15:33:11.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Bump version to 3.79.0","shortMessageHtmlLink":"Bump version to 3.79.0"}},{"before":"f6cc4d96dbffd9285f0461027fdcd6c8b75b539c","after":"cd7caf3a147fac95d1d224fa1cc6aec06c9fdbce","ref":"refs/heads/master","pushedAt":"2024-04-03T22:45:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Do not update template mtime when there is an error reloading templates in the render plugin\n\nPreviously, if there was an mtime change for the related file, Roda would\nupdate the stored mtime, then try to reload the file. However, if the file\nwas invalid (e.g. SyntaxError), then in compiled templates mode, the\ncompiled template method would not be updated, so it still have the previous\ntemplate code associated with it. If no further changes were made to the\ntemplate, future template renders would return the result of the previous\ntemplate before the reload, resulting in unexpected behavior until the\ntemplate was fixed.\n\nReplace TemplateMtimeWrapper#modified with TemplateMtimeWrapper#if_modified,\nwhich takes a block, and yields if it detects a modification. The mtime for\nthe object is not updated unless the block returns normally. Put the template\nreloading code into the block. For non-compiled templates, attempt to render\nthe template inside the if_modified block, and only update the mtime if\nthe rendering succeeds.\n\nThis change can result in additional work if the template has not been\nfixed after it was broken, since every request after it is broken will\nattempt to reload it. However, template reloading is generally only done\nin development mode, and without attempting to reload, the template would\nraise an exception just as in previous requests.\n\nWhile here, remove the unnecessary template argument to compiled_method_lambda,\nsince it is only ever set to self.","shortMessageHtmlLink":"Do not update template mtime when there is an error reloading templat…"}},{"before":"e4c736b5a8475609dc63626fe7365122f2f6853d","after":"f6cc4d96dbffd9285f0461027fdcd6c8b75b539c","ref":"refs/heads/master","pushedAt":"2024-03-22T16:26:44.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Make recheck_precompiled_assets spec temp directory same as assets spec temp directory\n\nFixes nondeterministic failures when running parallel specs in\nthe same directory.","shortMessageHtmlLink":"Make recheck_precompiled_assets spec temp directory same as assets sp…"}},{"before":"b962d7344dbbc4a3bafe65fff91e808f85003c82","after":"081aab6295b7879aed40144bd92505e4c60be62b","ref":"refs/heads/gh-pages","pushedAt":"2024-03-13T17:31:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Update website for 3.78.0 release","shortMessageHtmlLink":"Update website for 3.78.0 release"}},{"before":"f812deb81102f5f882e088ec8003832716cd49b5","after":"e4c736b5a8475609dc63626fe7365122f2f6853d","ref":"refs/heads/master","pushedAt":"2024-03-13T17:28:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Bump version to 3.78.0","shortMessageHtmlLink":"Bump version to 3.78.0"}},{"before":"bdebe4aff535a7c07696e399e5140191a4129d92","after":"f812deb81102f5f882e088ec8003832716cd49b5","ref":"refs/heads/master","pushedAt":"2024-03-12T17:38:25.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Add link to permissions_policy plugin to documentation page","shortMessageHtmlLink":"Add link to permissions_policy plugin to documentation page"}},{"before":"f726d5000c243e1be72a060db737c73a27922cb1","after":"bdebe4aff535a7c07696e399e5140191a4129d92","ref":"refs/heads/master","pushedAt":"2024-03-01T23:06:40.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Add permissions_policy plugin for setting Permissions-Policy header\n\nThis is similar to the content_security_policy plugin, with the\nmain difference being the formatting of the header value, and\nhow :all/:none are used to specify whether domains are allowed.\n\nThis uses the Permissions-Policy header and not the older\nFeature-Policy header, which may seem strange if you look at\ncaniuse.com, where Feature-Policy is supported by 97% of\nbrowsers, compared to Permissions-Policy with only 71% support.\nHowever, this is misleading because neither Firefox nor Safari\nsupport the Feature-Policy header, only the allow attribute on\niframes, and this plugin is for the header only. The only\nreal compatibility loss is for a few Android browsers,\namounting to about 4% difference in support. Considering that\neverything will still work on those browsers (the lack of\nheader support fails open), I think it's better to directly\nimplement the Permissions-Policy header instead of implementing\nFeature-Policy now and implicitly switching to\nPermissions-Policy later.","shortMessageHtmlLink":"Add permissions_policy plugin for setting Permissions-Policy header"}},{"before":"e15869645c31fc8209949dd316e9a7c802403d18","after":"b962d7344dbbc4a3bafe65fff91e808f85003c82","ref":"refs/heads/gh-pages","pushedAt":"2024-02-12T17:32:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Update website for 3.77.0 release","shortMessageHtmlLink":"Update website for 3.77.0 release"}},{"before":"1427d3cd2e241e1b15916c453f90b90d056667e1","after":"f726d5000c243e1be72a060db737c73a27922cb1","ref":"refs/heads/master","pushedAt":"2024-02-12T17:17:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Bump version to 3.77.0","shortMessageHtmlLink":"Bump version to 3.77.0"}},{"before":"3057b547b107b810eaf107a040f30dd4347d45c1","after":"1427d3cd2e241e1b15916c453f90b90d056667e1","ref":"refs/heads/master","pushedAt":"2024-02-09T16:49:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Document the route_csrf :formaction_field plugin option","shortMessageHtmlLink":"Document the route_csrf :formaction_field plugin option"}},{"before":"0d5b106579236e1839629c7aad28e82a557eb515","after":"3057b547b107b810eaf107a040f30dd4347d45c1","ref":"refs/heads/master","pushedAt":"2024-01-17T19:04:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Support formaction/formmethod attributes in forms in route_csrf plugin\n\nformaction/formmethod attributes allow a single form to submit to\nmultiple endpoints. Previously, it was not possible to use these\nattributes in forms to submit to non-GET endpoints without using\nJavascript on the client side to modify the submitted fields,\nbecause the plugin only looked for a single CSRF token.\n\nThis changes things so that the route_csrf plugin will look at\nthe _csrfs[$PATH] parameter before the _csrf parameter. So forms\nthat use formaction in any inputs can have multiple hidden tags,\none per path that could be submitted to, specifying the CSRF token\nfor that path.\n\nThis does not support separate formmethod attributes for the\nsame path. However, that is not expected to be a common need.\n\nThe :formaction_field plugin option can be used to configure the\nparameter to use for storing the formaction csrf tokens.","shortMessageHtmlLink":"Support formaction/formmethod attributes in forms in route_csrf plugin"}},{"before":"714bc60619b5f6216f482460828241a57dec68c7","after":"e15869645c31fc8209949dd316e9a7c802403d18","ref":"refs/heads/gh-pages","pushedAt":"2024-01-12T16:00:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Update website for 3.76.0 release","shortMessageHtmlLink":"Update website for 3.76.0 release"}},{"before":"1ebf3e0aa276099be54cc6cb1406d4925c91d2d1","after":"0d5b106579236e1839629c7aad28e82a557eb515","ref":"refs/heads/master","pushedAt":"2024-01-12T15:52:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Bump version to 3.76.0","shortMessageHtmlLink":"Bump version to 3.76.0"}},{"before":"3d9fe8ee8c4d9f9e16be6ebb12e0a8862b16bedf","after":"1ebf3e0aa276099be54cc6cb1406d4925c91d2d1","ref":"refs/heads/master","pushedAt":"2024-01-04T17:33:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Support :filter plugin option in error_mail and error_email for filtering parameters, environment variables, and session values (Fixes #346)\n\nFor simplicity, this only adds a single option, instead of separate\noptions for each, and it only supports full filtering of the value,\nnot partial filtering. I'm open to expanding this support if users\nhave a need for it.","shortMessageHtmlLink":"Support :filter plugin option in error_mail and error_email for filte…"}},{"before":"fa7481c1e61f6ccf9bf6b156a38edf4670579de8","after":"3d9fe8ee8c4d9f9e16be6ebb12e0a8862b16bedf","ref":"refs/heads/master","pushedAt":"2023-12-27T20:35:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Add Ruby 3.3 to CI and bump actions/checkout to v4","shortMessageHtmlLink":"Add Ruby 3.3 to CI and bump actions/checkout to v4"}},{"before":"bc1fefea1d583883b9c3d4501f6b45eb19003751","after":"fa7481c1e61f6ccf9bf6b156a38edf4670579de8","ref":"refs/heads/master","pushedAt":"2023-12-27T19:48:02.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Minor refactor for previous commit\n\nAdd nocov around set_temporary_name, since this cannot be branch\ncovered on Ruby < 3.3.\n\nUse begin/ensure in spec to ensure that the MyApp constant is\nremoved even if the spec fails.\n\nUpdate CHANGELOG.","shortMessageHtmlLink":"Minor refactor for previous commit"}},{"before":"79018b0832ce435e3923e8e9d14bf82f943bcdd4","after":"bc1fefea1d583883b9c3d4501f6b45eb19003751","ref":"refs/heads/master","pushedAt":"2023-12-15T17:55:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Add break plugin, for using break inside a routing block to return from the block and keep routing\n\nThis offers the same basic feature as the pass plugin, but uses\nthe standard break operator instead of an r.pass method.","shortMessageHtmlLink":"Add break plugin, for using break inside a routing block to return fr…"}},{"before":"1dbbe3f4e9e6808fb2894308eaa533a9a49c0f5b","after":"714bc60619b5f6216f482460828241a57dec68c7","ref":"refs/heads/gh-pages","pushedAt":"2023-12-14T23:07:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Update website for 3.75.0 release","shortMessageHtmlLink":"Update website for 3.75.0 release"}},{"before":"6eddd39e890f3be5206abd9410fc485b84143fb8","after":"79018b0832ce435e3923e8e9d14bf82f943bcdd4","ref":"refs/heads/master","pushedAt":"2023-12-14T22:57:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Bump version to 3.75.0","shortMessageHtmlLink":"Bump version to 3.75.0"}},{"before":"855f84c3e963251158abad562bea14b81cfb50da","after":"6eddd39e890f3be5206abd9410fc485b84143fb8","ref":"refs/heads/master","pushedAt":"2023-11-21T20:30:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Add cookie_flags plugin, for overriding, warning, or raising for incorrect cookie flags","shortMessageHtmlLink":"Add cookie_flags plugin, for overriding, warning, or raising for inco…"}},{"before":"b3c08a3048c7eff565a1f6654cece7c94934c43b","after":"1dbbe3f4e9e6808fb2894308eaa533a9a49c0f5b","ref":"refs/heads/gh-pages","pushedAt":"2023-11-13T17:15:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Update website for 3.74.0 release","shortMessageHtmlLink":"Update website for 3.74.0 release"}},{"before":"a0b8d4f4060c4cae7ef05b8202e5dfd225698899","after":"855f84c3e963251158abad562bea14b81cfb50da","ref":"refs/heads/master","pushedAt":"2023-11-13T17:09:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Bump version to 3.74.0","shortMessageHtmlLink":"Bump version to 3.74.0"}},{"before":"4b514f785d963a021d9b905e383cb29bdeba4272","after":"a0b8d4f4060c4cae7ef05b8202e5dfd225698899","ref":"refs/heads/master","pushedAt":"2023-10-18T22:57:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Simplify reloading section of README\n\nDrop references to shotgun and Rack::Reloader. shotgun is no\nlonger maintened, and Rack::Reloader's approach of just loading\na modified file without removing constants defined in the existing\nfile is not something Roda should be encouraging.\n\nAlso recommend that people start with Zeitwerk, since that is the\nmost popular reloading option these days.","shortMessageHtmlLink":"Simplify reloading section of README"}},{"before":"b5da06a2c2ea03176c1104a006f49ecccd51240d","after":"4b514f785d963a021d9b905e383cb29bdeba4272","ref":"refs/heads/master","pushedAt":"2023-10-18T22:41:43.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Remove recommendation of X-XSS-Protection header\n\nAs described by MDN, this header can introduce vulnerabilities,\nand it is better to use a Content-Security-Policy (CSP) instead.\n\nUpdate the description for X-Frame-Options while here, since\nthe CSP frame-ancestors directive generally suffices, as the\nvast majority of browsers in use support CSP.","shortMessageHtmlLink":"Remove recommendation of X-XSS-Protection header"}},{"before":"554143fe6072e4b448f3cd149700e4580bc47aca","after":"b5da06a2c2ea03176c1104a006f49ecccd51240d","ref":"refs/heads/master","pushedAt":"2023-10-18T22:14:51.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Add redirect_http_to_https plugin, helping to ensure future requests from the browser are submitted via HTTPS","shortMessageHtmlLink":"Add redirect_http_to_https plugin, helping to ensure future requests …"}},{"before":"38867d3cca491a0a00f48ea958efb2ef221f519e","after":"554143fe6072e4b448f3cd149700e4580bc47aca","ref":"refs/heads/master","pushedAt":"2023-10-16T19:10:08.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Fixed typo in README.rdoc","shortMessageHtmlLink":"Fixed typo in README.rdoc"}},{"before":"fc57348a0acac4b604c4141eda9381fc216f82ca","after":"b3c08a3048c7eff565a1f6654cece7c94934c43b","ref":"refs/heads/gh-pages","pushedAt":"2023-10-13T15:56:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Update website for 3.73.0 release","shortMessageHtmlLink":"Update website for 3.73.0 release"}},{"before":"05af2e52a5c54044bcb9d82d143ebe63845aae08","after":"38867d3cca491a0a00f48ea958efb2ef221f519e","ref":"refs/heads/master","pushedAt":"2023-10-13T15:47:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremyevans","name":"Jeremy Evans","path":"/jeremyevans","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3846?s=80&v=4"},"commit":{"message":"Bump version to 3.73.0","shortMessageHtmlLink":"Bump version to 3.73.0"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAENGQAzQA","startCursor":null,"endCursor":null}},"title":"Activity · jeremyevans/roda"}