release: prepare v0.1.134

This commit is contained in:
kone
2026-05-16 15:31:08 +08:00
parent 89080b4c5a
commit 4a06371bba
22 changed files with 793 additions and 16 deletions
+18
View File
@@ -424,6 +424,24 @@ func ParseImportedToken(tokenJSON string, deviceRegistrationJSON string) (*Token
return &token, nil
}
func ParseImportedRefreshToken(tokenJSON string) (*TokenData, bool, error) {
var token TokenData
if err := json.Unmarshal([]byte(tokenJSON), &token); err != nil {
return nil, false, fmt.Errorf("failed to parse kiro token: %w", err)
}
token.AuthMethod = strings.ToLower(strings.TrimSpace(token.AuthMethod))
if token.AuthMethod == "" {
token.AuthMethod = "social"
}
if token.Provider == "" && token.AuthMethod == "social" {
token.Provider = string(SocialProviderGoogle)
}
if strings.TrimSpace(token.RefreshToken) == "" || strings.TrimSpace(token.AccessToken) != "" {
return &token, false, nil
}
return &token, true, nil
}
func getOIDCEndpoint(region string) string {
if strings.TrimSpace(oidcEndpointOverride) != "" {
return strings.TrimRight(strings.TrimSpace(oidcEndpointOverride), "/")
+32
View File
@@ -54,3 +54,35 @@ func TestSessionStoreSetPrunesExpiredSessions(t *testing.T) {
t.Fatalf("fresh session should remain after pruning")
}
}
func TestParseImportedRefreshTokenAcceptsRefreshTokenOnlyPayload(t *testing.T) {
token, refreshOnly, err := ParseImportedRefreshToken(`{"refreshToken":"rt","provider":"Google"}`)
if err != nil {
t.Fatalf("ParseImportedRefreshToken() error = %v", err)
}
if !refreshOnly {
t.Fatalf("refreshOnly = false, want true")
}
if token.RefreshToken != "rt" {
t.Fatalf("refresh token = %q, want rt", token.RefreshToken)
}
if token.Provider != "Google" {
t.Fatalf("provider = %q, want Google", token.Provider)
}
if token.AuthMethod != "social" {
t.Fatalf("auth method = %q, want social", token.AuthMethod)
}
}
func TestParseImportedRefreshTokenKeepsFullTokenAsNonRefreshOnly(t *testing.T) {
token, refreshOnly, err := ParseImportedRefreshToken(`{"accessToken":"at","refreshToken":"rt"}`)
if err != nil {
t.Fatalf("ParseImportedRefreshToken() error = %v", err)
}
if refreshOnly {
t.Fatalf("refreshOnly = true, want false")
}
if token.Provider != "Google" {
t.Fatalf("provider = %q, want default Google", token.Provider)
}
}