Skip to main content

查看和更新 Dependabot 警报

If GitHub Enterprise Cloud discovers insecure dependencies in your project, you can view details on the Dependabot alerts tab of your repository. Then, you can update your project to resolve or dismiss the alert.

Repository administrators and organization owners can view and update dependencies, as well as users and teams with explicit access.

仓库的 Dependabot 警报 选项卡列出所有打开和关闭的 Dependabot 警报 以及对应的 Dependabot 安全更新。 可以 按程序包、生态系统或清单筛选警报。 您可以 对警报列表进行排序,单击特定警报以获取更多详细信息。 您还可以逐个关闭或重新打开警报,也可以一次选择多个警报。 更多信息请参阅“关于 Dependabot 警报”。

您可以为使用 Dependabot 警报 和依赖关系图的任何仓库启用自动安全更新。 更多信息请参阅“关于 Dependabot 安全更新“。

关于仓库中有漏洞的依赖项的更新

GitHub Enterprise Cloud generates Dependabot 警报 when we detect that your codebase is using dependencies with known security risks. 对于启用了 Dependabot 安全更新 的仓库,当 GitHub Enterprise Cloud 在默认分支中检测到有漏洞的依赖项时,Dependabot 会创建拉取请求来修复它。 拉取请求会将依赖项升级到避免漏洞所需的最低安全版本。

您可以使用 Dependabot 警报 选项卡中的下拉菜单对 Dependabot 警报 进行排序和过滤,也可以在搜索栏中键入过滤条件作为键:值对。 可用的过滤器包括仓库(例如 repo:my-repository)、包(例如 package:django)、生态系统(例如 ecosystem:npm)、清单(例如 manifest:webwolf/pom.xml)、状态(例如 is:open)以及公告是否有补丁(例如 has: patch)。

Each Dependabot alert has a unique numeric identifier and the Dependabot 警报 tab lists an alert for every detected vulnerability or malware. 旧版 Dependabot 警报 按依赖项对漏洞进行分组,并为每个依赖项生成一个警报。 如果导航到旧版 Dependabot 警报,则会将您重定向到为该包筛选的 Dependabot 警报 选项卡。

关于检测对有漏洞函数的调用

注意:

  • The detection of calls to vulnerable functions by Dependabot is in beta and subject to change.

  • Detection of vulnerable calls is included in GitHub Enterprise Cloud for public repositories. To detect vulnerable calls in private repositories owned by organizations, your organization must have a license for GitHub Advanced Security. 更多信息请参阅“关于 GitHub Advanced Security”。

当 Dependabot 告诉您存储库使用有漏洞的依赖项时,您需要确定有漏洞的功能是什么,并检查是否正在使用它们。 获得此信息后,可以确定升级到依赖项的安全版本的迫切程度。

对于支持的语言,Dependabot 会自动检测您是否使用有漏洞的函数,并为受影响的警报添加“有漏洞的调用”标签。 您可以在 Dependabot 警报 视图中使用此信息来更有效地分流修正工作并确定其优先级。

注意: 在测试版期间,此功能仅适用于在 2022 年 4 月 14 日之后创建的新 Python 公告,以及历史 Python 公告的子集。 GitHub 正在努力回填其他历史 Python 公告的数据,这些公告是滚动添加的。 有漏洞的调用仅在 Dependabot 警报 页面上突出显示。

显示带有"有漏洞的调用"标签的警报屏幕截图

您可以在搜索字段中使用 has:vulnerable-calls 筛选视图,仅显示 Dependabot 检测到至少一次调用有漏洞函数的警报。

对于检测到有漏洞的调用的警报,警报详细信息页面将显示其他信息:

  • 一个或多个代码块,显示函数的使用位置。
  • 列出函数本身以及指向调用函数的行的链接的注释。

显示警报的并带有"有漏洞的调用"标签的警报详细信息页面屏幕截图

更多信息请参阅下面的“查看和修复警报”。

查看 Dependabot 警报

  1. 在 GitHub.com 上,导航到仓库的主页面。
  2. 在仓库名称下,单击 Security(安全)Security 选项卡
  3. 在安全侧边栏中,单击 Dependabot 警报。 如果缺少此选项,则表示你无权访问安全警报,需要被授予访问权限。 更多信息请参阅“管理存储库的安全和分析设置”。 Dependabot 警报 tab
  4. (可选)若要筛选警报,请选择 Repository(仓库)Package(包)Ecosystem(生态系统)Manifest(清单)下拉菜单,然后单击要应用的筛选器。 您还可以在搜索栏中键入过滤条件。 例如 ecosystem:npmhas:patch。 要对警报进行排序,请选择 Sort(排序)下拉菜单,然后单击要作为排序依据的选项。 Screenshot of the filter and sort menus in the Dependabot 警报 tab
  5. 单击要查看的警报。 Alert selected in list of alerts

