From 2198933f6ec85f184fb2c99250895d28dd793163 Mon Sep 17 00:00:00 2001 From: yokowu <18836617@qq.com> Date: Tue, 12 Aug 2025 16:06:03 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dc/c++=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=89=AB=E6=8F=8F=E6=97=A0=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- backend/consts/security.go | 12 +++++++++++- backend/domain/security.go | 8 ++++---- backend/internal/proxy/usecase/proxy.go | 2 +- backend/internal/scanner/handler/http/v1/scanner.go | 4 +--- 5 files changed, 19 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index ab8e379..dd630cf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ backend/assets -backend/docs/swagger.json \ No newline at end of file +backend/docs/swagger.json +backend/assets-amd64 diff --git a/backend/consts/security.go b/backend/consts/security.go index 0f5d520..f2e6b7d 100644 --- a/backend/consts/security.go +++ b/backend/consts/security.go @@ -1,6 +1,9 @@ package consts -import "fmt" +import ( + "fmt" + "strings" +) type SecurityScanningStatus string @@ -50,6 +53,13 @@ const ( SecurityScanningLanguageIaC SecurityScanningLanguage = "IaC" ) +func (s SecurityScanningLanguage) Rule() string { + if s == SecurityScanningLanguageCpp { + return "c" + } + return strings.ToLower(string(s)) +} + func (s SecurityScanningLanguage) RuleName() string { if s == SecurityScanningLanguageIaC { return "基础设施即代码(IaC)扫描" diff --git a/backend/domain/security.go b/backend/domain/security.go index abb0602..36df203 100644 --- a/backend/domain/security.go +++ b/backend/domain/security.go @@ -71,10 +71,10 @@ func (s *SecurityScanningBrief) From(e *db.SecurityScanning) *SecurityScanningBr } type ScanReq struct { - TaskID string `json:"task_id"` - UserID string `json:"user_id"` - Workspace string `json:"workspace"` // 项目目录 - Language consts.SecurityScanningLanguage `json:"language"` // 扫描语言 + TaskID string `json:"task_id"` + UserID string `json:"user_id"` + Workspace string `json:"workspace"` // 项目目录 + Language string `json:"language"` // 扫描语言 } type CreateSecurityScanningReq struct { diff --git a/backend/internal/proxy/usecase/proxy.go b/backend/internal/proxy/usecase/proxy.go index e837341..e6ec6cf 100644 --- a/backend/internal/proxy/usecase/proxy.go +++ b/backend/internal/proxy/usecase/proxy.go @@ -161,7 +161,7 @@ func (p *ProxyUsecase) TaskHandle(ctx context.Context, task *queuerunner.Task[do TaskID: task.ID, UserID: task.Data.UserID, Workspace: rootPath, - Language: task.Data.Language, + Language: task.Data.Language.Rule(), }) if err != nil { diff --git a/backend/internal/scanner/handler/http/v1/scanner.go b/backend/internal/scanner/handler/http/v1/scanner.go index 5352d95..0d32a66 100644 --- a/backend/internal/scanner/handler/http/v1/scanner.go +++ b/backend/internal/scanner/handler/http/v1/scanner.go @@ -4,7 +4,6 @@ import ( "fmt" "log/slog" "net/http" - "strings" "github.com/GoYoko/web" @@ -27,8 +26,7 @@ func NewScannerHandler(w *web.Web, logger *slog.Logger) *ScannerHandler { } func (s *ScannerHandler) Scan(ctx *web.Context, req domain.ScanReq) error { - rule := strings.ToLower(string(req.Language)) - result, err := scan.Scan(req.TaskID, req.Workspace, rule) + result, err := scan.Scan(req.TaskID, req.Workspace, req.Language) if err != nil { s.logger.With("id", req.TaskID).With("error", err).ErrorContext(ctx.Request().Context(), "failed to scan") return fmt.Errorf("failed to scan: %w", err)