You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Gitlab SAST流水线中各分析器生成的报告文件名?

问题1解答:可以修改产物文件名,操作方法如下

你可以通过覆盖GitLab SAST模板内置任务的后置脚本与产物配置实现自定义文件名,有两种实现方案:

方案1:单独指定特定分析器的文件名

直接在你的.gitlab-ci.yml末尾添加如下配置,单独重写bandit和semgrep任务的配置:

bandit-sast:
  after_script:
    - mv gl-sast-report.json gl-bandit-sast-report.json
  artifacts:
    paths:
      - gl-bandit-sast-report.json
    # 若仍需要GitLab原生的安全仪表盘展示结果,保留下方reports配置,否则可以删除
    reports:
      sast: gl-bandit-sast-report.json

semgrep-sast:
  after_script:
    - mv gl-sast-report.json gl-semgrep-sast-report.json
  artifacts:
    paths:
      - gl-semgrep-sast-report.json
    # 同上,需要仪表盘展示则保留
    reports:
      sast: gl-semgrep-sast-report.json

方案2:通用动态命名(适配所有自动识别的SAST分析器)

如果不想逐个配置分析器,可以直接给所有SAST任务加全局后置逻辑,通过内置变量动态生成带任务名的报告,配置如下:

.sast-analyzer:
  after_script:
    - mv gl-sast-report.json gl-${CI_JOB_NAME}-report.json
  artifacts:
    paths:
      - gl-${CI_JOB_NAME}-report.json

这个方案会自动适配所有被触发的SAST分析器,不需要手动逐个声明任务。


问题2解答:不需要手动指定每个分析器,自动识别机制仍然生效

GitLab SAST模板的语言自动识别逻辑独立于任务配置覆盖规则:

  • 只有当前项目符合对应分析器的语言识别规则时,对应的任务才会被注入到流水线中,你提前写的覆盖配置只会对实际触发的任务生效,未触发的任务配置不会产生任何副作用
  • 如果你使用上述通用动态命名方案,完全不需要调整原有自动识别逻辑,新增语言对应的分析器时也不需要修改配置,会自动适配生成对应文件名的产物

内容的提问来源于stack exchange,提问作者Raymond C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:36:04