Dependabot 介绍

Background

你可能常常会在你的某一个Github repo上发现这样的alert

image

这是Github给你发送的Dependabot alerts

What is Dependabot?

Github Dependabot 是一个github的工具,他可以帮助你检测你的repo, 并且做一些工作保证你repo的安全性。Dependabot可以为你repo做的事情主要分成三大类:

  • Keep all your dependencies updated: 实时检测你的repo,并keep你所有的dependency都能被updated
  • Detection of vulnerable dependencies send Dependabot alert:检测vulnerable dependencies并发出Dependabot alert
  • Stop using vulnerable dependencies and keep security updates: 帮助你停止使用有vulnerable的dependencies

Keep all your dependencies updated

Dependabot除了可以帮助我们处理漏洞以外,还有一个非常重要的作用,就是帮助我们检测我们所使用的dependency中是否有可以更新的版本,如果有,它也可以帮助我们实现自动更新。

在repo中enable了Dependabot之后,可以时刻的保证我们repo中使用的dependency都是up to date的

Detection of vulnerable dependencies

Github会检测vulnerable dependencies,如果发现就会发出Dependabot alerts, 这种检测机制在以下几种情况下被触发:

  • 当GitHub Advisory Database中又收录了一个新的vulnerability

GitHub Advisory Database中包含了所有目前发现的vulnerability。Github也为了方便开发者查询vulnerability而开发了一UI https://github.com/advisories, 这里你可以浏览或搜索影响GitHub上开源项目的漏洞。

  • 来自WhiteSource的新的vulnerability被处理

WhiteSource DB也是一个用于存储open source security vulnerabilities的DB

  • repo中添加了新的dependency或者升级了某一个dependency的版本,或者说dependency graph发生了改变。

默认情况下,Github会检测所有的public repo,当发现漏洞的时候alert仓库的维护者,alert中会包含被影响的文件link,以及漏洞修复的版本和信息。

对于一些private repo就需要维护者手动的enable dependency graphGitHub Dependabot alerts

image

[图片上传失败...(image-d17979-1600391960839)]

对于那些enable Dependabot security updates 的仓库,Dependabot会自动的将漏洞修复,并且给你的仓库提PR。

Stop using vulnerable dependencies: Dependabot security updates

当你的repo enable Dependabot security updates 之后,Github会找到没有漏洞的版本,将漏洞修复,并且给你的repo提一个PR

你的repo就可以实现自动的security updates

How to use Dependabot ?

Dependabot的检测功能对于public repo是默认开启的,如何开启我已经在上面提过了,这部分主要会说明如何配置Dependabot的自动update。

如果想要Dependabot帮你做security updates,你需要两个步骤:

  • 在repo中首先enable Dependabot security updates

    image

  • 在repo根目录下创建.github folder,并且在folder下添加dependabot.yml(dependabot的config)

    image

    这个config主要配置:

    • 那些漏洞需要被自动修复
    • 多久进行一次自动修复工作
# Basic dependabot.yml file with
# minimum configuration for two package managers

version: 2
updates:
  # Enable version updates for npm
  - package-ecosystem: "npm"
    # Look for `package.json` and `lock` files in the `root` directory
    directory: "/"
    # Check the npm registry for updates every day (weekdays)
    schedule:
      interval: "daily"

  # Enable version updates for Docker
  - package-ecosystem: "docker"
    # Look for a `Dockerfile` in the `root` directory
    directory: "/"
    # Check for updates once a week
    schedule:
      interval: "weekly"

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容