Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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.
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.