Skip to main content

Dependabot 快速入门指南

可以借助 Dependabot 在存储库使用具有已知漏洞的软件依赖项时向你发出警报。 本指南将帮助你开始为存储库启用 Dependabot,并探索报告的警报。

谁可以使用此功能?

Dependabot alerts 可免费用于 GitHub.com 上的所有存储库。 拥有 GitHub Advanced Security 的许可证后,高级功能(例如可达性分析和创建 自定义自动分类规则 的功能)将在任何组织拥有的存储库上可用。

关于 Dependabot

本快速入门指南将指导你设置和启用 Dependabot 以及查看存储库的 Dependabot alerts 和更新。

Dependabot 由三种不同的功能组成,可帮助你管理依赖项:

  • Dependabot alerts - 就存储库中使用的依赖项中的漏洞问题通知你。
  • Dependabot security updates - 自动引发拉取请求,以更新你使用的具有已知安全漏洞的依赖项。
  • Dependabot version updates - 自动引发拉取请求以使依赖项保持最新。

先决条件

在本指南中,我们将使用演示存储库来说明 Dependabot 如何查找依赖项中的漏洞,你可以在其中看到 GitHub 上的 Dependabot alerts,以及如何探索、修复或消除这些警报。

首先需要创建演示存储库的分支。

  1. 导航到 https://github.com/dependabot/demo
  2. 在团队页面顶部,单击“ 分支”。
  3. 选择所有者(你可以选择 GitHub 个人帐户)并键入存储库名称。 有关创建存储库分支的详细信息,请参阅“为存储库创建分支”。
  4. 单击“创建分支”。

为存储库启用 Dependabot

你需要对在“先决条件”中为其创建分支的存储库执行以下步骤。

  1. 在 GitHub.com 上,导航到存储库的主页。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。

  4. 在 Dependabot alerts 右侧的“代码安全和分析”下,为 Dependabot alerts、Dependabot security updates 和 Dependabot version updates 单击“启用”。

  5. (可选)如果有兴趣试用 Dependabot version updates,请单击“.github/dependabot.yml”。 此时会在存储库的 /.github 目录中创建一个默认的 dependabot.yml 配置文件。 若要为存储库启用 Dependabot version updates,通常通过编辑默认文件并提交更改来配置此文件以满足你的需求。 有关示例,可以参考“配置 Dependabot 版本更新”中提供的代码片段。

注意:如果尚未为存储库启用依赖项关系图,GitHub 将在你启用 Dependabot 时自动启用它。

有关配置每个 Dependabot 功能的详细信息,请参阅“配置 Dependabot 警报”、“配置 Dependabot 安全更新”和“配置 Dependabot 版本更新”。

查看存储库的 Dependabot alerts

如果为存储库启用了 Dependabot alerts,可在存储库“安全”选项卡上查看 Dependabot alerts。 你可以使用在上一节中启用了 Dependabot alerts 的分支存储库。

  1. 在 GitHub.com 上,导航到存储库的主页。

  2. 在存储库名称下,单击“ 安全性”。 如果看不到“安全性”选项卡,请选择 下拉菜单并单击“安全性” 。 存储库标头的屏幕截图,其中显示了选项卡。 “安全性”选项卡以深橙色边框突出显示。

  3. 在安全概览的“漏洞警报”边栏中,单击“Dependabot”。 如果缺少此选项,则表示你无权访问安全警报,需要被授予访问权限。 有关详细信息,请参阅“管理存储库的安全和分析设置”。

    安全概览的屏幕截图,其中用深橙色边框突出显示了“Dependabot”选项卡。

  4. 在 Dependabot alerts 页上查看未结警报。 默认情况下,该页面显示“未解决”选项卡,其中列出了未解决的警报。 (可以通过单击“已解决”来查看任何已解决的警报。)

    显示演示存储库的 Dependabot 警报列表的屏幕截图。

    可以使用各种筛选器或标签筛选列表中的 Dependabot alerts。 有关详细信息,请参阅“查看和更新 Dependabot 警报”。你还可以使用 Dependabot 自动分类规则 来筛选掉误报警报或你不感兴趣的警报。 有关详细信息,请参阅“关于 Dependabot 自动分类规则”。

  5. 单击 javascript/package-lock.json 文件中的“lodash 中的命令注入”警报。 警报的详细信息页将显示以下信息(请注意,某些信息可能不适用于所有警报):

    • Dependabot 是否创建了将修复漏洞的拉取请求。 可以通过单击“查看安全更新”来查看建议的安全更新。
    • 涉及的包
    • 受影响版本
    • 已修补版本
    • 漏洞的简要说明

    演示存储库中警报的详细页面的屏幕截图,其中显示了主要信息。

  6. (可选)还可以浏览页面右侧的信息。 屏幕截图中显示的某些信息可能不适用于每个警报。

    • 严重性
    • CVSS 指标 - 我们使用 CVSS 级别来分配严重性级别。 有关详细信息,请参阅“关于 GitHub 公告数据库”。
    • 标记
    • 弱点 - 与漏洞相关的 CWE 列表(如果适用)
    • CVE ID - 漏洞的唯一 CVE 标识符(如果适用)
    • GHSA ID - GitHub Advisory Database 上相应公告的唯一标识符。 有关详细信息,请参阅“关于 GitHub 公告数据库”。
    • 用于导航到 GitHub Advisory Database 上的公告的选项
    • 用于查看受此漏洞影响的所有存储库的选项
    • 用于对 GitHub Advisory Database 上的公告提出改进建议的选项

    演示存储库中警报的详细页面的屏幕截图,其中显示了页面右侧显示的信息。

