有没有办法防止 Jenkins 从构建摘要中剥离样式元素?

Haz*_*zok 6 css jenkins

我们最近将 Jenkins 核心版本升级到 2.222.1。我们的工作利用 Jenkins 脚本化管道。在管道中,我们发布了一个构建摘要(即来自 Badge 插件的 createSummary 步骤),它汇总了我们执行的任务的状态。

使用新版本的 Jenkins 和插件,构建摘要不再正确显示。我已经尝试禁用内容安全策略的标头,行为没有变化。

在检查构建摘要的元素时,我注意到<style>...</style>我们使用一些自定义 css 的部分不再存在。在升级之前,构建摘要包含此样式部分,没有任何问题。

我尝试将样式部分中的内容从 Simple Theme Plugin 移至“Extra CSS”,并且 css 现在显示在页面中。然而,这让我意识到 Jenkins 现在正在从文本中包含class的所有div元素中剥离属性createSummary

我知道有可以利用的 HTML 发布者插件,但在我们的用例中,在构建摘要而不是链接的 HTML 报告中执行此操作非常方便,因为我们显示的确实是摘要。

Badge 插件没有版本升级,这使得更改似乎更可能来自 Jenkins 核心升级。由于这只是 Jenkins 的小版本升级,我希望有一个设置可以使这项工作正常工作,以便它可以向后兼容我们现有的管道。

Jenkins 发生了什么变化导致<style>元素和class属性被剥离了createSummary步骤?

有没有办法在 Jenkins 中禁用此行为,以便我们不必对现有管道进行重大更改?

Haz*_*zok 4

答案非常简单:通过选中如下所示的框,禁用全局配置中 Badge Plugin 部分的 OWASP Markup Formatter 插件:

在此输入图像描述

对于用户不受信任的多租户实例,可能不建议这样做。我们的实例是一个私有实例,我们可以控制所有作业和内容,因此对于我们的用例来说是有意义的。