关于 Dependabot
本快速入门指南将指导你设置和启用 Dependabot 以及查看存储库的 Dependabot alerts 和更新。
Dependabot 由三种不同的功能组成,可帮助你管理依赖项:
- Dependabot alerts:就存储库中使用的依赖项中的漏洞问题通知你。
- Dependabot security updates:自动引发拉取请求,以更新你使用的具有已知安全漏洞的依赖项。
- Dependabot version updates:自动引发拉取请求以使依赖项保持最新。
先决条件
在本指南中,我们将使用演示存储库来说明 Dependabot 如何查找依赖项中的漏洞,你可以在其中看到 GitHub 上的 Dependabot alerts,以及如何探索、修复或消除这些警报。
首先需要创建演示存储库的分支。
- 导航到 https://github.com/dependabot/demo。
- 在团队页面顶部,单击“ 分支”。
- 选择所有者(你可以选择 GitHub 个人帐户)并键入存储库名称。 有关创建存储库分支的详细信息,请参阅“为存储库创建分支”。
- 单击“创建分支”。
为存储库启用 Dependabot
你需要对在“先决条件”中为其创建分支的存储库执行以下步骤。
-
在 GitHub 上,导航到存储库的主页面。
-
在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。
-
在边栏的“Security”部分中,单击“Code security”****。
-
在“Code security”下 Dependabot alerts 的右侧,为 Dependabot alerts、Dependabot security updates 和 Dependabot version updates 单击“Enable”****。
-
(可选)如果有兴趣试用 Dependabot version updates,请单击“.github/dependabot.yml”。 此时会在存储库的
/.github
目录中创建一个默认的dependabot.yml
配置文件。 若要为存储库启用 Dependabot version updates,通常通过编辑默认文件并提交更改来配置此文件以满足你的需求。 有关示例,可以参考“配置 Dependabot 版本更新”中提供的代码片段。
Note
如果尚未为存储库启用依赖项关系图,GitHub 将在你启用 Dependabot 时自动启用它。
有关配置每个 Dependabot 功能的详细信息,请参阅“配置 Dependabot 警报”、“配置 Dependabot 安全更新”和“配置 Dependabot 版本更新”。
查看存储库的 Dependabot alerts
如果为存储库启用了 Dependabot alerts,可在存储库“安全”选项卡上查看 Dependabot alerts。 你可以使用在上一节中启用了 Dependabot alerts 的分支存储库。
-
在 GitHub 上,导航到存储库的主页面。
-
在存储库名称下,单击“ 安全性”。 如果看不到“安全性”选项卡,请选择 下拉菜单并单击“安全性” 。
-
在安全概览的“漏洞警报”边栏中,单击“Dependabot”。 如果缺少此选项,则表示你无权访问安全警报,需要被授予访问权限。 有关详细信息,请参阅“管理存储库的安全和分析设置”。
-
在 Dependabot alerts 页上查看未结警报。 默认情况下,该页面显示“未解决”选项卡,其中列出了未解决的警报。 (可以通过单击“已解决”来查看任何已解决的警报。)
可以使用各种筛选器或标签筛选列表中的 Dependabot alerts。 有关详细信息,请参阅“查看和更新 Dependabot 警报”。还可以使用 Dependabot 自动分类规则 来筛选掉误报的警报或你不感兴趣的警报。 有关详细信息,请参阅“关于 Dependabot 自动分类规则”。
-
单击
javascript/package-lock.json
文件中的“lodash 中的命令注入”警报。 警报的详细信息页将显示以下信息(请注意,某些信息可能不适用于所有警报):- Dependabot 是否创建了将修复漏洞的拉取请求。 可以通过单击“查看安全更新”来查看建议的安全更新。
- 涉及的包
- 受影响版本
- 已修补版本
- 漏洞的简要说明
-
(可选)还可以浏览页面右侧的信息。 屏幕截图中显示的某些信息可能不适用于每个警报。
- Severity
- 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 中的命令注入”警报。
- 导航到存储库的 Dependabot alerts 选项卡。 有关详细信息,请参阅上面的“查看存储库的 Dependabot alerts”部分。
- 单击警报。
- 单击
javascript/package-lock.json
文件中的“lodash 中的命令注入”警报。 - 查看警报。 方法:
-
通过单击“查看安全更新”来查看建议的安全更新。 这将使用安全修补程序打开由 Dependabot 生成的拉取请求。
- 在拉取请求说明中,可以单击“提交”以浏览拉取请求中包含的提交。
- 还可以单击“Dependabot 命令和选项”,了解可用于与拉取请求交互的命令。
- 当您准备好更新依赖项并解决漏洞时,合并拉取请求。
-
如果你决定要忽略警报
-
返回警报详细信息页。
-
在右上角,按下“关闭警报”。
-
选择忽略警报的原因。
-
(可选)添加消除注释。 消除操作注释将添加到警报时间线,可在审核和报告期间用作理由。
-
单击“消除警报”。 警报将不再会在警报列表的“未解决”**** 选项卡中显示,但可以在“已解决”**** 选项卡中查看。
-
-
有关查看和更新 Dependabot alerts 的详细信息,请参阅“查看和更新 Dependabot 警报”。
疑难解答
在以下情况下,可能需要执行一些故障排除:
- Dependabot 创建拉取请求来修复警报的行为被阻止,或
- Dependabot 报告的信息不是你所期望的。
有关详细信息,请分别参阅“排查 Dependabot 错误”和“漏洞依赖项检测疑难解答”。
后续步骤
有关配置 Dependabot 更新的详细信息,请参阅“配置 Dependabot 安全更新”和“配置 Dependabot 版本更新”。
有关如何为组织配置 Dependabot 的更多信息,请参阅“配置 Dependabot 警报”。
有关查看由 Dependabot 打开的拉取请求的详细信息,请参阅“管理依赖项更新的所有拉取请求”。
有关参与 Dependabot alerts 的安全建议的详细信息,请参阅“在 GitHub Advisory Database 中浏览安全公告”。
有关配置 Dependabot alerts 通知的详细信息,请参阅“为 Dependabot 警报配置通知”。