MCPcopy Create free account
hub / github.com/basecamp/hey-cli / refreshLocked

Method refreshLocked

internal/auth/auth.go:233–257  ·  view source on GitHub ↗
(ctx context.Context, creds *Credentials)

Source from the content-addressed store, hash-verified

231}
232
233func (m *Manager) refreshLocked(ctx context.Context, creds *Credentials) error {
234 if creds.RefreshToken == "" {
235 return fmt.Errorf("no refresh token available")
236 }
237
238 tokenEndpoint := creds.TokenEndpoint
239 if tokenEndpoint == "" {
240 tokenEndpoint = m.baseURL + "/oauth/tokens"
241 }
242
243 token, err := refreshOAuthToken(ctx, m.httpClient, tokenEndpoint, creds.RefreshToken, oauthClientID, installID)
244 if err != nil {
245 return fmt.Errorf("token refresh failed: %w", err)
246 }
247
248 creds.AccessToken = token.AccessToken
249 if token.RefreshToken != "" {
250 creds.RefreshToken = token.RefreshToken
251 }
252 if !token.ExpiresAt.IsZero() {
253 creds.ExpiresAt = token.ExpiresAt.Unix()
254 }
255
256 return m.store.Save(m.baseURL, creds)
257}
258
259// GetStore returns the credential store.
260func (m *Manager) GetStore() *Store {

Callers 3

AccessTokenMethod · 0.95
AuthenticateRequestMethod · 0.95
RefreshMethod · 0.95

Calls 2

refreshOAuthTokenFunction · 0.85
SaveMethod · 0.45

Tested by

no test coverage detected