Upgrade Notifications¶
On startup, api-tester-cli checks GitHub in the background for a newer published release than
the one currently running. When a newer version is available, an upgrade message is shown in two
places:
- The HTML execution report — a banner near the footer, with a link to the latest release.
- The interactive terminal UI — a one-line notice printed after the pass/fail summary at the end of a suite run.
The check is entirely best-effort and never affects the outcome of a run:
- It runs on a background daemon thread started at application startup, so it never delays the shell prompt or a suite run.
- Because the CLI is short-lived, the check may not finish before a single command completes — in that case no message is shown for that run, silently.
- Any failure (no network, GitHub unreachable, unexpected response) is retried a configurable number of times and then abandoned silently — it is never printed to the console and never affects the suite's pass/fail result or process exit code.
Configuration¶
All settings live in application.properties under the apitester.version-check.* prefix:
apitester.version-check.enabled=true
apitester.version-check.url=https://api.github.com/repos/snytkine/api-tester-cli/releases/latest
apitester.version-check.upgrade-page-url=https://github.com/snytkine/api-tester-cli/releases/latest
apitester.version-check.timeout-seconds=10
apitester.version-check.max-retries=3
apitester.version-check.retry-interval-seconds=5
apitester.version-check.upgrade-message=Version {latestVersion} is available.
| Property | Meaning |
|---|---|
enabled |
Set to false to disable the background check entirely (no network call is made). Useful for offline environments, CI, or tests. |
url |
The GitHub Releases API endpoint queried for the latest published release. |
upgrade-page-url |
The human-facing page linked from the upgrade message. |
timeout-seconds |
Per-request timeout for the version-check HTTP call. |
max-retries |
Total number of attempts made before giving up silently. |
retry-interval-seconds |
Seconds to sleep between retry attempts. |
upgrade-message |
Template for the upgrade message; supports the {latestVersion} placeholder. |
Since these are standard Spring Boot configuration properties, any of them can be overridden
without rebuilding the jar — via an OS environment variable (relaxed binding: dots and hyphens
become underscores, e.g. APITESTER_VERSION_CHECK_ENABLED=false) or a JVM system property
(-Dapitester.version-check.enabled=false).
# Disable the check for a single run via an environment variable
APITESTER_VERSION_CHECK_ENABLED=false rs --suite=suite.yml
# Or via a system property
java -Dapitester.version-check.enabled=false -jar target/api-tester-cli-0.0.1-SNAPSHOT.jar run-suite --suite=suite.yml
Version comparison¶
The running version (from the build's version metadata) is compared against the latest GitHub
release tag using numeric major.minor.patch ordering:
- A pre-release suffix on the running version (e.g.
0.4.1-SNAPSHOT) is treated as older than the same numeric published release (0.4.1), so an upgrade notice still appears. - If the running version cannot be determined (reported as
unknown, which happens when the build was not produced through the normal Maven build), the check is skipped. - Malformed or unparseable version strings on either side are treated as "no upgrade available".