{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":734786603,"defaultBranch":"master","name":"rss-funnel","ownerLogin":"shouya","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-12-22T16:04:49.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/526598?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1722934661.0","currentOid":""},"activityList":{"items":[{"before":"6e7a4022e3a3cab999402ad7c005d7e3556d1a6d","after":null,"ref":"refs/tags/0.1.4","pushedAt":"2024-08-06T08:57:25.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"}},{"before":"e1839c5b42007e1604027cfe33f5f79405b604c7","after":"29141c5c351f21031fb12c0b0704840076f6f3cd","ref":"refs/heads/master","pushedAt":"2024-08-06T08:56:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"chore: update changelog","shortMessageHtmlLink":"chore: update changelog"}},{"before":"3701b4a8c6366dfe65fe9298c0a63dc61be8143e","after":"e1839c5b42007e1604027cfe33f5f79405b604c7","ref":"refs/heads/master","pushedAt":"2024-08-06T08:46:23.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"chore: update changelog","shortMessageHtmlLink":"chore: update changelog"}},{"before":"44d407105d0d1927847f06b8b2e2747da79dd33d","after":null,"ref":"refs/heads/fix-build-for-windows","pushedAt":"2024-08-06T08:44:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"}},{"before":"368aa682e4c9319f05a579875b9ec7d27af3d517","after":"3701b4a8c6366dfe65fe9298c0a63dc61be8143e","ref":"refs/heads/master","pushedAt":"2024-08-06T08:44:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"fix: Build on Windows (#142)\n\nThe signal handler for graceful shutdown is unix only. This commit\r\nremoves it for Windows builds.","shortMessageHtmlLink":"fix: Build on Windows (#142)"}},{"before":null,"after":"44d407105d0d1927847f06b8b2e2747da79dd33d","ref":"refs/heads/fix-build-for-windows","pushedAt":"2024-08-06T08:33:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"only start unix signal handler on unix","shortMessageHtmlLink":"only start unix signal handler on unix"}},{"before":"dcbb00d22d48064087961f02ae8bb251ccd15fba","after":"368aa682e4c9319f05a579875b9ec7d27af3d517","ref":"refs/heads/master","pushedAt":"2024-08-06T08:28:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"bump version","shortMessageHtmlLink":"bump version"}},{"before":"f05b2a385f749861280d759fd50624d7e2ee99d9","after":"dcbb00d22d48064087961f02ae8bb251ccd15fba","ref":"refs/heads/master","pushedAt":"2024-08-06T08:23:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"chore: update changelog","shortMessageHtmlLink":"chore: update changelog"}},{"before":"12a913c0deed0e9123f828a3ebf634d253384e85","after":null,"ref":"refs/heads/make-filters-key-optional","pushedAt":"2024-08-06T08:22:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"}},{"before":"9b896f9c8db71b25fdae6bca170ce810f947fd4f","after":"f05b2a385f749861280d759fd50624d7e2ee99d9","ref":"refs/heads/master","pushedAt":"2024-08-06T08:22:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"fix: Allow unspecified filters key (#141)\n\nPreviously the `filters` key is required for an `endpoint` definition.\r\nNow we have cases where the `filters` are no longer needed:\r\n\r\n- endpoints with on-the-fly filters\r\n- endpoints merely meant to proxy upstream feeds (for example, with\r\ntemplated source)\r\n\r\nIn such cases, we should allow the user to omit the unncessary `filters`\r\nkey altogether.","shortMessageHtmlLink":"fix: Allow unspecified filters key (#141)"}},{"before":null,"after":"12a913c0deed0e9123f828a3ebf634d253384e85","ref":"refs/heads/make-filters-key-optional","pushedAt":"2024-08-06T08:19:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"allow unspecified filters key","shortMessageHtmlLink":"allow unspecified filters key"}},{"before":"d6c732eff697e0986eb781321a60408b36a464f6","after":"9b896f9c8db71b25fdae6bca170ce810f947fd4f","ref":"refs/heads/master","pushedAt":"2024-08-05T09:20:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"update CHANGELOG.md","shortMessageHtmlLink":"update CHANGELOG.md"}},{"before":"a06563cdce1fca0c55e79b275e5b8c04e102a428","after":"d6c732eff697e0986eb781321a60408b36a464f6","ref":"refs/heads/master","pushedAt":"2024-08-05T09:19:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"fix a typo in an error message","shortMessageHtmlLink":"fix a typo in an error message"}},{"before":"313649af787a7f05abdf5719770a31f13bade03e","after":"a06563cdce1fca0c55e79b275e5b8c04e102a428","ref":"refs/heads/master","pushedAt":"2024-08-05T09:19:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"fix a typo in error message","shortMessageHtmlLink":"fix a typo in error message"}},{"before":"bc0086da86ed40cb47e23b926aedc7d7e96fdf91","after":null,"ref":"refs/heads/placeholders-in-source","pushedAt":"2024-08-05T09:10:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"}},{"before":"9104cdf624fcfeae9b1e0ed07c5a2de8ec5e553e","after":"313649af787a7f05abdf5719770a31f13bade03e","ref":"refs/heads/master","pushedAt":"2024-08-05T09:10:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"feat: Placeholders in source (#139)\n\nThis PR adds support for placeholders in the source url. This is useful\r\nfor cases where the portion of source url is dynamic and can be\r\nspecified when users request for the endpoint. The feature can be\r\nconsidered a pragmatic middle ground between static source and dynamic\r\nsource.\r\n\r\nImplements the feature request in\r\nhttps://github.com/shouya/rss-funnel/issues/137.\r\n\r\nHere's an example to demonstrate the usage:\r\n\r\n```yaml\r\nendpoints:\r\n - path: /telegram.xml\r\n source:\r\n template: https://bridge.easter.fr/?action=display&bridge=TelegramBridge&username=${username}&format=Atom\r\n placeholders:\r\n username: {}\r\n filters: []\r\n```\r\n\r\nFor each placeholders, you can define the default value and/or a\r\nvalidation regex:\r\n\r\n```yaml\r\nendpoints:\r\n - path: /telegram.xml\r\n source:\r\n template: https://bridge.easter.fr/?action=display&bridge=TelegramBridge&username=${username}&format=Atom\r\n placeholders:\r\n username:\r\n validation: \"^\\\\w+$\"\r\n default: MANJULtoons\r\n filters: []\r\n```\r\n\r\nThen you can request the endpoint with the corresponding parameter like\r\nhttp://127.0.0.1:4080/telegram.xml?username=MANJULtoons.\r\n\r\n\r\nNOTE: The Inspector UI for this particular source type is unsupported\r\nyet. I'm planning for a rewrite of the Inspector UI so before the\r\nrewrite the Inspector UI won't keep up with new features.","shortMessageHtmlLink":"feat: Placeholders in source (#139)"}},{"before":"07f264001c9b329e42ac4020e204a79b4983e896","after":"bc0086da86ed40cb47e23b926aedc7d7e96fdf91","ref":"refs/heads/placeholders-in-source","pushedAt":"2024-08-05T09:05:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"change placeholder syntax in a template\n\nChanged to ${name} from %name%. The %name% syntax can be confused with percentage encoding in url.","shortMessageHtmlLink":"change placeholder syntax in a template"}},{"before":"15f734072dae15c4186334fe3a0fe733fcf1153a","after":"07f264001c9b329e42ac4020e204a79b4983e896","ref":"refs/heads/placeholders-in-source","pushedAt":"2024-08-05T08:56:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"fix broken tests","shortMessageHtmlLink":"fix broken tests"}},{"before":"f04d3d840250655cb2b696efa17e2a8a4bb02bf6","after":"15f734072dae15c4186334fe3a0fe733fcf1153a","ref":"refs/heads/placeholders-in-source","pushedAt":"2024-08-05T08:51:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"rename default_value field to just default","shortMessageHtmlLink":"rename default_value field to just default"}},{"before":"3eb5e437f6bd98574afb9b832b55a665238c6c8a","after":"f04d3d840250655cb2b696efa17e2a8a4bb02bf6","ref":"refs/heads/placeholders-in-source","pushedAt":"2024-08-05T08:48:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"encode the parameter in url query","shortMessageHtmlLink":"encode the parameter in url query"}},{"before":null,"after":"3eb5e437f6bd98574afb9b832b55a665238c6c8a","ref":"refs/heads/placeholders-in-source","pushedAt":"2024-08-05T08:39:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"handle placeholders in template","shortMessageHtmlLink":"handle placeholders in template"}},{"before":"de47a6562cf84977c6f2e2916898470357faeeb6","after":null,"ref":"refs/heads/improve-source-error-message","pushedAt":"2024-08-05T07:28:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"}},{"before":"b6ba64cfc230084a003cc3efd50f18af1e1bc359","after":"9104cdf624fcfeae9b1e0ed07c5a2de8ec5e553e","ref":"refs/heads/master","pushedAt":"2024-08-05T07:28:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"fix: improve source error message (#138)\n\nPreviously, if an endpoint failed to fetch the source, the endpoint\r\nwould respond with a status 500 and an error message too specific. For\r\nexample, it could be a \"500: bad url\" which is not very clear to the\r\nuser that it's the source url that's broken or an url elsewhere.\r\n\r\nThis commit improves on the error message by providing a more\r\nuser-friendly message:\r\n\r\n- http request errors from anywhere in the pipeline will show as a 502\r\nerror with the failed status code and the requesting url is returned in\r\nthe error message\r\n- source errors will indicate it's a source error","shortMessageHtmlLink":"fix: improve source error message (#138)"}},{"before":"f5b1e6858d7093f380057a3c57ccf79680145e73","after":"de47a6562cf84977c6f2e2916898470357faeeb6","ref":"refs/heads/improve-source-error-message","pushedAt":"2024-08-05T07:25:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"fix clippy warning","shortMessageHtmlLink":"fix clippy warning"}},{"before":"bfa95c673f20ef12e2fa14aa531987fb97c0b9bf","after":"f5b1e6858d7093f380057a3c57ccf79680145e73","ref":"refs/heads/improve-source-error-message","pushedAt":"2024-08-05T07:21:53.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"fix broken build in dependency","shortMessageHtmlLink":"fix broken build in dependency"}},{"before":"82bdb59ef7841e98675d0b68f8abb4feebf9f1b3","after":"bfa95c673f20ef12e2fa14aa531987fb97c0b9bf","ref":"refs/heads/improve-source-error-message","pushedAt":"2024-08-05T07:20:07.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"return 502 instead of the original status code","shortMessageHtmlLink":"return 502 instead of the original status code"}},{"before":"172bc1f12854649c81f08b8a78583f8410e826c2","after":"82bdb59ef7841e98675d0b68f8abb4feebf9f1b3","ref":"refs/heads/improve-source-error-message","pushedAt":"2024-08-05T07:19:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"return 502 instead of the original status code","shortMessageHtmlLink":"return 502 instead of the original status code"}},{"before":"148e175fa725ff2a718137210c6b293171bc1e36","after":"172bc1f12854649c81f08b8a78583f8410e826c2","ref":"refs/heads/improve-source-error-message","pushedAt":"2024-08-05T07:02:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"improve rendering of fetch source and http-status errors","shortMessageHtmlLink":"improve rendering of fetch source and http-status errors"}},{"before":null,"after":"148e175fa725ff2a718137210c6b293171bc1e36","ref":"refs/heads/improve-source-error-message","pushedAt":"2024-08-05T07:01:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"},"commit":{"message":"improve source error message","shortMessageHtmlLink":"improve source error message"}},{"before":"6a2dff900516ad618f549a4730aa0ac0c31df97d","after":null,"ref":"refs/heads/fix-dynamic-source-url-encoding","pushedAt":"2024-07-20T06:37:21.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"shouya","name":null,"path":"/shouya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/526598?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEkt8RLgA","startCursor":null,"endCursor":null}},"title":"Activity ยท shouya/rss-funnel"}