查看和修复警报

请务必确保所有依赖项都没有任何安全漏洞。 当 Dependabot 发现依赖项中的漏洞或恶意软件时,应评估项目的暴露水平,并确定要采取哪些补救措施来保护应用程序。

如果依赖项有修补的版本可用,则可以生成 Dependabot 请求,以直接从 Dependabot 警报更新此依赖项。 如果您启用了 Dependabot 安全更新,则拉取请求可能会在 Dependabot 警报中链接。

如果修补的版本不可用,或者您无法更新到安全版本,Dependabot 会共享其他信息,以帮助您确定后续步骤。 单击以查看 Dependabot 警报时,可以看到依赖项的安全通告的完整详细信息,包括受影响的功能。 然后,可以检查代码是否调用受影响的函数。 此信息可以帮助您进一步评估风险级别,并确定解决方法或是否能够接受安全公告所代表的风险。

对于支持的语言,Dependabot 为您检测对有漏洞函数的调用。 当您查看标记为“有漏洞的调用”的警报时,详细信息包括函数的名称以及指向调用该函数的代码的链接。 通常,您将能够根据此信息做出决策,而无需进一步探索。

修复有漏洞的依赖项

  1. 查看警报的详细信息。 更多信息请参阅“查看 Dependabot 警报”(上文)。

  2. 如果启用了 Dependabot 安全更新 ,则可能存在指向将修复依赖项的拉取请求的链接。 或者,可以单击警报详细信息页面顶部的 创建 Dependabot 安全更新以创建拉取请求。 创建 Dependabot 安全更新按钮

  3. (可选)如果不使用 Dependabot 安全更新,则可以使用页面上的信息来决定要升级到的依赖项版本,并创建拉取请求以将依赖项更新到安全版本。

  4. 当您准备好更新依赖项并解决漏洞时,合并拉取请求。

    Dependabot 提出的每个拉取请求都包含可用于控制 Dependabot 的命令的相关信息。 更多信息请参阅“管理依赖项更新的拉取请求”。

忽略 Dependabot 警报

提示: 您只能关闭打开的警报。

如果计划大量工作来升级依赖项,或者决定不需要修复警报,则可以忽略警报。 通过忽略已评估的警报,可以更轻松地在新警报出现时对其进行分类。

  1. 查看警报的详细信息。 更多信息请参阅“查看有漏洞的依赖项”(上文)。
  2. 选择“Dismiss(忽略)”下拉列表,然后单击忽略警报的原因。 未修复的已忽略警报可以稍后重新打开。 选择通过 "Dismiss(忽略)"下拉菜单忽略警报的原因

一次忽略多个警报

  1. 查看打开的 Dependabot 警报。 更多信息请参阅“查看 Dependabot 警报”。
  2. (可选)通过选择下拉菜单,然后单击要应用的筛选器来筛选警报列表。 您还可以在搜索栏中键入过滤条件。
  3. 在每个警报标题的左侧,选择要忽略的警报。 突出显示了复选框的打开警报的屏幕截图
  4. (可选)在警报列表的顶部,选择页面上的所有警报。 选择的所有已打开警报的屏幕截图
  5. 选择“Dismiss alerts(忽略警报)”下拉列表,然后单击忽略警报的原因。 突出显示了“"忽略警报"下拉列表的已打开警报页面屏幕截图

查看和更新已关闭的警报

提示: 您只能重新打开以前已忽略的警报。 无法重新打开已修复的已关闭警报。

  1. 在 GitHub.com 上,导航到仓库的主页面。
  2. 在仓库名称下,单击 Security(安全)Security 选项卡
  3. 在安全侧边栏中,单击 Dependabot 警报。 如果缺少此选项,则表示你无权访问安全警报,需要被授予访问权限。 更多信息请参阅“管理存储库的安全和分析设置”。 Dependabot 警报 tab
  4. 要仅查看已关闭的警报,请单击 Closed(已关闭)Screenshot showing the "Closed" option
  5. 单击要查看或更新的警报。 Screenshot showing a highlighted dependabot alert
  6. (可选)如果警报已消除,并且您希望重新打开它,请单击 Reopen(重新打开)。 无法重新打开已修复的警报。 显示"重新打开"按钮的屏幕截图

一次重新打开多个警报

  1. 查看关闭的 Dependabot 警报。 更多信息请参阅“查看和更新关闭的警报”(上文)。
  2. 在每个警报标题的左侧,选择要重新打开的警报。 突出显示了复选框的已关闭警报的屏幕截图
  3. (可选)在警报列表的顶部,选择页面上所有已关闭的警报。 选中了所有警报的已关闭警报的屏幕截图
  4. 单击 Reopen(重新打开)以重新打开警报。 无法重新打开已修复的警报。 突出显示了"重新打开"按钮的已关闭警报的屏幕截图