跳至主要内容

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

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

谁可以使用此功能?

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

  • GitHub.com 上的公共仓库。
  • 已启用GitHub 高级安全的 GitHub Enterprise Cloud 上的组织拥有的仓库。

关于依赖项审查

依赖项审查可帮助您了解依赖项更改以及这些更改在每个拉取请求中的安全影响。它提供易于理解的依赖项更改可视化效果,并在拉取请求的“已更改文件”选项卡上提供丰富的差异比较。依赖项审查会告知您:

  • 添加、删除或更新了哪些依赖项,以及发布日期。
  • 有多少项目使用这些组件。
  • 这些依赖项的漏洞数据。

依赖项审查允许您“左移”。您可以使用提供的预测信息在漏洞依赖项影响生产环境之前对其进行捕获。有关更多信息,请参阅“关于依赖项审查”。

您可以使用依赖项审查操作来帮助在您的仓库中对拉取请求强制执行依赖项审查。依赖项审查操作会扫描您的拉取请求以查找依赖项更改,如果任何新的依赖项存在已知漏洞,则会引发错误。该操作由一个 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. 如果拉取请求包含许多文件,请使用**文件筛选器**下拉菜单折叠所有未记录依赖项的文件。这将使您更容易专注于依赖项更改的审查。

    Screenshot of the "Changed files" tab. A dropdown labeled "File filter" is expanded, displaying a list of file types with checkboxes.
    依赖项审查提供了对大型锁定文件中已更改内容的更清晰视图,在这些文件中,默认情况下不会呈现源差异。

    注意

    依赖项审查的丰富差异比较不适用于已提交的静态 JavaScript 文件(如jquery.js)。

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

    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. 您可能还需要查看源代码差异,因为清单文件或锁文件可能存在不会更改依赖项的更改,或者 GitHub 可能无法解析某些依赖项,因此这些依赖项不会出现在依赖项审查中。

    要返回源代码差异视图,请点击按钮。

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