Documentation
¶
Index ¶
- type App
- func (a *App) ExchangeCode(ctx context.Context, code string) (*oauth2.Token, error)
- func (a *App) GetUser(ctx context.Context, token *oauth2.Token) (*User, error)
- func (a *App) Installation(ctx context.Context, installationID int64) (*Installation, error)
- func (a *App) InstallationID(ctx context.Context, userToken *oauth2.Token) (int64, error)
- func (a *App) InstallationToken(ctx context.Context, installationID int64) (string, error)
- func (a *App) Installations(ctx context.Context) ([]Installation, error)
- func (a *App) OAuthURL(state string) string
- func (a *App) RefreshToken(ctx context.Context, token *oauth2.Token) (*oauth2.Token, error)
- func (a *App) UserInstallations(ctx context.Context, userToken *oauth2.Token) ([]Installation, error)
- func (a *App) WebhookSecret() string
- type Installation
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type App ¶
type App struct {
// contains filtered or unexported fields
}
App holds the GitHub App configuration for OAuth and API access.
func NewApp ¶
func NewApp(appID int64, clientID, clientSecret, webhookSecret, callbackURL, privateKeyPath string) (*App, error)
NewApp creates a new GitHub App client. privateKeyPath is the path to the GitHub App's PEM private key file. If empty, the app will work for OAuth but installation token features will be unavailable.
func (*App) ExchangeCode ¶
ExchangeCode exchanges an authorization code for an OAuth2 token.
func (*App) Installation ¶
Installation fetches a single GitHub App installation by ID.
func (*App) InstallationID ¶
InstallationID discovers the GitHub App installation ID for the authenticated user. Uses the user's OAuth token to query their installations and returns the one matching this App's ID.
func (*App) InstallationToken ¶
InstallationToken creates a short-lived installation access token string. This is used by the webhook service to authenticate gRPC calls when no user session exists.
func (*App) Installations ¶
func (a *App) Installations(ctx context.Context) ([]Installation, error)
Installations lists all installations of this GitHub App. Uses the App's private key to authenticate as the app itself (JWT).
func (*App) OAuthURL ¶
OAuthURL returns the GitHub OAuth authorization URL with the given state parameter.
func (*App) RefreshToken ¶
RefreshToken returns a fresh token, refreshing it if expired. GitHub App OAuth tokens have a configurable expiry. This uses the standard oauth2 token source to handle refresh transparently.
func (*App) UserInstallations ¶
func (a *App) UserInstallations(ctx context.Context, userToken *oauth2.Token) ([]Installation, error)
UserInstallations returns all GitHub App installations accessible to the user. Uses the user's OAuth token to query their installations.
func (*App) WebhookSecret ¶
WebhookSecret returns the configured webhook secret for signature validation.