此版本的 GitHub Enterprise 已停止服务 2021-09-23. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

管理仓库的代码扫描警报

从安全的角度,您可以查看、修复或关闭项目代码中潜在漏洞或错误的警报。

If you have write permission to a repository you can manage 代码扫描 alerts for that repository.

代码扫描 在您拥有 GitHub Advanced Security 的许可证时可用。

注: 代码扫描 正在测试用于 GitHub Enterprise Server 2.22。 对于代码扫描的一般可用版本,请升级到最新版本的 GitHub Enterprise Server。

关于 代码扫描 中的警报

您可以设置 代码扫描,以使用默认 CodeQL 分析、第三方分析或多种类型的分析来检查仓库中的代码。 分析完成后,生成的警报将并排显示在仓库的安全视图中。 第三方工具或自定义查询的结果可能不包括您在 GitHub 的默认 CodeQL 分析所检测的警报中看到的所有属性。 更多信息请参阅“为仓库设置 代码扫描”。

默认情况下, 代码扫描 定期在默认分支和拉取请求中分析您的代码。 有关管理拉取请求中的警报的更多信息,请参阅“对拉取请求中的 代码扫描 警报分类”。

注意:

  • SARIF upload supports a maximum of 1000 results per upload. 超过此限制的任何结果均被忽略。 如果工具产生太多结果,则应更新配置,以专注于最重要的规则或查询的结果。

  • For each upload, SARIF upload supports a maximum size of 10 MB for the gzip-compressed SARIF file. Any uploads over this limit will be rejected. If your SARIF file is too large because it contains too many results, you should update the configuration to focus on results for the most important rules or queries.

关于警报详细信息

每个警报都会高亮显示代码的问题以及识别该问题的工具名称。 您可以看到触发警报的代码行以及警报的属性,例如问题的严重程度和性质。 警报还会告知该问题第一次被引入的时间。 对于由 CodeQL 分析确定的警报,您还会看到如何解决问题的信息。

来自 代码扫描 的警报示例

如果使用 CodeQL 设置 代码扫描,也可以检测代码中的数据流问题。 数据流分析将查找代码中的潜在安全问题,例如:不安全地使用数据、将危险参数传递给函数以及泄漏敏感信息。

当 代码扫描 报告数据流警报时,GitHub 将显示数据在代码中如何移动。 代码扫描 可用于识别泄露敏感信息的代码区域,以及可能成为恶意用户攻击切入点的代码区域。

查看仓库的警报

任何对仓库有读取权限的人都可以查看拉取请求上的 代码扫描 注释。 更多信息请参阅“对拉取请求中的 代码扫描 警报分类”。

您需要写入权限才能在 Security(安全)选项卡上查看仓库所有警报的摘要。 默认情况下,显示默认分支的警报。

  1. 在 GitHub Enterprise Server 上,导航到仓库的主页面。
  2. 在仓库名称下,单击 Security(安全)Security 选项卡
  3. 在左侧边栏中,单击 Code scanning alerts(代码扫描警报)"Code scanning alerts(代码扫描警报)" 选项卡
  4. 在 "代码扫描" 下,单击要探索的警报。 警报摘要
  5. (可选)如果警报突出显示数据流的问题,请单击 Show paths(显示路径)以显示从数据源到使用它的接收者的路径。 警报上的"显示路径"链接
  6. 来自 CodeQL 分析的警报包括对问题的描述。 单击 Show more(显示更多)以获取有关如何修复代码的指导。 警报的详细信息

修复警报

任何对仓库具有写入权限的人都可以通过提交对代码的更正来修复警报。 如果仓库已安排对拉取请求运行 代码扫描,则最好通过拉取请求提交您的更正。 这将触发对更改的 代码扫描 分析,并测试您的修复是否会带来任何新的问题。 更多信息请参阅“配置 代码扫描”和“对拉取请求中的 代码扫描 警报分类”。

如果您有仓库的写入权限,您可以通过查看警报摘要并单击 Closed(已关闭)来查看已修复的警报。 更多信息请参阅“查看仓库的警报”。 “Closed(已关闭)”列表显示已修复的警报和用户已关闭的警报。

警报只能在一个分支中修复。 您可以在警报摘要上使用“Branch(分支)”下拉菜单检查警报是否是在特定分支中修复的。

按分支过滤警报

关闭警报

关闭警报是解决您认为不需要修复的警报的一种方式。 例如,仅用于测试的代码中有错误,或者修复错误的工作超过改进代码的潜在益处。

  1. 在 GitHub Enterprise Server 上,导航到仓库的主页面。

  2. 在仓库名称下,单击 Security(安全)Security 选项卡

  3. 在左侧边栏中,单击 Code scanning alerts(代码扫描警报)"Code scanning alerts(代码扫描警报)" 选项卡

  4. 在“Code Scanning(代码扫描)”下,单击要探索的警报。

    来自 代码扫描 的警报列表

  5. 选择 Close(关闭)下拉菜单,然后单击关闭警报的原因。
    通过 Close(关闭)下拉菜单选择关闭警报的原因

如果将 CodeQL 警报作为误报予以关闭,例如,因为代码使用不受支持的净化库,则考虑参与 CodeQL 仓库并改进分析。 有关 CodeQL 的更多信息,请参阅“参与 CodeQL”。

延伸阅读