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

如何将Mend CLI生成的Docker镜像扫描报告发布至Mend及PR集成?

一、将Docker镜像扫描结果发布至Mend平台

你当前的Mend CLI命令仅生成了SARIF文件,但默认情况下mend image命令会自动将扫描结果上传至Mend平台——你需要补充项目关联参数,确保结果归属到Mend中对应的项目:

  1. 在Mend平台配置项目:
    登录Mend控制台,创建或找到对应项目,记录项目的项目Key(可在项目设置页面查看)。

  2. 修改GitHub工作流中的扫描命令:
    在Download Mend CLI & Run a Scan步骤的mend image命令中添加--project-key参数,关联到你的Mend项目,示例如下:

    /tmp/mend image ${{ env.REGISTRY }}/${{ inputs.image_name }}:${{ inputs.tag }} \
      --format sarif --filename results.sarif --local-pull \
      --project-key "YOUR_MEND_PROJECT_KEY"
    

    若你更习惯用项目名称,可替换为--project-name "你的项目名称"。
    该命令会同时完成两项操作:生成SARIF文件供GitHub Advanced Security使用,以及将扫描结果上传至Mend平台的关联项目。

  3. 验证上传结果:
    执行工作流后,登录Mend控制台进入对应项目,即可查看Docker镜像的扫描报告、漏洞详情等内容。

二、在Pull Request中添加扫描结果评论

Mend没有提供和Checkmarx One完全一致的开箱即用Action,但你可以通过自定义步骤结合GitHub CLI实现PR评论功能,步骤如下:

在Upload sarif步骤之后新增以下步骤:

- name: Install dependencies for PR comment
  run: |
    apt-get update && apt-get install -y jq gh

- name: Add Mend Scan Results to PR
  if: github.event_name == 'pull_request'
  run: |
    # 获取扫描结果JSON并提取关键漏洞数据
    SCAN_JSON=$(/tmp/mend image ${{ env.REGISTRY }}/${{ inputs.image_name }}:${{ inputs.tag }} --local-pull --format json)
    CRITICAL_VULNS=$(echo "$SCAN_JSON" | jq '[.vulnerabilities[] | select(.severity == "Critical")] | length')
    HIGH_VULNS=$(echo "$SCAN_JSON" | jq '[.vulnerabilities[] | select(.severity == "High")] | length')
    MEDIUM_VULNS=$(echo "$SCAN_JSON" | jq '[.vulnerabilities[] | select(.severity == "Medium")] | length')

    # 构造PR评论内容
    COMMENT_BODY="### Mend Docker镜像扫描结果\n"
    COMMENT_BODY+="- 严重漏洞(Critical): $CRITICAL_VULNS\n"
    COMMENT_BODY+="- 高危漏洞(High): $HIGH_VULNS\n"
    COMMENT_BODY+="- 中危漏洞(Medium): $MEDIUM_VULNS\n"
    COMMENT_BODY+="完整报告可在Mend控制台对应项目中查看。"

    # 发布评论到当前PR
    gh pr comment ${{ github.event.pull_request.number }} --body "$COMMENT_BODY"
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

说明:

  • 该步骤仅在触发事件为Pull Request时执行(通过if条件控制)。
  • 依赖jq解析JSON扫描结果、gh(GitHub CLI)发布评论,自托管runner需确保支持安装这两个工具(可提前预装)。
  • 你可根据需求调整评论内容,比如添加低危漏洞数量、特定漏洞详情等。

内容的提问来源于stack exchange,提问作者carlspring

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:34:59