A Telegram bot that monitors CNCF and open source repositories for new issues and sends clean, formatted notifications.
- Real-time Monitoring: Checks repositories every 1-4 minutes (configurable)
- Clean Notifications: Beautiful Telegram messages with issue details
- Smart Tracking: Prevents duplicate notifications using SQLite database
- Rate Limit Protection: Built-in GitHub API rate limiting protection
- Batch Processing: Efficiently processes multiple repositories
- Error Handling: Automatic retry and error notifications
Each notification includes:
- 🆕 Issue title
- 👤 Author username
- 📦 Repository name
- 🔗 Direct GitHub link
Set these in your Railway dashboard (no hardcoded secrets in code):
GITHUB_TOKEN=<your_github_personal_access_token> # Optional but recommended
TELEGRAM_BOT_TOKEN=<your_telegram_bot_token>
TELEGRAM_CHAT_ID=<your_chat_id>
CHECK_INTERVAL=180 # 3 minutes (60-240 seconds)
# Optional tuning (defaults shown):
# LOG_LEVEL=INFO
# BATCH_SIZE=3
# BATCH_DELAY=2
# NOTIFICATION_DELAY=1
# API_TIMEOUT=10
# CHECK_BUFFER_MINUTES=2
# DB_PATH=/data/cncf_issues.db # If you mount Railway persistent volumeEdit the repository list in config.py with your 10 repositories:
REPOSITORIES = [
"kubernetes/kubernetes",
"prometheus/prometheus",
# ...
]-
Push to GitHub:
git init git add . git commit -m "Initial commit" git branch -M main git remote add origin https://github.com/yourusername/cncf-issue-bot.git git push -u origin main
-
Deploy on Railway:
- Visit railway.app
- Sign up/login with GitHub
- Click "Deploy from GitHub repo"
- Select your repository
-
Install Railway CLI:
npm install -g @railway/cli
-
Deploy:
railway login railway init railway up
In your Railway dashboard:
- Go to your project → Variables
- Add these environment variables:
GITHUB_TOKEN: Your GitHub personal access tokenTELEGRAM_BOT_TOKEN: 8450859348:AAEprYshWYOz3MEFgXSaE65TooRI8b9YgygTELEGRAM_CHAT_ID: 5757790216CHECK_INTERVAL: 180 (or your preferred interval)
60= 1 minute120= 2 minutes180= 3 minutes (default)240= 4 minutes
Here are some popular CNCF projects you might want to monitor:
kubernetes/kubernetes- Kubernetesprometheus/prometheus- Prometheusetcd-io/etcd- etcdcontainerd/containerd- containerdenvoyproxy/envoy- Envoy Proxyhelm/helm- Helmistio/istio- Istiojaegertracing/jaeger- Jaegerfluent/fluentd- Fluentdgrpc/grpc- gRPClinkerd/linkerd2- Linkerdcilium/cilium- Cilium
- Startup: Bot sends startup notification with repository list
- Monitoring: Checks each repository every configured interval
- Issue Detection: Fetches recent issues using GitHub API
- Deduplication: Uses SQLite database to track seen issues
- Notification: Sends formatted Telegram message for new issues
- Error Handling: Automatic retry and error notifications
- Without GitHub Token: 60 requests/hour per IP
- With GitHub Token: 5,000 requests/hour
- Batch Processing: Processes repositories in groups of 3
- Smart Delays: Built-in delays between API calls
-
Install dependencies:
pip install -r requirements.txt
-
Set environment variables:
export TELEGRAM_BOT_TOKEN="8450859348:AAEprYshWYOz3MEFgXSaE65TooRI8b9Ygyg" export TELEGRAM_CHAT_ID="5757790216" export CHECK_INTERVAL="180"
-
Run the bot:
python cncf_issue_tracker.py
-
Telegram Bot Not Responding:
- Check bot token and chat ID
- Ensure bot is added to your chat
- Verify bot has permission to send messages
-
GitHub API Errors:
- Check rate limits
- Verify repository names are correct
- Ensure repositories are public
-
Bot Not Starting:
- Check environment variables
- Verify Python version (3.7+)
- Check Railway logs
The bot provides detailed logging:
- Startup information
- Repository checking status
- New issue notifications
- Error messages
- Rate limit warnings
- Startup Notification: Sent when bot starts
- Issue Notifications: Real-time for new issues
- Error Notifications: Automatic error reporting
- Activity Logs: Detailed logging in Railway dashboard
Once deployed, you'll receive:
- Startup notification with repository list
- Real-time issue notifications as they're created
- Error notifications if something goes wrong
- 24/7 monitoring of your chosen repositories
The bot will run continuously and automatically restart on failures thanks to Railway's restart policy!