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.
“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.