github

package
v0.0.0 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2024 License: MIT Imports: 12 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/v64) 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 NewClient

func NewClient(token 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.

Types

type Asset

type Asset struct {
	Name string `json:"name"`                 // Name is the name of the asset.
	URL  string `json:"browser_download_url"` // URL is the browser download URL for the asset.
	Type string `json:"content_type"`         // Type is the content type of the asset.
}

Asset represents a GitHub release asset with its name, download URL, and content type.

func (Asset) HasExtension

func (a Asset) HasExtension(extension string) (bool, error)

HasExtension checks if the asset has the given file extension.

func (Asset) Match

func (a Asset) Match(pattern string) (bool, error)

Match checks if the asset name matches the given pattern.

type Assets

type Assets []Asset

Assets represents a collection of GitHub release assets.

func (Assets) FilterByName

func (as Assets) FilterByName(name string) (assets Assets)

FilterByName returns the assets that match the given name. It compares asset names in a case-insensitive manner.

func (Assets) Match

func (as Assets) Match(requirements match.Requirements) (matches match.Results)

Match checks if the assets match the given requirements. It processes each asset to extract platform and extension information.

type Release

type Release struct {
	Name   string `json:"name"`     // Name is the name of the release.
	Tag    string `json:"tag_name"` // Tag is the tag associated with the release (e.g., version number).
	Assets Assets `json:"assets"`   // Assets is a collection of assets attached to the release.
}

Release represents a GitHub release, containing the release name, tag, and associated assets.

func (*Release) FromRepositoryRelease

func (r *Release) FromRepositoryRelease(release *github.RepositoryRelease) error

FromRepositoryRelease converts a GitHub repository release to a Release object.

type Repository

type Repository struct {
	Owner string // Owner is the owner of the repository (GitHub username or organization).
	Repo  string // Repo is the name of the repository.
	// contains filtered or unexported fields
}

Repository represents a GitHub repository with its owner and name. It contains a GitHub client and context 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) Export

func (g *Repository) Export(release *Release) error

Export retrieves the latest release for the repository and stores its assets in a JSON file.

func (*Repository) GetRelease

func (g *Repository) GetRelease(tag string) (*Release, error)

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

func (*Repository) Languages

func (g *Repository) Languages() ([]string, error)

Languages retrieves the programming languages used in the repository, sorted by usage in descending order.

func (*Repository) LatestRelease

func (g *Repository) LatestRelease() (*Release, error)

LatestRelease retrieves the latest release for the repository.

func (*Repository) LatestReleaseFromExport

func (g *Repository) LatestReleaseFromExport() (*Release, error)

LatestReleaseFromExport retrieves the latest release information from the exported JSON file.

Jump to

Keyboard shortcuts

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