GitHub Helps Developers Keep Dependencies Secure via Dependabot

Microsoft-owned GitHub informed developers on Thursday that they can easily ensure that the dependencies used by their applications are always secure and up to date through an integration of its Security Advisory API with Dependabot.

Created by London-based developer Grey Baker, Dependabot is a management tool that helps GitHub users keep their dependencies up to date. The tool checks a user’s dependency files every day and creates pull requests in case an update is available. Users can manually review the requests and merge them, or they can configure Dependabot for automatic merger based on certain criteria.

Dependabot now also integrates with GitHub’s Security Advisory API, which gives users access to its “carefully curated” database of vulnerabilities. According to GitHub, the Security Advisory service was used last year to send out over 10 million alerts related to more than 1,000 flaws.

By tapping into the Security Advisory API, Dependabot can check if a project’s dependencies are affected by any known vulnerabilities and create pull requests for updates. Dependabot includes support for Ruby, JavaScript, PHP, Java, Python, .NET, Rust and Elixir security advisories.

Ensuring that dependencies are always updated is not an easy task if an automated system is not used. For example, Baker pointed out that JavaScript has 30 direct dependencies and 712 indirect dependencies. Ruby has a total of 125 dependencies, Rust has 98, PHP has 73, and Python has 68.

“Dependabot automatically creates pull requests in response to security advisories. Every day it pulls down your dependency files, parses them, and checks for any out-of-date or insecure dependencies. If it finds any it creates a pull request on GitHub, isolating the specific dependency that needs updating, with details of what has changed,” Baker explained.

In order to make it easier for developers to decide if they want to merge a pull request, information is provided on the continuous integration (CI) pass rate for all projects performing a certain update. If the pass rate is high, developers can be more confident in their decision to merge.

“A typical ruby project (with 38 top-level dependencies) normally receives two dependency updates a week. Of those updates, 94% are non-breaking, which means that on average you’ll only need to write any code in response to a dependency update once every two months. The rest of the time you can just click “merge” and work with secure, up-to-date dependencies,” Baker said.

Dependabot is free for open source and personal projects, and companies have to pay between $15 and $100 per month to ensure that their dependencies are always up to date.

Related: GitHub Security Alerts Lead to Fewer Vulnerable Code Libraries

Related: GitHub to Warn Users on Compromised Passwords

Related: Support for Python Packages Added to GitHub Security Alerts

Original author: Eduard Kovacs