Documentation
¶
Overview ¶
Package version — update-check primitive. Hits the GitHub Releases API for the latest tag and reports whether the local build is older. Cached for 24h in ~/.cache/clawtool/update.json so a `clawtool doctor` (or any other surface that calls CheckForUpdate) doesn't pay a network roundtrip on every invocation.
No background polling, no telemetry — this is a stateless, user-initiated check. The cache exists purely to avoid being rude to the GitHub API.
Package version exposes the clawtool build version.
Index ¶
Constants ¶
const ( Name = "clawtool" Version = "0.9.1" // x-release-please-version )
x-release-please-start-version
const UpdateCheckURL = "https://api.github.com/repos/cogitave/clawtool/releases/latest"
UpdateCheckURL is the GitHub Releases API endpoint we hit. The public API permits ~60 unauthenticated requests/hour per IP; the 24h cache keeps us well under that even on shared CI runners.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type UpdateInfo ¶ added in v0.9.0
type UpdateInfo struct {
// HasUpdate is true when the upstream tag is newer than the
// local build. Defaults to false on any error so we never nag
// the user about a non-confirmed update.
HasUpdate bool
// Latest is the tag string from GitHub (e.g. "v0.10.0"). Empty
// on error.
Latest string
// Current is the local build version (Version package var).
Current string
// FetchedAt is when we last asked GitHub. Surfaced so the user
// knows how stale the answer is. UTC.
FetchedAt time.Time
// Err is non-nil when the check itself failed (network, parse,
// rate-limit). Callers display "could not check" instead of
// pretending no update exists.
Err error
}
UpdateInfo is the result a caller surfaces in the UI.
func CheckForUpdate ¶ added in v0.9.0
func CheckForUpdate(ctx context.Context) UpdateInfo
CheckForUpdate is the entry point. Returns the cached result when fresh; otherwise hits the API, persists, returns. Never blocks longer than the HTTP client's timeout.