Skip to content
Damiano Taverni
IT
← All case studies

Sector: IT automation · Personal project

Automatic monitoring of 76 software packages

Python system that tracks the lifecycle of 76 software packages: centralized status on Google Sheets and automatic Telegram notifications on every new release.

76
Packages
< 1 hour
Notification
0
Manual checks

System architecture: from release sources to the Google Sheet and Telegram notifications

Context

Anyone managing infrastructure needs to know when new versions of the software in use come out: security patches, breaking changes, end of support. Manually checking 76 packages is impractical — the typical outcome is that updates are discovered late, or not at all.

What it does

  • A Python core queries each package’s version sources (release pages, registries, dedicated APIs) every hour on a scheduled run.
  • The status of all packages is centralized on Google Sheets via API: a dashboard readable even by non-technical people, without having to build a web app.
  • When a new version ships, a Telegram notification goes out within the hour, with the package name, previous version and new one.

Technical challenges

Heterogeneous sources. 76 packages mean dozens of different formats: some publish on GitHub Releases, some on an HTML changelog, some on a registry with an API. Each source needs robust parsing, and version comparison has to handle non-uniform versioning schemes (semver, dates, build numbers).

Notification idempotency. The system must notify exactly once per release, even if it gets re-run or restarted: the state persisted between runs is what separates a reliable tool from one that spams or stays silent.

Stack

Python · Google Sheets API · Telegram Bot API · scheduled execution (cron)

Outcome

The system runs on its own: no manual checks, no missed updates. It’s a concrete example of how a small, well-designed automation eliminates an entire repetitive task.

Let's talk about your project

Tell me what you need: I will reply within 1–2 business days with an honest assessment and, if it makes sense, a quote.