后端与全仓代码质量清理(golangci 扩展集 · 测试质量 · 并发安全 · 文档同步)

代码质量全量清理,零行为变化:golangci 扩展集 13 类 linter(gosec/modernize/perfsprint/canonicalheader/usestdlibvars/wastedassign/intrange/errorlint/forcetypeassert/recvcheck/exhaustive/unparam)全量修复,测试代码质量(testifylint/thelper/usetesting)25→0,frpc 进程生命周期真 bug(进程组击杀)、全仓 go test -race 6 类数据竞争(含 1 个生产竞争)、SPDX license 头补齐 131 文件、前端测试套件 next-intl 迁移后 44 失败→全绿、过期 swagger 文档重新生成、pnpm-workspace 构建审批。

Experiments: #2-#17, #18, #20, #21, #23
Metric: total_issues 108 → 8 (-92.6%)
This commit is contained in:
ryan
2026-08-16 21:23:37 +08:00
parent 5a8722ff07
commit 2f60329886
292 changed files with 1362 additions and 793 deletions
+11 -16
View File
@@ -5,6 +5,7 @@ package uptimekuma
import (
"context"
"errors"
"fmt"
"log/slog"
"strings"
@@ -32,7 +33,7 @@ type kumaConfig struct {
}
// loadKumaConfig 从 SystemConfig 加载 UptimeKuma 配置
func loadKumaConfig(ctx context.Context) (*kumaConfig, error) {
func loadKumaConfig(ctx context.Context) *kumaConfig {
url, _ := repository.GetSystemConfigByKey(ctx, model.ConfigKeyUptimeKumaURL)
username, _ := repository.GetSystemConfigByKey(ctx, model.ConfigKeyUptimeKumaUsername)
password, _ := repository.GetSystemConfigByKey(ctx, model.ConfigKeyUptimeKumaPassword)
@@ -67,7 +68,7 @@ func loadKumaConfig(ctx context.Context) (*kumaConfig, error) {
Retry: retry,
RetryInterval: retryInterval,
Timeout: timeout,
}, nil
}
}
// SyncToUptimeKuma synchronizes enabled proxy routes to Uptime Kuma monitors.
@@ -75,19 +76,16 @@ func SyncToUptimeKuma(ctx context.Context) error {
// 检查是否启用
enabled, _ := repository.GetBoolByKey(ctx, model.ConfigKeyUptimeKumaEnabled)
if !enabled {
return fmt.Errorf("uptime Kuma integration is disabled")
return errors.New("uptime Kuma integration is disabled")
}
if !isSyncing.CompareAndSwap(false, true) {
return fmt.Errorf("sync task is already in progress, please try again later")
return errors.New("sync task is already in progress, please try again later")
}
defer isSyncing.Store(false)
// 加载配置
config, err := loadKumaConfig(ctx)
if err != nil {
return err
}
config := loadKumaConfig(ctx)
// 验证配置
if err := validateKumaConfig(config); err != nil {
@@ -105,10 +103,7 @@ func SyncToUptimeKuma(ctx context.Context) error {
return fmt.Errorf("failed to list local proxy routes: %w", err)
}
expectedRoutes, err := filterExpectedRoutes(allRoutes, config)
if err != nil {
return err
}
expectedRoutes := filterExpectedRoutes(allRoutes, config)
client, err := connectAndLoginUptimeKuma(config.URL, config.Username, config.Password)
if err != nil {
@@ -128,7 +123,7 @@ func SyncToUptimeKuma(ctx context.Context) error {
return nil
}
func filterExpectedRoutes(allRoutes []*model.ProxyRoute, config *kumaConfig) ([]*model.ProxyRoute, error) {
func filterExpectedRoutes(allRoutes []*model.ProxyRoute, config *kumaConfig) []*model.ProxyRoute {
scope := config.MonitorScope
if scope == "selected" {
selectedList := strings.Split(config.SelectedSites, ",")
@@ -145,7 +140,7 @@ func filterExpectedRoutes(allRoutes []*model.ProxyRoute, config *kumaConfig) ([]
expectedRoutes = append(expectedRoutes, route)
}
}
return expectedRoutes, nil
return expectedRoutes
}
var expectedRoutes []*model.ProxyRoute
@@ -154,7 +149,7 @@ func filterExpectedRoutes(allRoutes []*model.ProxyRoute, config *kumaConfig) ([]
expectedRoutes = append(expectedRoutes, route)
}
}
return expectedRoutes, nil
return expectedRoutes
}
func ensureOpenFlareTag(client *SocketIOClient) (int, error) {
@@ -225,7 +220,7 @@ func filterOpenFlareMonitors(monitors map[string]Monitor, openFlareTagID int) ma
func routeMonitorURL(ctx context.Context, route *model.ProxyRoute) (string, error) {
if route == nil {
return "", fmt.Errorf("proxy route is nil")
return "", errors.New("proxy route is nil")
}
domains, err := repository.ListZoneDomainsByRouteID(ctx, route.ID)
if err != nil {