What is renovate?
Renovate is a powerful tool for automating dependency updates in your projects. It helps keep your dependencies up-to-date, ensuring that your project remains secure and compatible with the latest versions of libraries and tools.
What are renovate's main functionalities?
Automated Dependency Updates
Renovate can automatically update your dependencies by creating pull requests for new versions. The configuration above extends the base configuration, which includes sensible defaults for most projects.
{
"extends": ["config:base"]
}
Customizable Configuration
You can customize Renovate's behavior using a configuration file. In this example, packages that match the pattern '^@my-org/' are grouped together in a single pull request.
{
"extends": ["config:base"],
"packageRules": [
{
"packagePatterns": ["^@my-org/"],
"groupName": "my-org packages"
}
]
}
Scheduling Updates
Renovate allows you to schedule when updates should be created. The configuration above schedules updates to be created before 5 AM on Mondays.
{
"extends": ["config:base"],
"schedule": ["before 5am on monday"]
}
Other packages similar to renovate
dependabot
Dependabot is a GitHub-native tool for automating dependency updates. It is similar to Renovate in that it creates pull requests for new versions of dependencies. However, Dependabot is more tightly integrated with GitHub and may be easier to set up for users already using GitHub.
greenkeeper
Greenkeeper is another tool for automating dependency updates. It was one of the first tools in this space and offers similar functionality to Renovate. However, Greenkeeper has been deprecated in favor of Snyk, which now includes similar features.
snyk
Snyk is a comprehensive security tool that includes features for automating dependency updates. While it offers similar functionality to Renovate, Snyk also provides additional security features such as vulnerability scanning and remediation.
renovate
Keep npm dependencies up-to-date
Why
- Creates or updates Pull Requests for each dependency that needs updating
- Discovers and processes all
package.json
files in repository (supports monorepo architecture) - Supports multiple major versions per-dependency at once
- Configurable via file, environment, CLI, and
package.json
- Self-hosted
Inspired by the services at Greenkeeper and Doppins.
Install
$ npm install -g renovate
Authentication
You need to select a GitHub user for renovate
to assume the identity of. It's recommended that you use a dedicated "bot" account for this to avoid user confusion.
The script will need a GitHub Personal Access Token with "repo" permissions. You can find instructions for generating it here: https://help.github.com/articles/creating-an-access-token-for-command-line-use/
This token needs to be configured via file, environment variable, or CLI. See docs/configuration.md for details.
The simplest way is to expose it as GITHUB_TOKEN
.
Usage (CLI)
$ renovate --help
Usage: renovate [options] [repositories...]
Options:
-h, --help output usage information
-d, --dep-types <list> List of dependency types
-i, --ignore-deps <list> List of dependencies to ignore
-b, --labels <list> List of labels to apply
-l, --log-level <level> Log Level
-p, --package-files <list> List of package.json file names
-r, --recreate-closed <true/false> Recreate PR even if same was previously closed
-r, --recreate-unmergeable <true/false> Recreate PR if existing branch is unmergeable
-t, --token <token> GitHub Auth Token
Examples:
$ renovate --token abc123 singapore/lint-condo
$ renovate --token abc123 -l verbose singapore/lint-condo
$ renovate --token abc123 singapore/lint-condo singapore/package-test
Deployment
See deployment docs for details.
Design Decisions
See design decisions doc for details.