Cuscen.Git.Alert GitHub webhook summaries to Telegram

Spec-driven MVC foundation

Webhook ingress, queued processing, summaries, and Telegram delivery.

This project follows the PDF architecture: GitHub receives a fast 2xx response, work is queued into an in-memory channel, summaries are cached in SQL Server, and Telegram replies can fan out into follow-up detail messages.

POST /webhooks/github POST /webhooks/telegram GET /health

MVP runtime

  • Queue capacity: 200
  • Persistence: SQL Server
  • Summarizer: heuristic fallback
  • Idempotency: X-GitHub-Delivery
Total deliveries 10
Processed 8
Failed 2
Cached summaries 6
PR thread mappings 0

Configuration

GitHub webhook secret Configured
GitHub API token Configured
Telegram bot token Configured
Telegram target chat Configured

Processing flow

  1. Validate GitHub HMAC on the raw request body.
  2. Persist delivery ID for idempotency and replay protection.
  3. Queue the webhook for background processing.
  4. Enrich with GitHub REST data when an access token exists.
  5. Build a bounded change digest and summary snapshot.
  6. Send a Telegram message with a “More details” callback button.

Recent deliveries

Stored in SQL Server so you can inspect idempotency, failures, and replay behavior.

Delivery Event Repository Status Received
e1d766d6-1f88-11f1-8fa7-b76239e5ee16 push CuscenPTE/TelegramBot Processed 2026-03-14 16:33:40
86e353de-1f88-11f1-856b-d531a5469949 push CuscenPTE/TelegramBot Processed 2026-03-14 16:31:07
8c3794e0-1f87-11f1-9839-ca09b4cdc91a push CuscenPTE/CX.UI Processed 2026-03-14 16:24:07
95a49786-1f86-11f1-9dc0-ab763ef1d4dc ping CuscenPTE/CX.UI Processed 2026-03-14 16:17:14
516d0810-1f85-11f1-8ef2-680e60bee5db push CuscenPTE/TelegramBot Processed 2026-03-14 16:08:09
7c91ef90-1f82-11f1-85bd-dc4395475a51 push CuscenPTE/TelegramBot Processed 2026-03-14 15:47:53
3a8192b0-1f80-11f1-9535-ff18b94fad99 push CuscenPTE/TelegramBot Processed 2026-03-14 15:31:44
ce7c8354-1f7f-11f1-8044-337b72bf1f2c
An invalid request URI was provided. Either the request URI must be an absolute URI or BaseAddress must be set.
push CuscenPTE/TelegramBot Failed 2026-03-14 15:28:42
2813133e-1f7f-11f1-8ff9-08b9aa83dd69
An invalid request URI was provided. Either the request URI must be an absolute URI or BaseAddress must be set.
push CuscenPTE/TelegramBot Failed 2026-03-14 15:24:03
f60e83c0-1f7c-11f1-8d73-ebcb89b27103 ping CuscenPTE/TelegramBot Processed 2026-03-14 15:20:21