No description
Find a file
Jeena 67a9509eaa feat: Add PeerTube & PieFed auto-update, improve classifier
Add auto-update scripts and review examples for PeerTube and PieFed,
bringing total auto-updating services to three.

The classifier now includes the current and target version in the
prompt so it can correctly evaluate conditional upgrade notes like
"follow v8.1.0 instructions if upgrading from <= v8.0.2". Without
this context the model would conservatively flag patch releases as
manual.

All auto-update wrappers now use `bash -euo pipefail` when calling
remote scripts so failures in upstream deploy/upgrade scripts
propagate correctly instead of silently succeeding.

test_classifier.py now accepts a service name argument and derives
realistic version numbers from the release notes for testing.
2026-04-12 23:13:26 +00:00
services feat: Add PeerTube & PieFed auto-update, improve classifier 2026-04-12 23:13:26 +00:00
systemd feat: Add AI-driven auto-update & restructure into package 2026-04-09 12:49:57 +00:00
tests feat: Add AI-driven auto-update & restructure into package 2026-04-09 12:49:57 +00:00
update_monitor feat: Add PeerTube & PieFed auto-update, improve classifier 2026-04-12 23:13:26 +00:00
.env.sample feat: Add AI-driven auto-update & restructure into package 2026-04-09 12:49:57 +00:00
.gitignore chore: Ignore all egg-info directories in .gitignore 2026-03-19 04:20:30 +00:00
AGENTS.md feat: Add update checker tooling 2026-03-12 12:50:08 +00:00
BACKLOG.md feat: Add Uptime Kuma version check via Socket.IO 2026-03-19 04:17:18 +00:00
pyproject.toml feat: Add Uptime Kuma version check via Socket.IO 2026-03-19 04:17:18 +00:00
README.md feat: Add Uptime Kuma version check via Socket.IO 2026-03-19 04:17:18 +00:00
test_classifier.py feat: Add PeerTube & PieFed auto-update, improve classifier 2026-04-12 23:13:26 +00:00

service-update-alerts

Small Python script to compare running service versions against upstream releases.

Requirements

  • Python 3.10+

Setup

Create and activate a virtual environment, then install dependencies:

python -m venv .venv
source .venv/bin/activate
pip install -e .[dev]

Copy .env.sample to .env and fill required values. Export the variables before running the script:

export PAPERLESS_API_TOKEN=...
export FRESHRSS_USERNAME=...
export FRESHRSS_PASSWORD=...
export MATRIX_HOMESERVER=...
export MATRIX_ROOM_ID=...
export MATRIX_ACCESS_TOKEN=...
export UPTIME_KUMA_PUSH_URL=...
export UPTIME_KUMA_USERNAME=...
export UPTIME_KUMA_PASSWORD=...

The script also reads .env automatically if present.

The Matrix bot will attempt to join the configured room automatically if it is not already a member.

Usage

python3 check_updates.py --config services.yaml
python3 check_updates.py --config services.yaml --all

Tests

python -m pytest

To run live integration checks against the real services:

RUN_LIVE_TESTS=1 python -m pytest tests/test_live_services.py

Systemd (user)

Copy the unit files and enable the timer:

mkdir -p ~/.config/systemd/user
cp systemd/service-update-alerts.service ~/.config/systemd/user/
cp systemd/service-update-alerts.timer ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now service-update-alerts.timer

View logs:

journalctl --user -u service-update-alerts.service