{"id":17702436,"url":"https://github.com/teppeis/renovate-config","last_synced_at":"2025-05-06T22:26:01.010Z","repository":{"id":38378164,"uuid":"126107945","full_name":"teppeis/renovate-config","owner":"teppeis","description":"My shareable config for @renovateapp","archived":false,"fork":false,"pushed_at":"2025-05-03T22:46:16.000Z","size":2454,"stargazers_count":38,"open_issues_count":1,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-03T23:26:02.045Z","etag":null,"topics":["config","renovate"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teppeis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-03-21T01:53:24.000Z","updated_at":"2024-12-31T16:37:27.000Z","dependencies_parsed_at":"2023-11-22T00:57:01.835Z","dependency_job_id":"f7a76cd0-afd1-438b-b2df-7996d5451fcd","html_url":"https://github.com/teppeis/renovate-config","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teppeis%2Frenovate-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teppeis%2Frenovate-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teppeis%2Frenovate-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teppeis%2Frenovate-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teppeis","download_url":"https://codeload.github.com/teppeis/renovate-config/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252778030,"owners_count":21802694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["config","renovate"],"created_at":"2024-10-24T19:07:24.093Z","updated_at":"2025-05-06T22:26:00.985Z","avatar_url":"https://github.com/teppeis.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# @teppeis/renovate-config\n\nMy [shareable config](https://renovatebot.com/docs/config-presets/) for [Renovate](https://renovatebot.com)\n\n[![npm version][npm-image]][npm-url]\n[![build status][ci-image]][ci-url]\n[![dependency status][deps-image]][deps-url]\n![License][license]\n\n## Setup\n\nEnable Renovate in your repo and just `extends` in `renovate.json`.\n\n```js\n{\n  \"extends\": [\"github\u003eteppeis/renovate-config\"] // or [\"github\u003eteppeis/renovate-config:anytime\"]\n}\n```\n\nNote: You don't have to do `npm i -D @teppeis/renovate-config`.\nRenovate fetches it from this GitHub repo automatically.\n\n## Presets\n\n### `github\u003eteppeis/renovate-config` (`default`)\n\n#### General\n\n- Ignore `node_modules`, `bower_components`, and various test/tests directories\n- Apply label `renovate` to PRs\n- Limit to maximum 10 concurrent Renovate PRs at any time\n- Wait until branch tests have passed or failed before creating the PR\n- If semantic commits detected, use semantic commit type `fix` for deps and peerDeps, `chore` for all others\n- Use Asia/Tokyo timezone\n- Group [preset monorepo packages](https://renovatebot.com/docs/presets-monorepo/) together\n\n#### for npm\n\n- Automerge patch upgrades if they pass tests\n- Make no updates to branches when not scheduled\n- Separate major, minor and patch releases of dependencies into individual branches/PRs\n- Wait until the npm package is three days old before raising the update for stability\n- Run `npm dedupe` after package-lock.json updates\n- Disable major upgrade of `@types/node`\n- Run following schedule: after 9pm and before 9am\n- Upgrade semver ranges to latest version even if latest version satisfies existing range.\n- Automerge minor updates in devDeps\n\n#### for lock file maintenance\n\n- Run following schedule: before 3am on the first day of the month\n\n#### for Docker digests in CirleCI config.yml\n\n- Pin docker images with sha256 digest\n- Automerge with push the new commit directly to base branch (w/o PR)\n- Use `ci(docker):` as semantic commit type\n- Run following schedule: before 9am on Friday\n- Group all versions of Node.js images (`node` and `circleci/node`)\n\n#### for `engines` field in `package.json`\n\n- disabled\n\n```json\n{\n  \"extends\": [\n    \":ignoreModulesAndTests\",\n    \":label(renovate)\",\n    \":prConcurrentLimit10\",\n    \":prNotPending\",\n    \":timezone(Asia/Tokyo)\",\n    \"group:monorepos\"\n  ],\n  \"npm\": {\n    \"extends\": [\n      \":automergePatch\",\n      \":noUnscheduledUpdates\",\n      \":separatePatchReleases\",\n      \"npm:unpublishSafe\",\n      \"helpers:disableTypesNodeMajor\",\n      \"local\u003eteppeis/renovate-config:semanticPrefixFixDepsPeerChoreOthers\"\n    ],\n    \"schedule\": [\"after 9pm\", \"before 9am\"],\n    \"rangeStrategy\": \"bump\",\n    \"postUpdateOptions\": [\"npmDedupe\"],\n    \"lockFileMaintenance\": {\n      \"enabled\": true,\n      \"schedule\": [\"before 3am on the first day of the month\"]\n    },\n    \"packageRules\": [\n      {\n        \"description\": [\"automerge minor updates in devDeps\"],\n        \"automerge\": true,\n        \"matchUpdateTypes\": [\"minor\"],\n        \"matchDepTypes\": [\"devDependencies\"]\n      },\n      {\n        \"description\": [\"disable package.json \u003e engines update\"],\n        \"matchDepTypes\": [\"engines\"],\n        \"enabled\": false\n      },\n      {\n        \"schedule\": \"at any time\",\n        \"minimumReleaseAge\": \"0\",\n        \"matchPackageNames\": [\"eslint-config-teppeis\"]\n      }\n    ]\n  },\n  \"circleci\": {\n    \"enabled\": true,\n    \"automerge\": true,\n    \"automergeType\": \"branch\",\n    \"schedule\": [\"before 9am on Friday\"],\n    \"semanticCommitScope\": \"docker\",\n    \"semanticCommitType\": \"ci\",\n    \"pinDigests\": true,\n    \"packageRules\": [\n      {\n        \"groupName\": \"Node Docker digests in CircleCI\",\n        \"matchPackageNames\": [\"circleci/node\", \"node\"]\n      }\n    ]\n  }\n}\n```\n\n### `github\u003eteppeis/renovate-config:anytime`\n\n- Run Renovate **_at any time_**\n\n```json\n{\n  \"extends\": [\"local\u003eteppeis/renovate-config\"],\n  \"npm\": {\n    \"schedule\": \"at any time\"\n  },\n  \"lockFileMaintenance\": {\n    \"schedule\": \"at any time\"\n  },\n  \"circleci\": {\n    \"schedule\": \"at any time\"\n  }\n}\n```\n\n### `github\u003eteppeis/renovate-config:semanticPrefixFixDepsPeerChoreOthers`\n\nIf semantic commits detected, use semantic commit type `fix` for `dependencies` and `peerDependencies`, `chore` for all others\n\n```json\n\"semanticPrefixFixDepsPeerChoreOthers\": {\n  \"packageRules\": [\n    {\n      \"matchPackagePatterns\": [\n        \"*\"\n      ],\n      \"semanticCommitType\": \"chore\"\n    },\n    {\n      \"matchDepTypes\": [\n        \"dependencies\",\n        \"peerDependencies\"\n      ],\n      \"semanticCommitType\": \"fix\"\n    }\n  ]\n}\n```\n\n## References\n\n- [Renovate Docs](https://renovatebot.com/docs/)\n- [Configuration Options \\| Renovate Docs](https://renovatebot.com/docs/configuration-options/)\n- [Default Presets \\| Renovate Docs](https://renovatebot.com/docs/presets-default/)\n- [Other shareable configs in GitHub](https://github.com/search?o=desc\u0026q=%22renovate-config%22\u0026s=stars\u0026type=Repositories\u0026utf8=%E2%9C%93)\n- [RunKit \\+ npm: later](https://npm.runkit.com/later): [later](https://www.npmjs.com/package/later) is a parser that used to parse `schedule` in renovate\n\n## License\n\nMIT License: Teppei Sato \u0026lt;teppeis@gmail.com\u0026gt;\n\n[npm-image]: https://img.shields.io/npm/v/@teppeis/renovate-config.svg\n[npm-url]: https://npmjs.org/package/@teppeis/renovate-config\n[npm-downloads-image]: https://img.shields.io/npm/dm/@teppeis/renovate-config.svg\n[ci-image]: https://github.com/teppeis/renovate-config/workflows/ci/badge.svg\n[ci-url]: https://github.com/teppeis/renovate-config/actions?query=workflow%3Aci\n[deps-image]: https://img.shields.io/david/teppeis/renovate-config.svg\n[deps-url]: https://david-dm.org/teppeis/renovate-config\n[node-version]: https://img.shields.io/badge/Node.js%20support-v6,v8,v9-brightgreen.svg\n[coverage-image]: https://img.shields.io/coveralls/teppeis/renovate-config/master.svg\n[coverage-url]: https://coveralls.io/github/teppeis/renovate-config?branch=master\n[license]: https://img.shields.io/npm/l/@teppeis/renovate-config.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteppeis%2Frenovate-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteppeis%2Frenovate-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteppeis%2Frenovate-config/lists"}