auth

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetToken

func GetToken(host string) (string, error)

GetToken retrieves the token for a specific host.

func Logout

func Logout(host string) error

Logout removes stored credentials for a host.

func LogoutAll added in v0.2.0

func LogoutAll() error

LogoutAll removes stored credentials for all hosts.

func RefreshOAuthToken added in v0.0.14

func RefreshOAuthToken(host string) (string, error)

RefreshOAuthToken refreshes an expired OAuth access token using the stored refresh token. On success it updates the token, refresh token, and expiry in hosts.json and returns the new access token.

func ScopesDescription added in v0.0.2

func ScopesDescription() string

ScopesDescription returns a human-readable description of the required scopes.

func Switch added in v0.2.0

func Switch(in io.Reader, out io.Writer) (string, error)

Switch allows the user to switch the active GitLab instance. It presents a list of authenticated hosts and updates the default_host config.

Types

type OAuthTokenResponse added in v0.0.2

type OAuthTokenResponse struct {
	AccessToken  string `json:"access_token"`
	TokenType    string `json:"token_type"`
	ExpiresIn    int    `json:"expires_in"`
	RefreshToken string `json:"refresh_token"`
	Scope        string `json:"scope"`
	CreatedAt    int64  `json:"created_at"`
}

OAuthTokenResponse represents the response from GitLab's OAuth token endpoint.

type Status

type Status struct {
	Host           string
	User           string
	Token          string
	Source         string
	GitLabVersion  string
	AuthMethod     string // "pat", "oauth", or ""
	TokenExpiresAt int64  // Unix timestamp; 0 if not set
	Scopes         string // OAuth scopes; empty for PAT
	Active         bool
	HasError       bool
	Error          string
}

Status represents the authentication status for a host.

func GetStatus

func GetStatus() ([]Status, error)

GetStatus returns the authentication status for all configured hosts.

func Login

func Login(host, token string, stdin io.Reader) (*Status, error)

Login authenticates the user with a GitLab instance.

func OAuthFlow added in v0.0.2

func OAuthFlow(host, clientID, redirectURI, scopes string, out io.Writer, openBrowser func(string) error) (*Status, error)

OAuthFlow performs the OAuth2 Authorization Code flow with PKCE. openBrowser is called with the authorization URL; pass nil to skip auto-open. If redirectURI is empty, http://localhost:7171/auth/redirect is used. If scopes is empty, defaultScopes is used.

Jump to

Keyboard shortcuts

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