关于拉取请求上的 代� �扫描 结果
在仓库中,如果 代� �扫描 被配置为拉取请求检查,则 代� �扫描 将检查拉取请求中的代� �。 默认情况下,这仅限于针对默认分支的拉取请求,但是您可以在 GitHub Actions 或第三方 CI/CD 系统中更改此配置。 如果合并分支给目� �分支带来新的 代� �扫描 警报,这些警报将在拉取请求中被报告为检查结果。 警报还将在拉取请求的 Files changed(文件已更改)选项卡中显示为注释。 如果您拥有仓库的写入权限,您可以在 Security(安全)选项卡中查看任何现有的 代� �扫描 警报。 有关仓库警报的更多信息,请参阅“管理仓库的 代� �扫描 警报”。
如果拉取请求针对使用 代� �扫描 的受保护分支,并且存储库所有者已配置所需的状态检查,则“代� �扫描 结果”检查必须先通过,然后才能合并拉取请求。 更多信息请参阅“关于受保护分支”。
关于 代� �扫描 作为拉取请求检查
有许多选项可将 代� �扫描 配置为拉取请求检查,� 此每个仓库的确切设置会有所不同,有些仓库还会有多个检查。
代� �扫描 结果检查
对于 代� �扫描 的所有配置,包含 代� �扫描 结果的检查为:代� �扫描 结果。 所使用的每个分析工具的结果将单独显示。 由拉取请求中的更改引起的任何新警报都显示为注释。
代� �扫描 结果检查失败
如果 代� �扫描 结果检查发现严重性为错误
检查将失败并在检查结果中报告错误。 如果 代� �扫描 发现的所有结果的严重性都较低,则警报将被视为警告或通知,检查成功。
其他 代� �扫描 检查
� �据您的配置,您可能会看到在配置了 代� �扫描 的拉取请求上运行其他检查。 这些通常是分析代� �或上� 代� �扫描 结果的工作流程。 当分析出现问题时,这些检查对于故障排除非常有用。
例如,如果仓库使用 CodeQL 分析工作流程,则在结果检查运行之前,将针对每种语言运行 CodeQL / Analyze (LANGUAGE) 检查。 如果存在配置问题,或者拉取请求中断了分析需要编译的语言(例如 C/C ++、C# 或 Java)的构建,则分析检查可能会失败。
与其他拉取请求检查一� �,您可以在 Checks(检查)选项卡上查看检查失败的完整细节。 有关配置和故障排除的详细信息,请参阅“配置 代� �扫描”或“排查 CodeQL 工作流程故障”。
查看拉取请求上的警报
您可以通过显示 Files changed(已更改的文件)选项卡来查看拉取请求中引入的任何 代� �扫描 警报。 每个警报都显示为触发警报的代� �行上的注释。 警报的严重性显示在注释中。
如果您拥有仓库的写入权限,则某些注释将包含警报额外上下文的链接。 在上例中,您可以在 CodeQL 分析中单击 user-provided value(用户提供的值),以查看不受信任的数据进入数据流的位置(这被称为源)。 在此例中,您还可以通过单击 Show paths(显示路径)来查看从源到使用数据的代� �(� )的完整路径。 这� �就很容易检查数据是否不受信任,或者分析是否� 法识别源与� 之间的数据净化步骤。 有关使用 CodeQL 分析数据流的信息,请参阅“关于数据流分析”。
要查看有关警报的更多信息,拥有写入权限的用户可单击注释中所示的 Show more details(显示更多详情)链接。 这允许您在警报视图中查看工具提供的所有上下文和元数据。 在下例中,您可以查看显示问题的严重性、类型和相关通用缺陷枚举 (CWE) 的� �记。 该视图还显示哪个提交引入了问题。
在警报的详细视图中,有些 代� �扫描 工具,例如 CodeQL 分析,还包括问题描述和 Show more(显示更多)链接以指导您如何修复代� �。
修复拉取请求上的警报
任何对拉取请求具有推送权限的人都可以修复在该拉取请求上已识别的 代� �扫描 警报。 如果将更改提交到拉取请求,这将触发拉取请求检查的新运行。 如果您的更改修复了问题,则警报将被关闭,注释将被� 除。
忽略拉取请求上的警报
关闭警报的另一种办法是忽略它。 您可以忽略您认为不需要修复的警报。 例如,仅用于测试的代� �中有错误,或者修复错误的工作超过改进代� �的潜在益处。 如果您对仓库有写入权限,则 Dismiss(忽略)按钮在代� �注释和警报摘要中可用。 单击 Dismiss(忽略)时,您将被提示选择关闭警报的原� 。
从下拉菜单中选择合适的原� 很重要,� 为这可能会影响到是否继续将查询纳入未来的分析。
If you dismiss a CodeQL alert as a false positive result, for example because the code uses a sanitization library that isn't supported, consider contributing to the CodeQL repository and improving the analysis. 有关 CodeQL 的更多信息,请参阅“参与 CodeQL”。
有关忽略警报的更多信息,请参阅“管理仓库的 代� �扫描 警报”。