管理非事件问题
与由于在代码或已部署工件中找到的漏洞或 CVE 而可能产生的事件问题不同,非事件问题是由于失败的单元测试,失败的验收测试,失败的分支保护检查,映像签名失败或由于错误的令牌或到期的凭证而未从注册表中拉取映像而产生的。 这些场景不是因为一些漏洞,而是对合规态势的偏差。 因此,只要管道迂到此类场景,就会捕获非事件问题。
collect-evidence
脚本 将捕获问题存储库中的非突发事件问题,并将该问题与收集的证据相连接。 collect-evidence
脚本依赖于 DevSecOps CLI 工具的 cocoa incident process-legacy
命令,该命令可根据当前运行的状态创建问题或关闭现有问题。
公关流程中的非事件问题处理
当遇到偏离合规态势的情况时,证据收集的公关管道可能会造成非事故问题。 要在 PR 管道中启用证据收集,请参阅:PR 管道证据收集
公关流水线对非事件问题的管理与 CI 流水线类似。 唯一的区别在于高压灭菌的逻辑。
PR 管道创建的非事件问题只能由在同一 PR 上运行的 PR 管道自动处置。 公关管道不能自动解决这个问题:
- 该问题由在任何其他 PR 上运行的 PR 管道发现。
- 任何 CI 或 CC 管道都能发现问题。
非事件问题处理
缺省情况下,未向非突发事件问题分配到期日期。 任何管道都可以打开非突发事件问题,在后续运行中,如果不再检测到 incident-tool-subject
组合的问题,那么会自动关闭该问题。 可以在构建,部署或持续监视阶段期间发现问题。
对于在 CI 运行期间发现的非突发事件问题,将使用 evidence_type
和应用程序存储库分支的组合来构造问题标题,以便将分支 master
上发现的单元测试故障与分支 dev
上的单元测试故障分开处理。 对于从 CC 管道中找到的此类问题,将使用类似的组合。 来自 CD 管道的问题具有不同的分组条件,其中证据类型标识,目标环境和管道名称空间的组合用于构造问题的标题。 这种不同的分组条件确保针对类似测试
(如验收测试) 运行的 CD 不会干扰在 CI 和 CC 上发现的问题。 不同的条件还确保为目标环境 prod
找到的问题与在目标环境 staging
上找到的问题分开处理。
根据运行的 current-status
是成功还是失败,cocoa incident process-legacy
命令有两种操作方式:
- 如果
current-status
为failure
,那么此命令将查找来自同一工具的类似标题针对同一主题的未解决问题。 如果该命令发现此类问题,那么它会使用其他注释来更新该问题。 但是,如果找不到与title-tool-subject
匹配的现有问题,那么该命令将创建突发事件,并附加缺省严重性High
,但未设置到期日期。 - 如果
current-status
为success
,那么该命令将查找与title-tool-subject
组合匹配的打开问题,如果找到此类问题,那么将自动关闭该问题。 如果找不到此类问题,那么该问题是 no-op。
下面描述了非事件问题流的生命周期。

下面描述了迂到非事件问题的用户旅程以及 CI 和 PR 管道的解决方案。


目前,非突发事件问题处理处理以下场景:
- 单元测试失败
- 验收测试失败
- 失败的映像签名
- 失败的分支保护检查
- 任何扫描工具故障
- 基础架构故障和中断
- 没有事件解析器的任何工具
