@teppeis/renovate-config
v1.15.0
Published
My shareable config for Renovate (renovatebot.com)
Downloads
5
Readme
@teppeis/renovate-config
My shareable config for Renovate
Setup
Enable Renovate in your repo and just extends
in renovate.json
.
{
"extends": ["@teppeis"] // or ["@teppeis:anytime"]
}
Note: You don't have to do npm i -D @teppeis/renovate-config
.
Renovate fetches it from npm registry automatically.
Presets
@teppeis
(default)
General
- Ignore
node_modules
,bower_components
, and various test/tests directories - Apply label
renovate
to PRs - Limit to maximum 10 concurrent Renovate PRs at any time
- Wait until branch tests have passed or failed before creating the PR
- If semantic commits detected, use semantic commit type
fix
for deps and peerDeps,chore
for all others - Use Asia/Tokyo timezone
- Group preset monorepo packages together
for npm
- Automerge patch upgrades if they pass tests
- Make no updates to branches when not scheduled
- Separate major, minor and patch releases of dependencies into individual branches/PRs
- Set a status check to warn when upgrades < 24 hours old might get unpublished
- Disable major upgrade of
@types/node
- Run following schedule: after 9pm and before 9am
- Upgrade semver ranges to latest version even if latest version satisfies existing range.
- Group ESLint, ESLint configs, ESLint plugins and Prettier together
- Automerge minor updates of widely used libraries like
mocha
in devDeps
for lock file maintenance
- Run following schedule: every weekend and before 9am on Monday
for Docker digests in CirleCI config.yml
- Run following schedule: before 9am on Friday
- Automerge with push the new commit directly to base branch (no PR)
- Use
ci(docker):
as semantic commit type - Group all versions of Node.js images (
node
andcircleci/node
)
for engines
field in package.json
- disabled
{
"extends": [
":ignoreModulesAndTests",
":label(renovate)",
":prConcurrentLimit10",
":prNotPending",
":timezone(Asia/Tokyo)",
"group:monorepos"
],
"npm": {
"extends": [
":automergePatch",
":noUnscheduledUpdates",
":separatePatchReleases",
":unpublishSafe",
"helpers:disableTypesNodeMajor",
"@teppeis:semanticPrefixFixDepsPeerChoreOthers"
],
"schedule": ["after 9pm", "before 9am"],
"rangeStrategy": "bump",
"packageRules": [
{
"groupName": "ESLint and Prettier",
"packageNames": ["eslint", "prettier"],
"packagePatterns": ["^eslint-config-", "^eslint-plugin-"]
},
{
"description": "automerge minor updates of widely used libraries in devDeps",
"updateTypes": ["minor"],
"depTypeList": ["devDependencies"],
"automerge": true,
"packageNames": ["glob", "mocha", "npm-run-all", "power-assert", "rimraf", "sinon"]
},
{
"description": "disable package.json > engines update",
"depTypeList": ["engines"],
"enabled": false
}
]
},
"lockFileMaintenance": {
"enabled": true,
"schedule": ["before 9am on the first day of the month"]
},
"circleci": {
"enabled": true,
"automerge": true,
"automergeType": "branch",
"schedule": ["before 9am on Friday"],
"semanticCommitScope": "docker",
"semanticCommitType": "ci",
"packageRules": [
{
"groupName": "Node Docker digests in CircleCI",
"packageNames": ["circleci/node", "node"]
}
]
}
}
@teppeis:anytime
- Run Renovate at any time
{
"extends": ["@teppeis"],
"npm": {
"schedule": "at any time"
},
"lockFileMaintenance": {
"schedule": "at any time"
},
"circleci": {
"schedule": "at any time"
}
}
@teppeis:semanticPrefixFixDepsPeerChoreOthers
If semantic commits detected, use semantic commit type fix
for dependencies
and peerDependencies
, chore
for all others
"semanticPrefixFixDepsPeerChoreOthers": {
"packageRules": [
{
"packagePatterns": [
"*"
],
"semanticCommitType": "chore"
},
{
"depTypeList": [
"dependencies",
"peerDependencies"
],
"semanticCommitType": "fix"
}
]
}
References
- Renovate Docs
- Configuration Options | Renovate Docs
- Default Presets | Renovate Docs
- Other shareable configs in GitHub
- RunKit + npm: later: later is a parser that used to parse
schedule
in renovate
License
MIT License: Teppei Sato <[email protected]>