github

package
v0.1.33 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// ErrNoMatchingTaggedVersion indicates the client repo does not currently have an
	// eligible tag for the configured cluster. Callers may treat this as a soft skip.
	ErrNoMatchingTaggedVersion = errors.New("no matching tagged version available")
)

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client represents a GitHub API client

func NewClient

func NewClient(opts Options) (c *Client, err error)

NewClient creates a new GitHub client

func (*Client) GetLatestClientVersion

func (c *Client) GetLatestClientVersion() (latestVersion *version.Version, err error)

GetLatestClientVersion gets the latest version from GitHub releases that match the given notes regex for the cluster and client

func (*Client) GetRepoURL added in v0.1.9

func (c *Client) GetRepoURL() string

func (*Client) HasTaggedVersion added in v0.1.9

func (c *Client) HasTaggedVersion(testVersion *version.Version) (hasTaggedVersion bool, err error)

HasTaggedVersion checks if a tagged version exists in the client repo

func (*Client) NormalizeToTagVersion added in v0.1.14

func (c *Client) NormalizeToTagVersion(v *version.Version) *version.Version

NormalizeToTagVersion translates the running version reported by the validator RPC into its equivalent git tag version from the cached release list. This is necessary because several clients append a client-specific suffix to their git tags that the RPC does not include, or encode the version differently from the tag.

Jito-Solana:

  • RPC reports: 4.0.0-beta.2
  • Git tag: v4.0.0-beta.2-jito (or v3.1.10-jito.1)
  • Strategy: strip -jito[.N] from each cached tag and compare to the running version

Agave:

  • RPC reports: 2.2.8-beta.1
  • Git tag: v2.2.8-beta.1 (no suffix — already matches)
  • Strategy: direct equality match against cached tags

Firedancer:

  • RPC may report: 0.902.0-beta.40002 or 0.33670.40002
  • Git tag: v0.902.40002
  • Strategy 1: match by feature-set (PATCH > 0), e.g. 0.33670.40002 → v0.902.40002
  • Strategy 2: match by MAJOR.MINOR when PATCH is 0, e.g. 0.902.0 → v0.902.40002

If no match is found the running version is returned unchanged as a safe fallback.

func (*Client) ResolveFiredancerSFDPCompliantVersion added in v0.1.28

func (c *Client) ResolveFiredancerSFDPCompliantVersion(targetVersion *version.Version, minVersion *version.Version, hasMinVersion bool, maxVersion *version.Version, hasMaxVersion bool) (*version.Version, error)

ResolveFiredancerSFDPCompliantVersion maps SFDP Firedancer requirements to actual Firedancer repo tags. Legacy Frankendancer tags encode Agave compatibility in v0.xxx.yyyyy, while native Firedancer v1+ tags do not. SFDP may still publish legacy compatibility-shaped versions like 0.101.0-beta.40101, whose repo tag equivalent is v0.1001.40101.

func (*Client) TagNameForVersion added in v0.1.18

func (c *Client) TagNameForVersion(v *version.Version) string

type ClientRepoConfig

type ClientRepoConfig struct {
	URL                 string
	ReleaseNotesRegexes map[string]string
	ReleaseTitleRegexes map[string]string
	TagRegexes          map[string]string
}

ClientRepoConfig represents the configuration for a client source repository

type Options

type Options struct {
	Cluster string
	Client  string
}

Options represents the options for creating a new GitHub client

Jump to

Keyboard shortcuts

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