e45cd2fb07
The no-side-effects assertion calls `docker network ls` and `docker ps -a` to verify the dry run created nothing. Inside the Gitea Actions job container, those exit non-zero against the host-mounted docker socket — the same act_runner topology issue that already excludes other integration tests from CI (see docs/ci.md). The failure was silently swallowed under the default check=False; the recent style sweep that added check=True surfaced it. Gate the docker-enumerating check on GITEA_ACTIONS so the JSON contract — the more useful part of the test — keeps running on CI. Consolidate the two count helpers into one that surfaces stderr in the failure message instead of raising a context-free CalledProcessError, so the next docker surprise is debuggable. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>