GitLab SAST中NodeJsScan提示无匹配,如何开启项目分析?
GitLab SAST NodeJsScan 无匹配问题解决
问题场景
我在.gitlab-ci.yml中使用官方SAST模板:
sast: stage: test include: - template: Security/SAST.gitlab-ci.yml
流水线运行后,NodeJsScan抛出如下警告:
[WARN] [NodeJsScan] No match in /builds/test/frontend/test-frontend
仓库根目录仅包含package.json,添加src目录后仍提示无匹配,src目录内容如下:
$ cd src/ $ ls App.scss App.test.tsx App.tsx assets components containers environments fonts.scss hooks index.scss index.tsx models react-app-env.d.ts serviceWorker.ts services setupTests.ts testHelpers.ts testsMockData.ts variables.scss viewModels
运行分析命令的日志:
$ /analyzer run [INFO] [NodeJsScan] [2024-01-30T13:11:13Z] ▶ GitLab NodeJsScan analyzer v4.1.8 [INFO] [NodeJsScan] [2024-01-30T13:11:13Z] ▶ Detecting project [WARN] [NodeJsScan] [2024-01-30T13:11:13Z] ▶ No match in builds/test/frontend/test-frontend
请问如何配置才能让NodeJsScan对该项目进行分析?
解决方案
1. 指定NodeJsScan扫描目标目录
NodeJsScan默认扫描仓库根目录,但业务代码都在src下,需通过环境变量NODEJSSCAN_TARGET_DIR指定扫描路径。修改.gitlab-ci.yml如下:
sast: stage: test variables: NODEJSSCAN_TARGET_DIR: "src" include: - template: Security/SAST.gitlab-ci.yml
2. 强制启用NodeJsScan(可选)
如果默认SAST模板未自动触发NodeJsScan,可通过SAST_DEFAULT_ANALYZERS指定优先启用nodejs-scan:
sast: stage: test variables: SAST_DEFAULT_ANALYZERS: "nodejs-scan" NODEJSSCAN_TARGET_DIR: "src" include: - template: Security/SAST.gitlab-ci.yml
3. 验证项目特征
确保package.json包含Node.js项目的基本配置(如scripts、dependencies字段),NodeJsScan会通过这些特征识别项目类型;同时确认src下的.ts/.tsx文件可被扫描(v4.1.8版本已支持TypeScript文件)。
4. 排除无关路径(可选)
如果仓库存在其他干扰扫描的目录,可通过SAST_EXCLUDED_PATHS排除:
sast: stage: test variables: NODEJSSCAN_TARGET_DIR: "src" SAST_EXCLUDED_PATHS: "node_modules,dist" include: - template: Security/SAST.gitlab-ci.yml
内容的提问来源于stack exchange,提问作者user2439278
相关产品推荐
相关产品推荐

