Add a static UID/GID 911 user (matching the socket-proxy/adguard-cidre
convention) and drop to it before running main.py. No PUID/PGID env var
or entrypoint chown logic needed here, unlike adguard-cidre — this
container has no volume mount and writes nothing to disk.
Brings app/notifier.py from 73% to 100% test coverage by exercising the
three notification functions' TEST_MODE early-return, non-204 response,
and requests exception branches — the exact paths a requests upgrade
regression would break silently.
Bring nvidia-stock-bot up to the same CI/CD maturity as adguard-cidre:
pytest suite (19 tests), multi-stage Dockerfile with a dedicated test
stage, pinned requests dependency, Gitea Actions workflow (build, smoke
test, unit tests, deprecation check, Trivy critical/high scan, version
bump + registry publish + release), and a Renovate config for automated
dependency updates.