databuddy-analytics / databuddy-analytics/Databuddy

docs(notifications): TODO.md claims Discord/Teams/Telegram/Google Chat providers exist — they don't

Open
#635 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
1.2k
Forks
216
Avg merge
14h 53m
Merged PRs (30d)
154

Description

Summary

packages/notifications/TODO.md checks off Discord, Microsoft Teams, Telegram, and Google Chat as [x] done:

- [x] **Slack** - Webhook support
- [x] **Discord** - Webhook support
- [x] **Email** - Injected send function
- [x] **Webhook** - Generic HTTP webhook
- [x] **Microsoft Teams** - Adaptive Cards via webhook
- [x] **Telegram** - Bot API (sendMessage)
- [x] **Google Chat** - Cards via webhook

But packages/notifications/src/providers/ only contains slack.ts, email.ts, webhook.ts, and base.ts — no matching files for the other four. NotificationChannel (packages/notifications/src/types.ts:1) is typed "slack" | "email" | "webhook" only, and NotificationClient (packages/notifications/src/client.ts) only wires those three up. The alarms-system section of the same TODO.md (line 13) still lists discord/teams/telegram/google-chat as channels an alarm should be able to target, so this looks like real missing functionality rather than just stale docs.

Proposal

Add a Discord provider (webhook-based, mirroring the existing SlackProvider) as a first, self-contained slice:

  • New providers/discord.ts following the SlackProvider/WebhookProvider pattern
  • Extend NotificationChannel and wire it into NotificationClient
  • Tests mirroring the existing Slack provider tests
  • Fix the TODO.md checkboxes to reflect reality

Keeping this scoped to Discord only — happy to do Teams/Telegram/Google Chat as separate follow-up PRs if this shape is right, rather than one big PR.

Checking scope/interest before opening a PR, per the AI policy here — let me know if this is wanted or if there's context I'm missing (e.g. planned elsewhere / superseded by a different design).

Disclosure: I used Claude Code to grep the providers directory against TODO.md and the type definitions; verified manually before writing this up.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with packages/notifications/src/providers/slack.ts and webhook.ts, then inspect packages/notifications/src/types.ts, client.ts, and the existing Slack provider tests. Add the Discord provider and client/type wiring in the same pattern, update packages/notifications/TODO.md to match the implemented scope, and verify the Discord-focused tests pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.