feat(extensions): add Webhook extension for automated RSS notifications#456
Merged
Alkarex merged 17 commits intoMay 3, 2026
Merged
Conversation
Alkarex
added a commit
to Alkarex/FreshRSS
that referenced
this pull request
Apr 19, 2026
Follow-up of FreshRSS#8700 Useful for FreshRSS/Extensions#456
Member
|
I have made a bunch of changes and will continue later, but tests already welcome. |
Alkarex
added a commit
to FreshRSS/FreshRSS
that referenced
this pull request
Apr 20, 2026
Follow-up of #8700 Useful for FreshRSS/Extensions#456
Alkarex
reviewed
Apr 20, 2026
Member
There was a problem hiding this comment.
This license is different from the one in the readme.
I suggest removing this file also for uniformity with the rest of the repo
Co-authored-by: Copilot <copilot@github.com>
And more simplification
Alkarex
added a commit
to FreshRSS/FreshRSS
that referenced
this pull request
Apr 28, 2026
Contributor
Author
|
Hey @Alkarex Apologies for having let this PR go unmaintained. Thank you for taking care of it, it's really appreciated! |
Member
|
No worries, and tests / feedback welcome. |
doonga
pushed a commit
to greyrock-labs/home-ops
that referenced
this pull request
May 13, 2026
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [freshrss/freshrss](https://freshrss.org/) ([source](https://github.com/FreshRSS/FreshRSS)) | minor | `1.28.1-alpine` → `1.29.0-alpine` | --- ### Release Notes <details> <summary>FreshRSS/FreshRSS (freshrss/freshrss)</summary> ### [`v1.29.0`](https://github.com/FreshRSS/FreshRSS/blob/HEAD/CHANGELOG.md#2026-05-10-FreshRSS-1290) [Compare Source](FreshRSS/FreshRSS@1.28.1...1.29.0) - Features - New sort order preferences at global, category, and feed levels [#​8234](FreshRSS/FreshRSS#8234) - New filtering by date of *Server modification date* [#​8131](FreshRSS/FreshRSS#8131), [#​8576](FreshRSS/FreshRSS#8576) - Corresponding search operator, e.g. `mdate:P1D` for finding articles modified by the author / server during the past day. - Especially useful for optimising the API synchronisation. - Use feed-provided icon [#​8633](FreshRSS/FreshRSS#8633) - New option to automatically mark new articles as read if an identical GUID already exists in the same category [#​8673](FreshRSS/FreshRSS#8673) - Automatic feed visibility/priority during search [#​8609](FreshRSS/FreshRSS#8609) - Add feed visibility filter to statistics view *unread dates* [#​8489](FreshRSS/FreshRSS#8489) - Add option to enable/disable notifications, also for PWA [#​8458](FreshRSS/FreshRSS#8458) - Add a form to create new user queries on the *User Queries* page [#​8623](FreshRSS/FreshRSS#8623) - Allow WebSub hub push from same private network [#​8450](FreshRSS/FreshRSS#8450) - Support category field in JSON feed import [#​8786](FreshRSS/FreshRSS#8786) - Bug fixing - Fix wrong search `toString` in case of regex-looking string [#​8479](FreshRSS/FreshRSS#8479) - Fix article *last seen date* in case of feed errors [#​8646](FreshRSS/FreshRSS#8646) - Fix search expansion with backslash [#​8497](FreshRSS/FreshRSS#8497) - Fix user query parsing [#​8543](FreshRSS/FreshRSS#8543) - Fix search in shared user queries [#​8789](FreshRSS/FreshRSS#8789) - Fix redirect to wrong view after mark as read in *reader* and *global* views [#​8552](FreshRSS/FreshRSS#8552) - Fix SQLite paging when sorting by article length [#​8594](FreshRSS/FreshRSS#8594) - Fix change sorting during paging [#​8688](FreshRSS/FreshRSS#8688) - Fix SQL keyset pagination when sorting by category name [#​8597](FreshRSS/FreshRSS#8597) - Fix SQL duplicates in the user labels when sorting randomly [#​8626](FreshRSS/FreshRSS#8626) - Fix wrong error redirect in subscription management [#​8625](FreshRSS/FreshRSS#8625) - Fix do not include hidden feeds when counting total number of unread articles [#​8715](FreshRSS/FreshRSS#8715) - Update user modify date when changing extensions UserJS / UserCSS [#​8607](FreshRSS/FreshRSS#8607) - Non-strict OPML export [#eedefb](FreshRSS/FreshRSS@eedefbd) - Security - Limit cURL to protocols HTTP, HTTPS [#​8713](FreshRSS/FreshRSS#8713) - Better sanitise favicon URLs [#​8714](FreshRSS/FreshRSS#8714) - New setting for `<iframe>` referrer allow list [#​8672](FreshRSS/FreshRSS#8672) - Fix email validation and allow error page for unverified email users [#​8582](FreshRSS/FreshRSS#8582) - Add `allowfullscreen` to `<iframe>` [#​8467](FreshRSS/FreshRSS#8467) - Rewrite `Set-Cookie` using native PHP support of `SameSite` [#​8447](FreshRSS/FreshRSS#8447), [#​8778](FreshRSS/FreshRSS#8778) - Sanitize lifetime of session cookies from `session.cookie-lifetime` in `php.ini` - Update to `<meta name="referrer" content="no-referrer" />` from deprecated `never` [#​8725](FreshRSS/FreshRSS#8725) - Preventive measure against search ingestion [#​8777](FreshRSS/FreshRSS#8777) - UI - New option to hide sidebar by default [#​8528](FreshRSS/FreshRSS#8528) - Improve mobile view with multiple lines when thumbnails and summaries are shown [#​8631](FreshRSS/FreshRSS#8631) - New option to disable unread counter in tab title and favicon [#​8728](FreshRSS/FreshRSS#8728) - Show time since when a feed has problems [#​8670](FreshRSS/FreshRSS#8670) - Improve add feed UI [#​8683](FreshRSS/FreshRSS#8683) - Improve slider behaviour when using navigate back button [#​8496](FreshRSS/FreshRSS#8496), [#​8524](FreshRSS/FreshRSS#8524) - Improve consistency of slider behaviour after submitting form [#​8612](FreshRSS/FreshRSS#8612) - Create dynamic favicons from SVG instead of PNG canvas [#​8577](FreshRSS/FreshRSS#8577), [#​8588](FreshRSS/FreshRSS#8588) - Only display scrollbar everywhere if there's an overflow (especially for Chromium) [#​8542](FreshRSS/FreshRSS#8542) - Fix CSS padding of `.content pre code` [#​8620](FreshRSS/FreshRSS#8620) - Fix wrong navigation buttons layout on Chromium [#​8606](FreshRSS/FreshRSS#8606) - Fix don’t mark as read if middle click is outside of article link [#​8553](FreshRSS/FreshRSS#8553) - More robust JS [#​8595](FreshRSS/FreshRSS#8595) - Fix sidebar slide animation at narrow viewports [#​8747](FreshRSS/FreshRSS#8747) - Visually dim disabled users in user management table [#​8768](FreshRSS/FreshRSS#8768) - Improve multiple UI themes [#​8711](FreshRSS/FreshRSS#8711), [#​8732](FreshRSS/FreshRSS#8732), [#​8733](FreshRSS/FreshRSS#8733), [#​8734](FreshRSS/FreshRSS#8734), [#​8735](FreshRSS/FreshRSS#8735), [#​8736](FreshRSS/FreshRSS#8736), [#​8737](FreshRSS/FreshRSS#8737), [#​8738](FreshRSS/FreshRSS#8738), [#​8739](FreshRSS/FreshRSS#8739), [#​8743](FreshRSS/FreshRSS#8743), [#​8746](FreshRSS/FreshRSS#8746), [#​8749](FreshRSS/FreshRSS#8749), [#​8761](FreshRSS/FreshRSS#8761), [#​8781](FreshRSS/FreshRSS#8781), [#​8784](FreshRSS/FreshRSS#8784), [#​8785](FreshRSS/FreshRSS#8785) - Various UI and style improvements: [#​8537](FreshRSS/FreshRSS#8537), [#​8538](FreshRSS/FreshRSS#8538), [#​8541](FreshRSS/FreshRSS#8541), [#​8624](FreshRSS/FreshRSS#8624), [#​8731](FreshRSS/FreshRSS#8731), [#​8774](FreshRSS/FreshRSS#8774) - Deployment - Also push Docker images to [GitHub registry](https://github.com/FreshRSS/FreshRSS/pkgs/container/freshrss) [#​8669](FreshRSS/FreshRSS#8669) - Improve support of PHP 8.5+ using `Pdo\Mysql` [#​8526](FreshRSS/FreshRSS#8526) - Add support for Podman in Makefile [#​8456](FreshRSS/FreshRSS#8456) - Re-add database status in installation check [#​8510](FreshRSS/FreshRSS#8510) - Docker / CLI: Allow chown/chmod to fail with warning [#​8635](FreshRSS/FreshRSS#8635) - Extensions - New Webhook extension for automated RSS notifications [Extensions#456](FreshRSS/Extensions#456) - New LLM Classification extension to automatically tag incoming articles based on a prompt sent to an LLM [Extensions#458](FreshRSS/Extensions#458) - New extension methods to get typed configuration values [#​8696](FreshRSS/FreshRSS#8696) - New hook: `Minz_HookType::ActionExecute` [#​8599](FreshRSS/FreshRSS#8599), [#​8603](FreshRSS/FreshRSS#8603) - New hook to modify the list of feeds to actualize [#​8655](FreshRSS/FreshRSS#8655), [#​8675](FreshRSS/FreshRSS#8675) - Allow passing `Minz_HookType` as hook name in `registerHook()` [#​8600](FreshRSS/FreshRSS#8600) - Return more info and status from `httpGet()` [#​8700](FreshRSS/FreshRSS#8700) - Make `httpGet()` cache nullable [#​8705](FreshRSS/FreshRSS#8705) - Allow extensions’ configuration UI to use `select-input-changer` JavaScript helper [#​8721](FreshRSS/FreshRSS#8721) - SimplePie - Bump upstream [#​8628](FreshRSS/FreshRSS#8628), [simplepie#71](FreshRSS/simplepie#71) - New function `get_icon_url()` for feed favicon [simplepie#974](simplepie/simplepie#974) - Fix Undefined array key in `get_thumbnail()` [#​8634](FreshRSS/FreshRSS#8634), [simplepie#970](simplepie/simplepie#970) - Fix int types for enclosures [#​8702](FreshRSS/FreshRSS#8702), [simplepie#975](simplepie/simplepie#975) - Fix HTTPS headers given to SimplePie, e.g. for some HTTP/2 cases [#​8742](FreshRSS/FreshRSS#8742) - CLI - New `cli/purge.php` to apply purge policy [#​8740](FreshRSS/FreshRSS#8740) - I18n - CLI validate language directory names [#​8767](FreshRSS/FreshRSS#8767) - New functions to handle plural, and new `timeago()` [#​8670](FreshRSS/FreshRSS#8670) - Improve German [#​8491](FreshRSS/FreshRSS#8491), [#​8557](FreshRSS/FreshRSS#8557), [#​8689](FreshRSS/FreshRSS#8689), [#​8704](FreshRSS/FreshRSS#8704) - Improve Italian [#​8517](FreshRSS/FreshRSS#8517), [#​8519](FreshRSS/FreshRSS#8519), [#​8554](FreshRSS/FreshRSS#8554), [#​8555](FreshRSS/FreshRSS#8555), [#​8556](FreshRSS/FreshRSS#8556), [#​8566](FreshRSS/FreshRSS#8566) - Improve Latvian [#​6553](FreshRSS/FreshRSS#6553) - Improve Polish [#​8536](FreshRSS/FreshRSS#8536) - Improve Portuguese [#​8649](FreshRSS/FreshRSS#8649) - Improve Simplified Chinese [#​8474](FreshRSS/FreshRSS#8474), [#​8475](FreshRSS/FreshRSS#8475), [#​8476](FreshRSS/FreshRSS#8476) - Improve Traditional Chinese [#​8709](FreshRSS/FreshRSS#8709), [#​8716](FreshRSS/FreshRSS#8716), [#​8723](FreshRSS/FreshRSS#8723), [#​8730](FreshRSS/FreshRSS#8730), [#​8748](FreshRSS/FreshRSS#8748) - Improve Spanish [#​8572](FreshRSS/FreshRSS#8572) - Misc. - Initial conventions for AI agents and humans: `AGENTS.md`, `SKILLS.md`, `instructions.md` [#​8478](FreshRSS/FreshRSS#8478) - Update to CSSXPath 1.5.0 [#​8642](FreshRSS/FreshRSS#8642) - Update to PHPMailer 7.0.2 [#​8483](FreshRSS/FreshRSS#8483) - SQL improve PHP syntax uniformity [#​8604](FreshRSS/FreshRSS#8604) - Trim SQL whitespace before parenthesis [#​8522](FreshRSS/FreshRSS#8522) - Improve PHP code [#​8627](FreshRSS/FreshRSS#8627), [#​8644](FreshRSS/FreshRSS#8644), [#​8753](FreshRSS/FreshRSS#8753), [#​8697](FreshRSS/FreshRSS#8697) - Add dev legacy rules PHPCS 3 [#​8645](FreshRSS/FreshRSS#8645) - Update dev dependencies [#​8469](FreshRSS/FreshRSS#8469), [#​8480](FreshRSS/FreshRSS#8480), [#​8499](FreshRSS/FreshRSS#8499), [#​8545](FreshRSS/FreshRSS#8545), [#​8546](FreshRSS/FreshRSS#8546), [#​8547](FreshRSS/FreshRSS#8547), [#​8617](FreshRSS/FreshRSS#8617), [#​8638](FreshRSS/FreshRSS#8638), [#​8660](FreshRSS/FreshRSS#8660), [#​8661](FreshRSS/FreshRSS#8661), [#​8662](FreshRSS/FreshRSS#8662), [#​8663](FreshRSS/FreshRSS#8663), [#​8664](FreshRSS/FreshRSS#8664), [#​8665](FreshRSS/FreshRSS#8665), [#​8666](FreshRSS/FreshRSS#8666), [#​8667](FreshRSS/FreshRSS#8667), [#​8668](FreshRSS/FreshRSS#8668), [#​8685](FreshRSS/FreshRSS#8685), [#​8752](FreshRSS/FreshRSS#8752), [#​8754](FreshRSS/FreshRSS#8754), [#​8755](FreshRSS/FreshRSS#8755), [#​8756](FreshRSS/FreshRSS#8756), [#​8757](FreshRSS/FreshRSS#8757), [#​8758](FreshRSS/FreshRSS#8758), [#​8772](FreshRSS/FreshRSS#8772), [#​8798](FreshRSS/FreshRSS#8798) </details> --- ### Configuration 📅 **Schedule**: (in timezone America/New_York) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNjAuNyIsInVwZGF0ZWRJblZlciI6IjQzLjE2MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Co-authored-by: todd <tpunderson@greyrock.io> Reviewed-on: https://git.greyrock.io/greyrock-labs/home-ops/pulls/20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a copy of #324 with the linting fixed.
All credits to @Ryahn (and @Alkarex for the fixes)
🎯 Purpose
Implements the long-requested webhook feature from issue #1513, allowing users to automatically send webhook notifications when RSS entries match specified keywords.
🚀 Features
🔧 Technical Details
🧪 Testing
📚 Documentation
Resolves FreshRSS/FreshRSS#1513