updater

package
v0.13.21 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
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"

func (*GitHubRelease) IsNewer

func (g *GitHubRelease) IsNewer(currentVersion string) (bool, error)

IsNewer checks if this release is newer than the given version

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL