Skip to content

Update manager

We want to build a secure and up-to-date software. Therefore, we have to update out code regularly. To make this process as easy as possible, we want to use an update manager.

This eval compares 2 different update managers: Renovate and Dependabot.

Requirements

Following requirements are important for us:

  • group dependencies by type (e.g. go-Dependencies, python-Dependencies)
  • easy to use
  • minimal overhead to maintain

Renovate

Renovate is tool, build by Mend and can be self-hosted or used as a service. For configuration, it uses a renovate.json file in the repository.

To use Renovate, we can either host a server and deploy Renovate or install the Renovate GitHub App (for the entire Organization).

Dependabot

Dependabot is a tool, build by GitHub and can be used as a service. For configuration, it uses a .github/dependabot.yml file in the repository.

To use Dependabot, we have to enable it in the repository settings.

Comparison

Feature Renovate Dependabot
Hosting 🔴 as service, connected via GitHub App (self hosted is possible, but no option for us) 🟢 native in GitHub
Configuration 🟢 endless configuration via JSON and Environment Variables 🟠 limited, but simple configuration via YAML
Cost 🟢 free 🟢 free
Security 🔴 hosted by Mend (write access from an app) 🟢 native in GitHub, no rights needed
Grouping 🟢 via packageRules 🟢 via groups

Conclusion

We use Dependabot as our update manager

We have a very simple setup and don't need a lot of configuration. Therefore, Dependabot is the better choice for us. It is native integrated in GitHub and has no overhead to maintain.