有关查看 Dependabot alerts、确定其优先级和对其排序的详细信息,请参阅“查看和更新 Dependabot 警报”。

修复或忽略 Dependabot 警报

你可以修复或忽略 GitHub 上的 Dependabot alerts。 让我们继续以分支存储库为例,以及上一节中描述的“lodash 中的命令注入”警报。

  1. 导航到存储库的 Dependabot alerts 选项卡。 有关详细信息,请参阅上面的“查看存储库的 Dependabot alerts”部分。
  2. 单击警报。
  3. 单击 javascript/package-lock.json 文件中的“lodash 中的命令注入”警报。
  4. 查看警报。 方法:
    • 通过单击“查看安全更新”来查看建议的安全更新。 这将使用安全修补程序打开由 Dependabot 生成的拉取请求。

      Dependabot 为修复所选警报突出显示的安全漏洞而生成的拉取请求的屏幕截图。

      • 在拉取请求说明中,可以单击“提交”以浏览拉取请求中包含的提交。
      • 还可以单击“Dependabot 命令和选项”,了解可用于与拉取请求交互的命令。
      • 当您准备好更新依赖项并解决漏洞时,合并拉取请求。
    • 如果你决定要忽略警报

      • 返回警报详细信息页。

      • 在右上角,单击“忽略警报”。

        警报详细信息页面的屏幕截图,其中“忽略警报”按钮、下拉菜单选项和消除注释框以深橙色边框突出显示。

      • 选择忽略警报的原因。

      • (可选)添加消除注释。 消除操作注释将添加到警报时间线,可在审核和报告期间用作理由。

      • 单击“消除警报”。 警报将不再会在警报列表的“未解决”**** 选项卡中显示,但可以在“已解决”**** 选项卡中查看。

有关查看和更新 Dependabot alerts 的详细信息,请参阅“查看和更新 Dependabot 警报”。

疑难解答

在以下情况下,可能需要执行一些故障排除:

  • Dependabot 创建拉取请求来修复警报的行为被阻止,或
  • Dependabot 报告的信息不是你所期望的。

有关详细信息,请分别参阅“排查 Dependabot 错误”和“漏洞依赖项检测疑难解答”。

后续步骤

有关配置 Dependabot 更新的详细信息,请参阅“配置 Dependabot 安全更新”和“配置 Dependabot 版本更新”。

有关为组织配置 Dependabot 的详细信息,请参阅“配置 Dependabot 警报”。

有关查看由 Dependabot 打开的拉取请求的详细信息,请参阅“管理依赖项更新的所有拉取请求”。

有关参与 Dependabot alerts 的安全建议的详细信息,请参阅“在 GitHub Advisory Database 中浏览安全公告”。

有关配置 Dependabot alerts 通知的详细信息,请参阅“为 Dependabot 警报配置通知”。