From 5767ee2f79e7396c06168e2a0ba6eb44e3b4cc98 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Thu, 8 Oct 2026 07:14:52 -0700 Subject: [PATCH 1/4] config(renovate): harden shared preset and add onboarding entry point Adds org-wide policy to default.json (weekly cadence in America/New_York, Vite+ and GitHub Actions grouping, biome custom manager, shared engines range rule, OSV vulnerability alerts, PR limits) and removes the redundant GitHub Actions digest helper already inherited from config:best-practices. Adds renovate-config.json as the onboarding discovery entry point extending ./default, without renaming default.json. Documents the shared policy in the README. Part of the harden-org-renovate-preset change. --- README.md | 31 +++++++++++++++++++++++++++++++ default.json | 14 +++++++++++++- renovate-config.json | 5 +++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 renovate-config.json diff --git a/README.md b/README.md index e9af2aa..fbe273b 100644 --- a/README.md +++ b/README.md @@ -2,5 +2,36 @@ The [public profile](profile/README.md) for [Gitify][gitify-website] organization on GitHub. +## Renovate shared configuration + +This repository hosts the organization's shared Renovate preset. + +- `default.json` — the baseline preset that every repository inherits via `extends: ["github>gitify-app/.github"]`. +- `renovate-config.json` — the onboarding entry point (`extends: ["./default"]`); Renovate suggests it automatically for new repositories. + +### Inheriting and extending + +A repository inherits the baseline by extending the shared preset, then adds its own configuration after it. Repository-level settings and later `packageRules` take precedence: + +```jsonc +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": ["github>gitify-app/.github"], + "packageRules": [ + { "description": "repo-specific rule" } + ] +} +``` + +### Policy + +- Weekly updates in `America/New_York`, with grouped Vite+ and GitHub Actions updates. +- Node runtime tracks LTS only; `@types/node` majors are handled per repository. +- OSV vulnerability alerts on; PR volume capped; no automerge in the baseline. + +### Validation + +`default.json`, `renovate-config.json`, and any other preset files are validated with `renovate-config-validator --strict` by `.github/workflows/renovate-config-validator.yml`. Consumer repositories call the same reusable workflow to validate their own `renovate.json`. + [gitify-website]: https://gitify.io diff --git a/default.json b/default.json index 6714777..a6f49b9 100644 --- a/default.json +++ b/default.json @@ -8,9 +8,16 @@ ":semanticCommitScope(deps)", ":separateMultipleMajorReleases", ":rebaseStalePrs", - "helpers:pinGitHubActionDigests", + ":timezone(America/New_York)", + "schedule:weekly", + "group:vitePlus", + "group:githubartifactactions", + "customManagers:biomeVersions", "helpers:pinGitHubActionDigestsToSemver" ], + "osvVulnerabilityAlerts": true, + "prConcurrentLimit": 10, + "prHourlyLimit": 2, "labels": ["dependency"], "packageRules": [ { @@ -18,6 +25,11 @@ "matchManagers": ["npm"], "rangeStrategy": "pin" }, + { + "description": "Keep engine ranges (for example node) as ranges rather than pinning them", + "matchDepTypes": ["engines"], + "rangeStrategy": "auto" + }, { "description": "Use the dependency name in npm commit messages and PR titles", "matchDatasources": ["npm"], diff --git a/renovate-config.json b/renovate-config.json new file mode 100644 index 0000000..51ea2fd --- /dev/null +++ b/renovate-config.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "description": "Onboarding entry point for gitify organization repositories", + "extends": ["./default"] +} From 1e9952bd519d0e9a4027dc56a1a44a60e2ee29cb Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Thu, 8 Oct 2026 07:18:48 -0700 Subject: [PATCH 2/4] config(renovate): drop timezone parameter from shared preset --- README.md | 2 +- default.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index fbe273b..858cf27 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ A repository inherits the baseline by extending the shared preset, then adds its ### Policy -- Weekly updates in `America/New_York`, with grouped Vite+ and GitHub Actions updates. +- Weekly updates, with grouped Vite+ and GitHub Actions updates. - Node runtime tracks LTS only; `@types/node` majors are handled per repository. - OSV vulnerability alerts on; PR volume capped; no automerge in the baseline. diff --git a/default.json b/default.json index a6f49b9..73b685a 100644 --- a/default.json +++ b/default.json @@ -8,7 +8,6 @@ ":semanticCommitScope(deps)", ":separateMultipleMajorReleases", ":rebaseStalePrs", - ":timezone(America/New_York)", "schedule:weekly", "group:vitePlus", "group:githubartifactactions", From b01841a285b7f2e634d3780b0a8bcdcf7b296322 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Thu, 8 Oct 2026 07:20:46 -0700 Subject: [PATCH 3/4] config(renovate): fix GitHub Actions group name and drop PR limits Use the canonical group:githubArtifactActions preset name and remove prConcurrentLimit/prHourlyLimit. --- README.md | 2 +- default.json | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 858cf27..7c33288 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ A repository inherits the baseline by extending the shared preset, then adds its - Weekly updates, with grouped Vite+ and GitHub Actions updates. - Node runtime tracks LTS only; `@types/node` majors are handled per repository. -- OSV vulnerability alerts on; PR volume capped; no automerge in the baseline. +- OSV vulnerability alerts on; no automerge in the baseline. ### Validation diff --git a/default.json b/default.json index 73b685a..4f3fe30 100644 --- a/default.json +++ b/default.json @@ -10,13 +10,11 @@ ":rebaseStalePrs", "schedule:weekly", "group:vitePlus", - "group:githubartifactactions", + "group:githubArtifactActions", "customManagers:biomeVersions", "helpers:pinGitHubActionDigestsToSemver" ], "osvVulnerabilityAlerts": true, - "prConcurrentLimit": 10, - "prHourlyLimit": 2, "labels": ["dependency"], "packageRules": [ { From b7bd9d47d9766c82f236cd5a176f2d61cb0fd13f Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Thu, 8 Oct 2026 07:21:46 -0700 Subject: [PATCH 4/4] docs(readme): add emoji sections and badges to shared preset README --- README.md | 45 ++++++++++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 7c33288..0fb1910 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,22 @@ -# Gitify Organization Public Profile +# 🧩 Gitify Organization -The [public profile](profile/README.md) for [Gitify][gitify-website] organization on GitHub. +[![Renovate enabled][renovate-badge]][renovate] [![Renovate config validation][validator-badge]][validator-actions] [![Conventional Commits][commits-badge]][commits] [![License][license-badge]][license] -## Renovate shared configuration +> Shared configuration and community health files for the [Gitify][gitify-website] organization. +> See the [organization profile](profile/README.md). -This repository hosts the organization's shared Renovate preset. +--- -- `default.json` — the baseline preset that every repository inherits via `extends: ["github>gitify-app/.github"]`. -- `renovate-config.json` — the onboarding entry point (`extends: ["./default"]`); Renovate suggests it automatically for new repositories. +## 📦 Shared Renovate configuration -### Inheriting and extending +This repository hosts the organization's shared [Renovate][renovate] preset, inherited by every Gitify repository. + +| File | Purpose | +| ---------------------- | ----------------------------------------------------------------------------------------------- | +| `default.json` | Baseline preset every repository inherits via `extends: ["github>gitify-app/.github"]`. | +| `renovate-config.json` | Onboarding entry point (`extends: ["./default"]`); Renovate suggests it automatically for new repositories. | + +## 🔗 Inheriting and extending A repository inherits the baseline by extending the shared preset, then adds its own configuration after it. Repository-level settings and later `packageRules` take precedence: @@ -23,15 +30,27 @@ A repository inherits the baseline by extending the shared preset, then adds its } ``` -### Policy +## 🛠️ Policy + +- 🗓️ Weekly updates, with grouped Vite+ and GitHub Actions updates. +- 🟢 Node runtime tracks LTS only; `@types/node` majors are handled per repository. +- 🛡️ OSV vulnerability alerts on; no automerge in the baseline. + +## ✅ Validation -- Weekly updates, with grouped Vite+ and GitHub Actions updates. -- Node runtime tracks LTS only; `@types/node` majors are handled per repository. -- OSV vulnerability alerts on; no automerge in the baseline. +`default.json`, `renovate-config.json`, and any other preset files are validated with `renovate-config-validator --strict` by [`.github/workflows/renovate-config-validator.yml`](.github/workflows/renovate-config-validator.yml). Consumer repositories call the same reusable workflow to validate their own `renovate.json`. -### Validation +## 📄 License -`default.json`, `renovate-config.json`, and any other preset files are validated with `renovate-config-validator --strict` by `.github/workflows/renovate-config-validator.yml`. Consumer repositories call the same reusable workflow to validate their own `renovate.json`. +Released under the [MIT License](LICENSE). [gitify-website]: https://gitify.io +[renovate]: https://renovatebot.com/ +[renovate-badge]: https://img.shields.io/badge/renovate-enabled-brightgreen.svg?logo=renovate&logoColor=white +[validator-actions]: https://github.com/gitify-app/.github/actions/workflows/renovate-config-validator.yml +[validator-badge]: https://img.shields.io/github/actions/workflow/status/gitify-app/.github/renovate-config-validator.yml?logo=github&label=renovate%20config +[commits]: https://www.conventionalcommits.org/ +[commits-badge]: https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg?logo=conventionalcommits&logoColor=white +[license]: LICENSE +[license-badge]: https://img.shields.io/github/license/gitify-app/.github?logo=github