跳至主要内容

审查拉取请求中的依赖更改

如果拉取请求中包含对依赖的更改,您可以查看已更改内容的摘要以及这些依赖是否存在已知漏洞。

谁可以使用此功能?

依赖审查适用于以下仓库类型

  • GitHub.com 上的公共仓库
  • 在启用了 GitHub 代码安全 的 GitHub Team 中的组织拥有的仓库

关于依赖审查

依赖审查帮助您了解每个拉取请求中的依赖更改及其安全影响。它在拉取请求的“已更改文件”标签页提供了易于理解的依赖更改可视化以及丰富的 diff。依赖审查会告知您以下信息:

  • 哪些依赖被添加、移除或更新,以及它们的发布时间
  • 有多少项目使用这些组件
  • 这些依赖的漏洞数据

依赖审查让您实现“左移”。您可以利用提供的预测信息在漏洞依赖进入生产环境之前将其捕获。更多信息请参阅 关于依赖审查

您可以使用依赖审查操作来帮助在仓库的拉取请求上强制执行依赖审查。该操作会扫描拉取请求的依赖更改,如果发现新的依赖存在已知漏洞则抛出错误。此操作由一个 API 端点支持,该端点比较两个修订之间的依赖并报告任何差异。

有关该操作和 API 端点的更多信息,请参阅 dependency-review-action 文档以及 依赖审查的 REST API 端点

您可以通过指定要捕获的依赖漏洞类型来配置依赖审查操作,以更好地满足您的需求。更多信息请参阅 配置依赖审查操作

审查拉取请求中的依赖

  1. 在仓库名称下,点击 拉取请求

    Screenshot of the main page of a repository. In the horizontal navigation bar, a tab, labeled "Pull requests," is outlined in dark orange.

  2. 在拉取请求列表中,单击你想要审查的拉取请求。

  3. 在拉取请求页面,点击 已更改的文件

    Screenshot of the tabs for a pull request. The "Files changed" tab is outlined in dark orange.

  4. 如果拉取请求包含许多文件,请使用 File filter 下拉菜单折叠所有未记录依赖的文件。这将使您更容易将审查重点放在依赖更改上。

    Screenshot of the "Changed files" tab. A dropdown labeled "File filter" is expanded, displaying a list of file types with checkboxes.
    依赖审查在大型 lock 文件中提供了更清晰的更改视图,而这些文件的源码 diff 默认不会渲染。

    注意

    对于已提交的静态 JavaScript 文件(如 jquery.js),依赖审查的丰富 diff 不可用。

  5. 在清单或 lock 文件标题的右侧,点击 即可显示依赖审查。

    Screenshot of the "Files changed" tab of a pull request. The button to display the rich diff, labeled with a file icon, is outlined in dark orange.

  6. 检查依赖审查中列出的依赖项。

    Screenshot of the vulnerability warnings in a dependency review for a pull request.

    任何已添加或已更改且存在漏洞的依赖会首先列出,排序方式为先按严重程度,然后按依赖名称。这意味着最高严重程度的依赖始终位于依赖审查的顶部。其他依赖则按依赖名称的字母顺序列出。

    每个依赖旁边的图标指示该依赖是已添加 ()、已更新 (),或已删除 () 在此拉取请求中的状态。

    其他信息包括

    • 新、更新或已删除的依赖的版本或版本范围。
    • 针对依赖的特定版本
      • 该依赖发布的时间长度。
      • 依赖此软件的项目数量。此信息取自依赖图。检查依赖方数量可帮助您避免误添错误的依赖。
      • 该依赖使用的许可证(如果可用)。如果您想避免在项目中使用带有特定许可证的代码,这将非常有用。

    当依赖存在已知漏洞时,警告信息包括

    • 漏洞的简要描述。
    • 通用漏洞和披露 (CVE) 或 GitHub 安全通告 (GHSA) 编号。您可以点击该 ID 了解更多漏洞信息。
    • 漏洞的严重程度。
    • 修复该漏洞的依赖版本。如果您正在为他人审查拉取请求,可能需要请求贡献者将依赖更新至已修补的版本或更高的发行版。
  7. 您也可能想查看源码 diff,因为清单或 lock 文件中可能存在未更改依赖的修改,或者可能存在 GitHub 无法解析的依赖,这些依赖因此不会出现在依赖审查中。

    要返回源码 diff 视图,请点击 按钮。

    Screenshot of the "Files changed" tab of a pull request. The button to display the source diff, shown with a code icon, is outlined in orange.

© . This site is unofficial and not affiliated with GitHub, Inc.