github

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Mar 18, 2026 License: MIT Imports: 16 Imported by: 0

Documentation

Overview

Package github provides functionality to interact with GitHub repositories, releases, and assets via the GitHub API. It includes utilities for filtering and retrieving release information, assets, and repository metadata.

The main types and functions in this package include:

  • Asset: Represents a GitHub release asset with name, URL, and content type.
  • Assets: A collection of Asset objects with filtering methods.
  • Release: Represents a GitHub release containing a tag, name, and assets.
  • Repository: Represents a GitHub repository, with methods for retrieving releases, assets, and repository details.
  • NewClient: Creates a new GitHub API client.
  • NewRepository: Creates a new Repository instance for accessing repository data.

This package uses the Google GitHub client (github.com/google/go-github/v74) for making API calls and provides additional utilities to handle GitHub data.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FromRepositoryRelease added in v0.1.15

func FromRepositoryRelease(repoRelease *github.RepositoryRelease) (*release.Release, error)

FromRepositoryRelease converts a GitHub repository release to a shared Release object.

func NewClient

func NewClient(token string, baseURL ...string) *github.Client

NewClient creates a new GitHub client. If a token is provided, the client is authenticated using the token. Otherwise, an unauthenticated client is returned. An optional baseURL may be provided to redirect API requests to a custom endpoint (useful for testing with httptest servers).

Types

type Repository

type Repository struct {
	Owner string
	Repo  string
	// contains filtered or unexported fields
}

Repository represents a GitHub repository with its owner and name. It contains a GitHub client for making API calls.

func NewRepository

func NewRepository(owner, repo string, client *github.Client) *Repository

NewRepository creates a new instance of Repository. It requires the repository owner, repository name, and a GitHub client.

func (*Repository) GetRelease

func (r *Repository) GetRelease(ctx context.Context, tag string) (*release.Release, error)

GetRelease retrieves a specific release for the repository based on the provided tag.

func (*Repository) GetReleaseFromWeb added in v0.0.18

func (r *Repository) GetReleaseFromWeb(ctx context.Context, tag string) (*release.Release, error)

GetReleaseFromWeb retrieves a specific release for the repository based on the provided tag.

func (*Repository) GetReleasesByWildcard added in v0.1.1

func (r *Repository) GetReleasesByWildcard(ctx context.Context, pattern string, perPage int) (*release.Release, error)

GetReleasesByWildcard retrieves the latest release matching a wildcard pattern. It returns the highest version that matches the pattern.

func (*Repository) LatestIncludingPreRelease added in v0.0.18

func (r *Repository) LatestIncludingPreRelease(ctx context.Context, perPage int) (*release.Release, error)

LatestIncludingPreRelease retrieves the most recently published release for the repository, including pre-releases. This returns the newest release by published date, regardless of whether it's a regular release or pre-release.

func (*Repository) LatestRelease

func (r *Repository) LatestRelease(ctx context.Context) (*release.Release, error)

LatestRelease retrieves the latest release for the repository.

func (*Repository) LatestVersionFromWebHTML added in v0.0.18

func (r *Repository) LatestVersionFromWebHTML(ctx context.Context) (string, error)

LatestVersionFromWebHTML retrieves the latest release for the repository using the GitHub website instead of the API, avoiding rate limits.

func (*Repository) LatestVersionFromWebJSON added in v0.0.18

func (r *Repository) LatestVersionFromWebJSON(ctx context.Context) (string, error)

LatestVersionFromWebJSON retrieves the latest release for the repository using the GitHub website instead of the API, avoiding rate limits.

type WebReleaseInfo added in v0.0.11

type WebReleaseInfo struct {
	Tag string `json:"tag_name"`
}

WebReleaseInfo stores information about a release fetched from the GitHub web interface.

Jump to

Keyboard shortcuts

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