Help us shape the future of Go! Take the 2026 Go Developer Survey

github

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2026 License: AGPL-3.0 Imports: 16 Imported by: 0

Documentation

Overview

Package github is the source adapter for GitHub (R-091): github.com and GitHub Enterprise Server, reached with a GitHub App installation, an OAuth application, a personal access token or a deploy key.

Stateless like every adapter (R-027): an App installation token is minted on every call rather than cached, and an OAuth token refreshed here goes back to core in GitCredential.Rotated for core to store.

Index

Constants

View Source
const (

	// FieldAppPrivateKey is the credential field holding a GitHub App's
	// private key.
	FieldAppPrivateKey = "app_private_key"
)
View Source
const Kind = "github"

Kind is the adapter's kind string.

Variables

This section is empty.

Functions

func Info

func Info() api.KindInfo

Info describes the kind for the console's and the CLI's forms.

Types

type Adapter

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

Adapter is one connection to GitHub.

func New

func New() *Adapter

New returns an unconfigured adapter.

func (*Adapter) BeginAuthorization

func (a *Adapter) BeginAuthorization(ctx context.Context, req api.AuthorizationRequest) (api.Authorization, error)

BeginAuthorization starts a device or browser authorization.

func (*Adapter) Category

func (a *Adapter) Category() api.Category

func (*Adapter) CompleteAuthorization

func (a *Adapter) CompleteAuthorization(ctx context.Context, req api.AuthorizationCompletion) (api.AuthorizationResult, error)

CompleteAuthorization polls the device code or exchanges the browser's code.

func (*Adapter) Configure

func (a *Adapter) Configure(_ context.Context, raw json.RawMessage) error

Configure reads the connection's settings and credentials.

func (*Adapter) Covers

func (a *Adapter) Covers(repoURL string) int

Covers scores the repository by host and owner.

func (*Adapter) GitCredential

func (a *Adapter) GitCredential(ctx context.Context, repoURL string) (api.GitCredential, error)

GitCredential is the installation token, the OAuth token, the personal access token or the deploy key.

func (*Adapter) HealthCheck

func (a *Adapter) HealthCheck(context.Context) error

HealthCheck succeeds once configured. Whether the credential still works is learned at the next clone or listing, which reports it (R-146).

func (*Adapter) Kind

func (a *Adapter) Kind() string

func (*Adapter) ListBranches

func (a *Adapter) ListBranches(ctx context.Context, repoURL string) ([]string, error)

ListBranches lists the repository's branches.

func (*Adapter) ListRepositories

func (a *Adapter) ListRepositories(ctx context.Context, req api.ListRepositoriesRequest) ([]api.Repository, error)

ListRepositories lists what the installation, user or token can read, limited to the connection's owner when it has one.

func (*Adapter) Refresh

func (a *Adapter) Refresh(ctx context.Context) (map[string]secret.Value, error)

Refresh renews an expired OAuth token and returns what to store. Nil for every other method, and for an OAuth token still good.

func (*Adapter) SourceCapabilities

func (a *Adapter) SourceCapabilities() api.SourceCapabilities

Jump to

Keyboard shortcuts

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