til

Today I Learned: collection of notes, tips and tricks and stuff I learn from day to day working with computers and technology as an open source contributor and product manager

View project on GitHub

Use renovate

Renovate is a very powerful alternative to Dependabot which reaches beyond GitHub.

I had it recommended, but I have only just scratched the surface of what it can do. Do note I am a very happy user of Dependabot.

One of the areas Dependabot does not handle is my other favorite tools: pre-commit and Perl (cpanfile), Renovate supports these via separate managers.

My configuration (renovate.json) looks as follows:

{
  "extends": [
    "config:base"
  ],
  "pre-commit": {
    "enabled": true
  }
}

I believe more will come as I find some more time to evaluate and use Renovate

Comparing Renovate with Dependabot

  Dependabot Renovate Note
Clojure   ✓ (Leiningen)  
Dart ✓ (pub) ✓ (pub) Flutter
Docker ✓ ✓ (ansible, docker-compose, dockerfile, droneci, gitlabci, kubernetes)  
dotNet ✓ (NuGet) ✓ (cake, NuGet)  
Elm ✓ (elm-package)    
Erlang ✓ (hex/mix) ✓ (hex/mix) Elixir
Git (submodule) ✓ ✓  
GitHub Actions ✓ ✓  
Go ✓ (gomod) ✓ (gomod)  
HTML   ✓  
Java ✓ (maven) ✓ (gradle, maven)  
JavaScript ✓ (npm, yarn) ✓ (meteor, npm) See also Node
Node ✓ (npm, yarn) ✓ (nodenv, nvm, travis) See also JavaScript
Objective-C   ✓ (cocoapods)  
Perl   ✓ (cpanfile) See: TIL
PHP ✓ (composer) ✓ (composer)  
pre-commit   ✓  
Python ✓ (pip, pipenv, pip-compile, poetry) ✓ (pip-compile, pip_requirements, pip_setup, pipenv, poetry, pyenv, setup-cfg, conan)  
Ruby ✓ (Bundler) ✓ (Bundler, ruby-version)  
Rust ✓ (cargo) ✓ (cargo)  
Swift   ✓ (cocoapods)  
Terraform ✓ ✓  

There are more Renovate options, I have however not dug into these at this time. Do consult the listed resources and references for more information.

  Dependabot Renovate Note
ansible-galaxy   ✓  
argocd   ✓  
azure-pipelines   ✓  
batect   ✓  
batect-wrapper   ✓  
bazel   ✓  
bitbucket-pipelines   ✓  
buildkite   ✓  
cdnurl   ✓  
circleci   ✓  
cloudbuild   ✓  
deps-edn   ✓  
flux   ✓  
fvm   ✓  
homebrew   ✓  

Do not the list above might be severely outdated, please consult the Renovate: Supported Managers for the latest information. Renovate is an alternative to Dependabot.

Do note Renovate is not bound to GitHub and you can host it yourself.

Installation

  • Install from GitHub MarketPlace
  • Create an account / Set up a plan
  • Configure your repository by adding the configuration file

Example

{
    "$schema": "https://docs.renovatebot.com/renovate-schema.json",
    "extends": [
        "config:base"
    ],
    "enabledManagers": ["pre-commit"]
}

Lifted from jonasbn/punycode: .github/renovate.json.

There are plenty of configuration options.

I let Dependabot take care of Go and Renovate take care of pre-commit and Perl (cpanfile).

Personally I prefer Dependabot. The ability to issue commands via comments is really powerful, I hope something similar will be implemented in Renovate.

Resources and References