Skip to content

feat(notifications): add support for ntfy.sh tags - #3350

Open
bartdelange wants to merge 6 commits into
seerr-team:developfrom
bartdelange:feat/ntfy-tags
Open

feat(notifications): add support for ntfy.sh tags#3350
bartdelange wants to merge 6 commits into
seerr-team:developfrom
bartdelange:feat/ntfy-tags

Conversation

@bartdelange

@bartdelange bartdelange commented Aug 7, 2026

Copy link
Copy Markdown

Description

This adds support for ntfy.sh tags system. This will make subscribers of mass topics differentiate app types. As an example say you have a media topic on which all *arr's are publishing messages and you'd like to add Seerr as well below the tag Seerr (and optional emoji). See the screenshot for how this looks in app.

AI Disclosure: I used ChatGPT to get my bearings in the codebase and give me a list of stuff to change and do to contribute (stuff like filenames:line number, what to put into the pr and commit title etc).

How Has This Been Tested?

  • I started the app, added a quick default plex setup.
  • I went to settings > notifications > ntfy.sh and entered my self hosted server
  • Tested with and without tags

Screenshots / Logs (if applicable)

image Top two are what the local testing resulted in

Checklist:

  • I have read and followed the contribution guidelines.
  • Disclosed any use of AI (see our policy)
  • I have updated the documentation accordingly.
  • All new and existing tests passed.
  • Successful build pnpm build
  • Translation keys pnpm i18n:extract
  • Database migration (if required) - Not required

Summary by CodeRabbit

  • New Features

    • Added optional ntfy notification tags using comma-separated values, such as eyes or eyes,warning.
    • Added a Tags field to ntfy notification settings.
    • Tags are trimmed and empty entries are removed before being included in notifications.
    • Tag settings are supported when saving and testing notifications.
  • Documentation

    • Updated ntfy notification setup documentation with tag configuration details.

@bartdelange
bartdelange requested a review from a team as a code owner August 7, 2026 14:33
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 96a8fd6d-5eb0-45a8-bdfd-13af47c0375d

📥 Commits

Reviewing files that changed from the base of the PR and between 35e8a57 and 045a40a.

📒 Files selected for processing (2)
  • seerr-api.yml
  • src/i18n/locale/en.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/i18n/locale/en.json

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

Ntfy settings now support optional comma-separated tags. The settings form persists and tests the value, the API schema exposes it, and notification payloads include trimmed non-empty tags.

Changes

Ntfy tag configuration

Layer / File(s) Summary
Ntfy tag setting contract
server/lib/settings/index.ts, seerr-api.yml, docs/using-seerr/notifications/ntfy.md
The Ntfy configuration and API schema define an optional tags string. The default is an empty string. The documentation describes comma-separated tags.
Ntfy tag form wiring
src/components/Settings/Notifications/NotificationsNtfy/index.tsx, src/i18n/locale/en.json
The form displays the tags field, loads persisted tags, and includes the value in save and test requests. Localized labels and a placeholder describe comma-separated tags.
Ntfy payload tag handling
server/lib/notifications/agents/ntfy.ts
The payload builder trims configured tags, removes empty values, and adds tags only when values remain.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 045a4

This change adds ntfy.sh tag support without any identified merge-blocking risk at the current head; it is merge-ready after normal checks and review.

Sequence Diagram(s)

sequenceDiagram
  participant NotificationsNtfy
  participant SettingsAPI
  participant NtfyAgent
  NotificationsNtfy->>SettingsAPI: Save or test tags
  SettingsAPI->>NtfyAgent: Provide Ntfy settings
  NtfyAgent->>NtfyAgent: Parse and filter tags
  NtfyAgent-->>SettingsAPI: Build payload with non-empty tags
Loading

Suggested reviewers: 0xsysr3ll

Poem

A rabbit adds tags in a neat little row,
“eyes, warning” is ready to go.
The form saves each note,
The payloads now float,
With clean little labels in tow.

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary change: adding support for ntfy.sh notification tags.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@0xSysR3ll 0xSysR3ll added the i18n-out-of-sync User forgot to run pnpm i18n:extract label Aug 8, 2026
@0xSysR3ll 0xSysR3ll removed the i18n-out-of-sync User forgot to run pnpm i18n:extract label Aug 10, 2026
Comment thread docs/using-seerr/notifications/ntfy.md Outdated
bartdelange and others added 2 commits August 10, 2026 22:20
Co-authored-by: 0xsysr3ll <31414959+0xSysR3ll@users.noreply.github.com>

@0xSysR3ll 0xSysR3ll left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested. LGTM

@seerr-automation-bot seerr-automation-bot added this to the v3.5.0 milestone Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants