Skip to main content

SARIF 报告

概述​

SARIF(静态分析结果交换格式)报告用于 GitHub Actions,以通知通过 lint 工具或代码风格工具发现的问题。本指南解释了我们项目中如何处理 SARIF 报告,以及如何将多个报告合并为一个,以与 GitHub Actions 兼容。

为什么使用 SARIF 报告?​

GitHub Actions 支持 SARIF 报告进行代码扫描,使得在 pull 请求或仓库的安全选项卡中直接识别和解决问题变得更容易。有关 SARIF 的更多信息,请参阅 GitHub 文档。

处理多个 SARIF 报告​

问题​

在我们的项目中,我们使用多个 Gradle 模块。当运行生成 SARIF 报告的任务时,每个模块都会生成自己的报告。然而,GitHub Actions 不再支持在单次工作流运行中处理多个 SARIF 报告。

解决方案​

为了解决这个问题,我们使用一个自定义的 Python 脚本将所有 SARIF 报告合并为一个文件。这确保了与 GitHub Actions 的兼容性。

合并 SARIF 报告的脚本位于 .github/scripts/merge_sarif.py。请按照以下步骤使用它:

  1. 生成 SARIF 报告
  2. 运行 python3 .github/scripts/merge_sarif.py

您将在仓库的根目录下得到一个新的 SARIF 文件。