release-radar
A Python service that monitors software release feeds, summarises new releases in Turkish with Gemini and sends them to Telegram.
- Python
- SQLite
- Gemini API
- Telegram Bot API
- Docker
Purpose and Scope
Collects release notes from several software projects into one notification stream. RSS/Atom URLs and source types are configured in config.json. Gemini produces Turkish summaries of new entries, which are sent to Telegram with their source links.
Architecture and Repository Structure
main.py: feed retrieval, release text extraction, summarisation, notifications and the scan loop.db.py: SQLite access and processed entry IDs.config.json: monitored sources and their types.tests: database, helper and scan-cycle tests.Dockerfileanddocker-compose.yml: the long-running service and persistent data directory.
The application owns its scan loop. GitHub Actions runs linting, tests and a Docker build.
Workflow
A scan runs immediately on startup, followed by a configurable interval that defaults to six hours. The first scan of a source records existing entries as a baseline without sending notifications.
Later scans extract new release text, request a Gemini summary and send it to Telegram. Successfully delivered entries are recorded in SQLite; failed summaries or deliveries can be retried in a later cycle.
Technical Decisions
Processed entries use a composite (source, guid) key, allowing history checks to survive restarts through the local database. VS Code releases have a dedicated GitHub Markdown retrieval path; other repositories use standard GitHub Atom feeds.
Network and Telegram requests have retry handling. Long Telegram messages are split into chunks. Database connections are closed after scans, and the waiting loop responds to shutdown signals.
Limits and Validation
Summary accuracy depends on source text and Gemini output. Telegram delivery and the SQLite update are not one atomic operation: interruption after sending can lead to a duplicate notification in the next cycle. Losing the persistent data directory rebuilds the source baseline.
The repository includes pytest tests, Ruff checks and a Docker build job. This review did not send external notifications or run the repository tests.
Sources
Reviewed on 8 September 2026. Reviewed revision (174375b).