Documentation
¶
Index ¶
Constants ¶
const ( // DefaultGitHubRepo is the default repository for agnt DefaultGitHubRepo = "standardbeagle/agnt" // GitHubAPIURL is the base URL for GitHub API GitHubAPIURL = "https://api.github.com" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
CurrentVersion string
CheckInterval time.Duration
GitHubRepo string
Enabled bool
}
Config holds configuration for the update checker
func DefaultConfig ¶
func DefaultConfig() Config
DefaultConfig returns default update checker configuration
type GitHubChecker ¶
type GitHubChecker struct {
// contains filtered or unexported fields
}
GitHubChecker checks for updates from GitHub releases
func NewGitHubChecker ¶
func NewGitHubChecker(repo string) *GitHubChecker
NewGitHubChecker creates a new GitHub release checker
func (*GitHubChecker) CheckLatestRelease ¶
func (g *GitHubChecker) CheckLatestRelease() (*GitHubRelease, error)
CheckLatestRelease fetches the latest release from GitHub
type GitHubRelease ¶
type GitHubRelease struct {
TagName string `json:"tag_name"`
Name string `json:"name"`
Draft bool `json:"draft"`
Prerelease bool `json:"prerelease"`
PublishedAt time.Time `json:"published_at"`
HTMLURL string `json:"html_url"`
Body string `json:"body"`
}
GitHubRelease represents a GitHub release
func (*GitHubRelease) GetVersion ¶
func (g *GitHubRelease) GetVersion() string
GetVersion extracts version from release tag Handles tags like "v0.6.5", "V0.6.5", or "0.6.5"
type UpdateChecker ¶
type UpdateChecker struct {
// contains filtered or unexported fields
}
UpdateChecker periodically checks for updates
func NewUpdateChecker ¶
func NewUpdateChecker(config Config) *UpdateChecker
NewUpdateChecker creates a new update checker
func (*UpdateChecker) CheckNow ¶
func (uc *UpdateChecker) CheckNow()
CheckNow triggers an immediate update check
func (*UpdateChecker) GetUpdateInfo ¶
func (uc *UpdateChecker) GetUpdateInfo() UpdateInfo
GetUpdateInfo returns the current update information
func (*UpdateChecker) Start ¶
func (uc *UpdateChecker) Start()
Start begins periodic update checking
func (*UpdateChecker) Stop ¶
func (uc *UpdateChecker) Stop(ctx context.Context)
Stop stops the update checker. The provided context bounds how long Stop will wait for the check loop goroutine to finish. If ctx expires, Stop returns immediately (the goroutine is still cancelled via uc.cancel but may not have exited yet, e.g. if blocked on a network request).
type UpdateInfo ¶
type UpdateInfo struct {
Available bool `json:"available"`
LatestVersion string `json:"latest_version,omitempty"`
CurrentVersion string `json:"current_version"`
ReleaseURL string `json:"release_url,omitempty"`
ReleaseNotes string `json:"release_notes,omitempty"`
LastChecked time.Time `json:"last_checked"`
CheckError string `json:"check_error,omitempty"`
}
UpdateInfo holds information about available updates