Send Weekly GitHub Digests to Telegram with Qwen via OpenRouter
Ready to use?
Resources & Links
1. Overview
This is a workflow that automatically monitors all GitHub repositories on your account and delivers AI-generated engineering reports directly to Telegram. Runs every Monday at 9 AM — or instantly when you send a command like /report, /issues, /prs, or /status to your Telegram bot. No dashboards, no BI setup, no manual reporting. Just a bot that keeps your engineering activity visible.
Perfect for indie hackers, solo developers, open-source maintainers, and small engineering teams who want a lightweight weekly engineering report without expensive analytics tools or Jira setups.
Main Goal: Keep continuous visibility into engineering activity without leaving Telegram — bot aggregates automatically, AI generates readable reports, humans decide what to act on.
🚀 Key Highlight: Two triggers in one workflow — weekly schedule for automatic reports, Telegram bot for on-demand queries. Stats are aggregated before being sent to the LLM, significantly reducing token usage. If the AI fails, a fallback code node still formats raw stats — you never lose connection.
2. Key Features
A. Multi-Mode Reports via Telegram The bot supports 4 different commands, each producing output tailored to a specific need — from full overviews to quick health checks.
- Detail 1:
/reportgenerates a full 4-part weekly digest (highlights, per-repo details, weekly insights, next-week priorities)./issueslists all open issues./prsshows PR status./statusgives a quick health check with emoji indicators. - Detail 2: Reports are split into multiple Telegram messages to stay within the 4096-character limit and improve readability on mobile devices.
B. Smart Collection & Aggregation The workflow automatically fetches all repos, filters out archived ones, collects events, and aggregates stats before sending to the AI — saving tokens and API costs.
- Detail 1: Pulls the complete repo list via GitHub User Repos API, automatically filtering archived repos. For each repo, calls the Events API for up to 100 recent events.
- Detail 2: Events are grouped by repo, counted by type (commits, issues, PRs, releases), tracking contributors and detecting stale repos. Only counts (not raw payloads) reach the LLM — significantly reducing token usage.
C. Comprehensive Error Handling & Fallback The workflow is designed to always respond to users, never staying silent when errors occur at any layer.
- Detail 1: A Switch node handles three paths: has activity (generate report), all repos failed (send API error alert), or no activity (silent stop).
- Detail 2: If the AI model fails, a fallback code node formats raw stats without AI. If all GitHub repos fail to fetch, an error alert is sent to Telegram. The user always gets feedback.
D. Token-Efficient & Low Cost Repository activity is aggregated and compressed into a stats summary before being sent to the LLM. No vector DB, no embeddings, no extra subscription. The AI does summarization, not retrieval.
3. Setup Guide
To run this workflow, you need to prepare the following resources:
⚙️ Prerequisites
- n8n Instance: Self-hosted or cloud version.
- GitHub Personal Access Token: Fine-grained with Contents (Read-only) permission, scoped to repositories you want to monitor. Or use a Classic PAT with the
reposcope. - Telegram Bot Token + Chat ID: Create a bot via @BotFather, get the bot token. Get your chat ID by sending a message to the bot then calling
https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates. - OpenRouter API Key: Or any OpenAI-compatible endpoint.
Steps:
- Configure GitHub: Create a Fine-grained PAT with Contents Read-only, scoped to repos you want to monitor. Or Classic PAT with
reposcope. - Create Telegram Bot: Create via @BotFather, get the bot token and your chat ID.
- Get OpenRouter API Key: Sign up at openrouter.ai.
- Add Credentials to n8n: Header Auth (GitHub token) + Telegram Bot API + OpenAI API (OpenRouter).
- Configure Nodes: In “Fetch GitHub Repositories” and “Retrieve GitHub Events” nodes — assign the GitHub Header Auth credential. In “Send Messages to Telegram” and “Send Error Alert” nodes — set your Telegram chat ID. In “OpenAI Report Model” node — assign your OpenRouter credential. In “Telegram Message Trigger” node — assign the Telegram Bot credential.
- Activate: Enable the workflow. Send
/reportto your Telegram bot to test immediately.
⚠️ Cost Warning: The workflow calls the OpenRouter API each time a report is generated (automatically weekly or when a command is sent). Stats are aggregated before being sent to the LLM, so token usage is low. For accounts with hundreds of repositories, the cost per run remains minimal since only counts are sent, not raw event payloads.
4. Customization
- Filter repos: If you have more than 100 repositories, the GitHub User Repos API returns paginated results. Add a Code node between “Fetch GitHub Repositories” and “Retrieve GitHub Events” to handle pagination, or filter to specific repos:
var myRepos = ['owner/repo1', 'owner/repo2'];
items = items.filter(function(item) {
return myRepos.indexOf(item.json.full_name) !== -1;
});
- Change schedule: Edit the cron in “Weekly Digest Trigger”. Daily at 9am = every day, Friday 5pm = every Friday, Twice a week = Monday and Thursday.
- Swap the LLM: Change the model in “OpenAI Report Model” to any OpenRouter-supported model (GPT-4o, Claude, Gemini) or point to a self-hosted model by changing the base URL in the credential.
- Change output channel: Replace “Send Messages to Telegram” with Discord, Slack, Notion, or Email nodes. The report format works across all platforms.
- Add more commands: Edit “Parse Telegram Command” to accept new commands (e.g.,
/releases,/contributors). Add the new command logic in the LLM prompt under a new MODE section. - Single message mode: Remove the
|||splitting logic in “Format Telegram Messages” and concatenate all report parts into one message.
5. What’s Next
This workflow is designed as a foundation. Here is where it can grow:
A. Social Media Auto-post Repurpose the weekly digest into a LinkedIn or Twitter post with a Telegram approval button before publishing.
B. Obsidian Sync Push each report as a Markdown file to your Obsidian vault via Git. Build a searchable second brain of your project history.
C. Unified Weekly Report Aggregate GitHub + Gmail + Google Calendar + WakaTime (coding time) + Notion tasks into a single report. All sources have n8n integrations available.
D. Error Knowledge Base Extract bug patterns from issues, append to a JSON knowledge base. Feed into a RAG chatbot for future Q&A.
E. Multi-channel Delivery Send the same report to Telegram + Email + Discord + Slack simultaneously.
The current version is intentionally simple. Simple means it runs cheap, breaks rarely, and is easy to debug. Complexity can be added when the use case demands it.
6. Requirements
- n8n instance (self-hosted or cloud)
- GitHub Personal Access Token (Fine-grained with Contents Read-only, or Classic with repo scope)
- Telegram Bot token + chat ID
- OpenRouter API key (or any OpenAI-compatible endpoint)
- GitHub account with at least one repository
7. Sample Output
/report — Full Weekly Digest (4 messages)
Message 1/4:
📊 GitHub Weekly Digest
14 May – 21 May 2026
This week recorded 13 activities across 5 repositories:
11 issues opened, no commits, no pull requests. All activity
was concentrated in triage-demo through issue tracking.
🔥 HIGHLIGHTS
• dothanhvinh17 dominated 100% of activity (13/13 actions)
via issue creation in triage-demo
• No commits or releases published this week
⚠️ NEEDS ATTENTION
• 4 repos are stale (0 events): rag-kb, bepchu7-landing,
Kevin-Do-System, dothanhvinh17
• triage-demo has 11 issues and 0 commits — imbalance may
signal unresolved backlog
Message 2/4:
🔹 dothanhvinh17/triage-demo — 0 commits, 11 issues, 0 PRs
All weekly GitHub activity (11 issues) occurred in this repo.
No code changes or pull requests were made, indicating a focus
on issue tracking or backlog creation.
👤 Key Contributor: dothanhvinh17 (11 issues opened)
📈 Trend: needs attention — high issue volume with zero
implementation effort this week
Message 3/4:
🔹 dothanhvinh17/dothanhvinh17 — 0 commits, 0 issues, 0 PRs
No activity recorded. Repo may need maintenance or archival.
🔹 dothanhvinh17/rag-kb — 0 commits, 0 issues, 0 PRs
STALE — Zero activity this week. Consider reviewing
ownership or relevance.
🔹 dothanhvinh17/bepchu7-landing — 0 commits, 0 issues, 0 PRs
STALE — Landing page repo with no recent engagement.
🔹 dothanhvinh17/Kevin-Do-System — 0 commits, 0 issues, 0 PRs
STALE — No activity observed. Likely inactive project.
Message 4/4:
📈 WEEKLY INSIGHTS
• Activity highly concentrated: 100% of actions in 1 repo
• Overall development velocity is 0 — no commits or PRs
• Risk: 4/5 repos show no activity
👥 CONTRIBUTORS
• dothanhvinh17 (13 total actions): Sole contributor,
created 11 issues in triage-demo
🔮 NEXT WEEK PRIORITIES
1. Address backlog in triage-demo — schedule triage session
to convert issues into tasks
2. Review stale repos for archiving or reactivation
3. Restart development velocity: target ≥1 commit or PR
across any repo by end of week
4. Investigate if stale repos are still needed
—
GitHub Activity Digest | Powered by n8n
/issues — Open Issues Report (1 message)
📋 Open Issues Report — 21 May 2026
dothanhvinh17/triage-demo
• Issue #11 Test issue for triage demo — open (0 days)
• Issue #10 Another test issue — open (0 days)
• Issue #9 SQL injection vulnerability — open (5 days) ⚠️
• Issue #8 Consider switching to pnpm — open (5 days) ⚠️
• Issue #7 API auth docs outdated — open (5 days) ⚠️
• Issue #6 Webhook notification question — open (5 days) ⚠️
• Issue #5 CSV export option — open (7 days) ⚠️
• Issue #4 Login 500 error after password reset — open (7 days) ⚠️
• Issue #3 Dark mode not saved — open (7 days) ⚠️
• Issue #2 Dark mode not saved — open (7 days) ⚠️
• Issue #1 Login 500 error after password reset — open (7 days) ⚠️
9 of 11 issues older than 3 days. Recommend prioritizing
issue #9 (SQL injection) as it is a security risk.
—
GitHub Activity Digest | Powered by n8n
/prs — Pull Request Status (1 message)
🔀 Pull Request Status — 21 May 2026
No pull requests this week.
—
GitHub Activity Digest | Powered by n8n
/status — Repository Health Check (1 message)
🩺 Repository Health Check
🟢 dothanhvinh17/triage-demo: Active (11 issues)
🟡 dothanhvinh17/dothanhvinh17: Low activity (0 events)
🔴 dothanhvinh17/rag-kb: Stale (0 events)
🔴 dothanhvinh17/bepchu7-landing: Stale (0 events)
🔴 dothanhvinh17/Kevin-Do-System: Stale (0 events)
Total events this week: 11
Recommendation: Triage issues in triage-demo,
review stale repos for archival.
—
GitHub Activity Digest | Powered by n8n