Documentation
¶
Index ¶
- func BuildAuthURL(host, clientID, redirectURI, state, codeChallenge, scopes string) string
- func DefaultScopes() string
- func GenerateCodeChallenge(verifier string) string
- func GenerateCodeVerifier() (string, error)
- func GenerateState() (string, error)
- func GetToken(host string) (string, error)
- func Logout(host string) error
- func LogoutAll() error
- func RefreshOAuthToken(host string) (string, error)
- func ScopesDescription() string
- func Switch(in io.Reader, out io.Writer) (string, error)
- type OAuthTokenResponse
- type Status
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildAuthURL ¶ added in v0.5.0
BuildAuthURL constructs a GitLab OAuth authorization URL.
func DefaultScopes ¶ added in v0.5.0
func DefaultScopes() string
DefaultScopes returns the default OAuth scopes.
func GenerateCodeChallenge ¶ added in v0.5.0
GenerateCodeChallenge creates a PKCE S256 code challenge from a verifier.
func GenerateCodeVerifier ¶ added in v0.5.0
GenerateCodeVerifier creates a PKCE code verifier (43-char base64url string).
func GenerateState ¶ added in v0.5.0
GenerateState creates a random state string for CSRF protection.
func LogoutAll ¶ added in v0.2.0
func LogoutAll() error
LogoutAll removes stored credentials for all hosts.
func RefreshOAuthToken ¶ added in v0.0.14
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.
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.
func ExchangeCode ¶ added in v0.5.0
func ExchangeCode(host, clientID, code, redirectURI, codeVerifier string) (*OAuthTokenResponse, error)
ExchangeCode exchanges an authorization code for an OAuth token.
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 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.