Added
/changelog <container> — link-only with honest explanation
Closes #14. Three-tier fallback based on the container's OCI labels:
org.opencontainers.image.sourcepresent → sends the upstream source repo URL with a one-line explanation pointing at/releasesand/blob/main/CHANGELOG.md- Only
org.opencontainers.image.urlpresent → sends the product page (likely contains release notes somewhere) - No label → registry-overview-URL heuristic (Docker Hub, ghcr.io, quay.io, lscr.io / fleet.linuxserver.io)
Why no parsing
Empirically tested against 15 real containers in active use: hit rate for fetchable + parseable upstream CHANGELOG was ~33 %. The remaining 67 % would have produced "no changelog available" responses — a confusing UX worse than no feature at all. So we ship the honest link instead. Users decide where to go from there; common projects have either a CHANGELOG.md at the repo root or a /releases section, both easy to find from the link.
Internal — Single source of truth for commands
Module-level _BOT_COMMANDS table at the top of telegram_bot.py now drives both:
- The Telegram
setMyCommandsregistration (the/autocomplete picker) - The
/helpoutput
Adding a new command is one line in the table; both consumers update in lockstep. Eliminates the previous three-place drift risk (handler + manual /help list + manual picker list).
/help is now derived: iterates _BOT_COMMANDS and dedup's by shared i18n key. Visible result is identical to v1.18.2; the code is ~30 lines shorter.
docker pull amayer1983/docksentry:latest
docker compose up -d