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

Checkmarx One集成Bitbucket与Bamboo:避免重复代码扫描咨询

Checkmarx One集成Bitbucket+Bamboo避免重复扫描的配置方案

针对你遇到的PR合并后同一提交被三次扫描的问题,可通过以下几种配置方案减少资源浪费,同时满足所有分支扫描、PR触发扫描、结果可见性及PR装饰的需求:

方案一:统一通过Bamboo触发所有扫描(推荐)

将所有扫描逻辑收敛到Bamboo中,关闭Checkmarx侧的Bitbucket触发器,同时通过CLI参数实现PR装饰:

  1. 关闭Checkmarx侧触发器:在Checkmarx One中,针对目标Bitbucket仓库,关闭「推送触发器」和「PR触发器」。
  2. 配置Bamboo构建触发规则:
    • 新增触发规则:监听所有分支的代码推送事件,触发构建扫描。
    • 新增PR触发规则:关联Bitbucket的PR事件,当保护分支的PR创建/更新时,自动触发Bamboo构建。
  3. 修改Bamboo扫描脚本:
    • 利用Bamboo内置变量(如bamboo.repository.pr.id、bamboo.repository.branch.name)识别PR场景。
    • 当为PR构建时,在CLI扫描命令中添加PR专属参数,例如:
      cx one scan create --project "你的项目名" --branch "${bamboo.repository.branch.name}" --pr-id "${bamboo.repository.pr.id}" --pr-target-branch "${bamboo.repository.pr.target.branch}"
      
      该参数会让Checkmarx将扫描标记为PR扫描,自动为Bitbucket PR添加装饰。
  4. 保留Bamboo质量门:维持原有逻辑,扫描失败则终止构建,确保所有有权限的人员在Bamboo中查看结果。

此方案仅保留Bamboo侧的一次扫描,彻底避免重复,同时兼顾PR装饰和结果可见性需求。

方案二:拆分扫描职责,避免重叠触发

保留Checkmarx的PR触发器实现装饰,优化Bamboo和推送触发器的逻辑:

  1. 调整Checkmarx触发器:保留「PR触发器」(仅针对保护分支),关闭「推送触发器」,避免合并提交触发额外扫描。
  2. 优化Bamboo扫描逻辑:
    • PR构建场景:通过Bamboo变量识别PR触发的构建,跳过CLI扫描,改用Checkmarx CLI拉取已完成的PR扫描结果,作为质量门判断依据:
      # 示例:获取PR扫描结果并判断是否通过
      cx one scan list --project "你的项目名" --pr-id "${bamboo.repository.pr.id}" --output json | jq '.scans[0].status'
      
    • 普通分支构建场景:正常执行CLI扫描。
    • 合并后构建场景:若PR已完成扫描,可直接跳过Bamboo扫描(若合规要求必须扫描合并提交,可保留但需确认必要性)。
  3. 同步扫描结果到Bamboo:配置Checkmarx Webhook,将PR扫描结果推送至Bamboo,触发质量门检查,确保结果在Bamboo中可见。

方案三:利用重复扫描检测功能

借助Checkmarx的内置能力,自动跳过已扫描的提交:

  1. Checkmarx触发器配置:在Bitbucket触发器的「重复扫描处理」选项中,勾选「如果提交已被扫描,则跳过」。
  2. Bamboo脚本优化:在CLI扫描命令中添加--skip-if-scanned参数(需确认当前Checkmarx CLI版本支持),当检测到该提交已有成功扫描记录时,自动跳过本次扫描。

注意细节

  • 若采用fast-forward合并,合并提交与PR HEAD提交一致,可安全跳过合并后的扫描;若为squash/rebase合并,合并提交为新节点,需根据合规要求决定是否扫描。
  • Bamboo中识别PR构建的变量需根据版本调整,部分版本可能使用bamboo.pullrequest.id等变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 02:52:42