fix(web/api): adapt config secret patch path after #2068

This commit is contained in:
Alix-007 2026-03-29 03:39:13 +08:00
parent 425cdf2b5a
commit 8cf16c75b8
2 changed files with 18 additions and 18 deletions

View file

@ -368,21 +368,21 @@ func applyConfigSecretsFromMap(cfg *config.Config, raw map[string]any) {
} }
if feishu, hasFeishu := asMapField(channels, "feishu"); hasFeishu { if feishu, hasFeishu := asMapField(channels, "feishu"); hasFeishu {
if appSecret, hasAppSecret := getSecretString(feishu, "app_secret"); hasAppSecret { if appSecret, hasAppSecret := getSecretString(feishu, "app_secret"); hasAppSecret {
cfg.Channels.Feishu.SetAppSecret(appSecret) cfg.Channels.Feishu.AppSecret.Set(appSecret)
} }
if encryptKey, hasEncryptKey := getSecretString(feishu, "encrypt_key"); hasEncryptKey { if encryptKey, hasEncryptKey := getSecretString(feishu, "encrypt_key"); hasEncryptKey {
cfg.Channels.Feishu.SetEncryptKey(encryptKey) cfg.Channels.Feishu.EncryptKey.Set(encryptKey)
} }
if verificationToken, hasVerificationToken := getSecretString( if verificationToken, hasVerificationToken := getSecretString(
feishu, feishu,
"verification_token", "verification_token",
); hasVerificationToken { ); hasVerificationToken {
cfg.Channels.Feishu.SetVerificationToken(verificationToken) cfg.Channels.Feishu.VerificationToken.Set(verificationToken)
} }
} }
if discord, hasDiscord := asMapField(channels, "discord"); hasDiscord { if discord, hasDiscord := asMapField(channels, "discord"); hasDiscord {
if token, hasToken := getSecretString(discord, "token"); hasToken { if token, hasToken := getSecretString(discord, "token"); hasToken {
cfg.Channels.Discord.SetToken(token) cfg.Channels.Discord.Token.Set(token)
} }
} }
if weixin, hasWeixin := asMapField(channels, "weixin"); hasWeixin { if weixin, hasWeixin := asMapField(channels, "weixin"); hasWeixin {
@ -392,41 +392,41 @@ func applyConfigSecretsFromMap(cfg *config.Config, raw map[string]any) {
} }
if qq, hasQQ := asMapField(channels, "qq"); hasQQ { if qq, hasQQ := asMapField(channels, "qq"); hasQQ {
if appSecret, hasAppSecret := getSecretString(qq, "app_secret"); hasAppSecret { if appSecret, hasAppSecret := getSecretString(qq, "app_secret"); hasAppSecret {
cfg.Channels.QQ.SetAppSecret(appSecret) cfg.Channels.QQ.AppSecret.Set(appSecret)
} }
} }
if dingtalk, hasDingTalk := asMapField(channels, "dingtalk"); hasDingTalk { if dingtalk, hasDingTalk := asMapField(channels, "dingtalk"); hasDingTalk {
if clientSecret, hasClientSecret := getSecretString(dingtalk, "client_secret"); hasClientSecret { if clientSecret, hasClientSecret := getSecretString(dingtalk, "client_secret"); hasClientSecret {
cfg.Channels.DingTalk.SetClientSecret(clientSecret) cfg.Channels.DingTalk.ClientSecret.Set(clientSecret)
} }
} }
if slack, hasSlack := asMapField(channels, "slack"); hasSlack { if slack, hasSlack := asMapField(channels, "slack"); hasSlack {
if botToken, hasBotToken := getSecretString(slack, "bot_token"); hasBotToken { if botToken, hasBotToken := getSecretString(slack, "bot_token"); hasBotToken {
cfg.Channels.Slack.SetBotToken(botToken) cfg.Channels.Slack.BotToken.Set(botToken)
} }
if appToken, hasAppToken := getSecretString(slack, "app_token"); hasAppToken { if appToken, hasAppToken := getSecretString(slack, "app_token"); hasAppToken {
cfg.Channels.Slack.SetAppToken(appToken) cfg.Channels.Slack.AppToken.Set(appToken)
} }
} }
if matrix, hasMatrix := asMapField(channels, "matrix"); hasMatrix { if matrix, hasMatrix := asMapField(channels, "matrix"); hasMatrix {
if accessToken, hasAccessToken := getSecretString(matrix, "access_token"); hasAccessToken { if accessToken, hasAccessToken := getSecretString(matrix, "access_token"); hasAccessToken {
cfg.Channels.Matrix.SetAccessToken(accessToken) cfg.Channels.Matrix.AccessToken.Set(accessToken)
} }
} }
if line, hasLine := asMapField(channels, "line"); hasLine { if line, hasLine := asMapField(channels, "line"); hasLine {
if channelSecret, hasChannelSecret := getSecretString(line, "channel_secret"); hasChannelSecret { if channelSecret, hasChannelSecret := getSecretString(line, "channel_secret"); hasChannelSecret {
cfg.Channels.LINE.SetChannelSecret(channelSecret) cfg.Channels.LINE.ChannelSecret.Set(channelSecret)
} }
if channelAccessToken, hasChannelAccessToken := getSecretString( if channelAccessToken, hasChannelAccessToken := getSecretString(
line, line,
"channel_access_token", "channel_access_token",
); hasChannelAccessToken { ); hasChannelAccessToken {
cfg.Channels.LINE.SetChannelAccessToken(channelAccessToken) cfg.Channels.LINE.ChannelAccessToken.Set(channelAccessToken)
} }
} }
if onebot, hasOneBot := asMapField(channels, "onebot"); hasOneBot { if onebot, hasOneBot := asMapField(channels, "onebot"); hasOneBot {
if accessToken, hasAccessToken := getSecretString(onebot, "access_token"); hasAccessToken { if accessToken, hasAccessToken := getSecretString(onebot, "access_token"); hasAccessToken {
cfg.Channels.OneBot.SetAccessToken(accessToken) cfg.Channels.OneBot.AccessToken.Set(accessToken)
} }
} }
if wecom, hasWeCom := asMapField(channels, "wecom"); hasWeCom { if wecom, hasWeCom := asMapField(channels, "wecom"); hasWeCom {
@ -441,13 +441,13 @@ func applyConfigSecretsFromMap(cfg *config.Config, raw map[string]any) {
} }
if irc, hasIRC := asMapField(channels, "irc"); hasIRC { if irc, hasIRC := asMapField(channels, "irc"); hasIRC {
if password, hasPassword := getSecretString(irc, "password"); hasPassword { if password, hasPassword := getSecretString(irc, "password"); hasPassword {
cfg.Channels.IRC.SetPassword(password) cfg.Channels.IRC.Password.Set(password)
} }
if nickservPassword, hasNickservPassword := getSecretString(irc, "nickserv_password"); hasNickservPassword { if nickservPassword, hasNickservPassword := getSecretString(irc, "nickserv_password"); hasNickservPassword {
cfg.Channels.IRC.SetNickServPassword(nickservPassword) cfg.Channels.IRC.NickServPassword.Set(nickservPassword)
} }
if saslPassword, hasSASLPassword := getSecretString(irc, "sasl_password"); hasSASLPassword { if saslPassword, hasSASLPassword := getSecretString(irc, "sasl_password"); hasSASLPassword {
cfg.Channels.IRC.SetSASLPassword(saslPassword) cfg.Channels.IRC.SASLPassword.Set(saslPassword)
} }
} }
} }
@ -462,7 +462,7 @@ func applyConfigSecretsFromMap(cfg *config.Config, raw map[string]any) {
} }
if github, hasGithub := asMapField(skills, "github"); hasGithub { if github, hasGithub := asMapField(skills, "github"); hasGithub {
if token, hasToken := getSecretString(github, "token"); hasToken { if token, hasToken := getSecretString(github, "token"); hasToken {
cfg.Tools.Skills.Github.SetToken(token) cfg.Tools.Skills.Github.Token.Set(token)
} }
} }
registries, hasRegistries := asMapField(skills, "registries") registries, hasRegistries := asMapField(skills, "registries")
@ -471,7 +471,7 @@ func applyConfigSecretsFromMap(cfg *config.Config, raw map[string]any) {
} }
if clawHub, hasClawHub := asMapField(registries, "clawhub"); hasClawHub { if clawHub, hasClawHub := asMapField(registries, "clawhub"); hasClawHub {
if authToken, hasAuthToken := getSecretString(clawHub, "auth_token"); hasAuthToken { if authToken, hasAuthToken := getSecretString(clawHub, "auth_token"); hasAuthToken {
cfg.Tools.Skills.Registries.ClawHub.SetAuthToken(authToken) cfg.Tools.Skills.Registries.ClawHub.AuthToken.Set(authToken)
} }
} }
} }

View file

@ -282,7 +282,7 @@ func TestHandlePatchConfig_SavesDiscordTokenFromPayload(t *testing.T) {
if !cfg.Channels.Discord.Enabled { if !cfg.Channels.Discord.Enabled {
t.Fatal("discord should be enabled after PATCH") t.Fatal("discord should be enabled after PATCH")
} }
if got := cfg.Channels.Discord.Token(); got != "discord-test-token" { if got := cfg.Channels.Discord.Token.String(); got != "discord-test-token" {
t.Fatalf("discord token = %q, want %q", got, "discord-test-token") t.Fatalf("discord token = %q, want %q", got, "discord-test-token")
} }
} }