updater

package
v0.7.3 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2025 License: MIT 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()

Stop stops the update checker

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