From c65294b834cb1cde5ab892ff31e3380f73c31d2f Mon Sep 17 00:00:00 2001 From: Shintaro Jokagi <61367823+taroj1205@users.noreply.github.com> Date: Wed, 18 Jun 2025 17:46:11 +1200 Subject: [PATCH] fix(renovate): streamline configuration and enhance package grouping (#681) * fix(renovate): streamline configuration and enhance package grouping * fix(renovate): clarify description for package rules in configuration --- .github/workflows/renovate.yml | 8 +++ renovate.json | 112 +++++++++++++++------------------ 2 files changed, 59 insertions(+), 61 deletions(-) diff --git a/.github/workflows/renovate.yml b/.github/workflows/renovate.yml index 95486db..f5af571 100644 --- a/.github/workflows/renovate.yml +++ b/.github/workflows/renovate.yml @@ -23,6 +23,14 @@ env: jobs: renovate: runs-on: ubuntu-latest + permissions: + contents: write + issues: write + pull-requests: write + security-events: read + actions: read + checks: read + statuses: write steps: - name: Checkout uses: actions/checkout@v4 diff --git a/renovate.json b/renovate.json index af386cd..77cdac2 100644 --- a/renovate.json +++ b/renovate.json @@ -1,93 +1,83 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": ["config:recommended", ":semanticCommits", "config:js-app"], - "timezone": "UTC", - "schedule": ["before 9am on Monday"], - "labels": ["dependencies"], + "extends": ["config:js-app"], + "labels": ["dependencies", "renovate"], "prConcurrentLimit": 10, - "rebaseWhen": "conflicted", "prHourlyLimit": 2, + "rebaseWhen": "conflicted", + "dependencyDashboard": true, "packageRules": [ { - "description": "Astro and React ecosystem packages", - "matchPackagePatterns": ["^@astrojs/", "^astro", "^react", "^@types/react"], - "groupName": "Astro and React core" + "description": "Group minor and patch-level updates", + "matchUpdateTypes": ["minor", "patch", "digest"], + "automergeType": "branch" }, { - "description": "Development dependencies", - "matchDepTypes": ["devDependencies"], - "groupName": "Dev dependencies" + "description": "Group Astro related packages", + "groupName": "astro", + "matchPackageNames": ["astro*", "@astrojs*"] }, { - "description": "Testing packages", - "matchPackagePatterns": [ - "^@testing-library/", - "^@playwright/", - "^vitest", - "^@vitest/", - "^jsdom" - ], - "groupName": "Testing packages" + "description": "Group React related packages", + "groupName": "react", + "matchPackageNames": ["react*", "@types/react*"] }, { - "description": "ESLint and TypeScript packages", - "matchPackagePatterns": ["^@typescript-eslint/", "^eslint", "^typescript", "^@types/"], - "excludePackagePatterns": ["^@types/react"], - "groupName": "TypeScript and ESLint" + "description": "Group testing libraries", + "groupName": "testing", + "matchPackageNames": ["vitest*", "@vitest*", "@testing-library*", "@playwright*", "jsdom*"] }, { - "description": "Formatting and code quality tools", + "description": "Group ESLint and TypeScript packages", + "groupName": "eslint-typescript", + "matchPackageNames": ["eslint*", "@eslint*", "typescript*", "@typescript-eslint*"] + }, + { + "description": "Group formatting and code quality tools", + "groupName": "code-quality", + "matchPackageNames": ["prettier*", "lefthook*", "@commitlint*", "cspell*", "@cspell*"] + }, + { + "description": "Group TailwindCSS ecosystem", + "groupName": "tailwindcss", "matchPackageNames": [ - "prettier", - "prettier-plugin-astro", - "prettier-plugin-tailwindcss", - "husky", - "lint-staged" - ], - "groupName": "Code formatting tools" + "tailwind*", + "@tailwindcss*", + "autoprefixer", + "postcss", + "clsx", + "tailwind-merge" + ] }, { - "description": "TailwindCSS ecosystem", - "matchPackagePatterns": ["^tailwind", "^@tailwindcss/"], - "matchPackageNames": ["autoprefixer", "postcss", "clsx", "tailwind-merge"], - "groupName": "TailwindCSS ecosystem" + "description": "Group FontAwesome packages", + "groupName": "fontawesome", + "matchPackageNames": ["@fortawesome*"] }, { - "description": "FontAwesome packages", - "matchPackagePatterns": ["^@fortawesome/"], - "groupName": "FontAwesome packages" + "description": "Group build and bundling tools", + "groupName": "build-tools", + "matchPackageNames": ["turbo*", "vite*", "jiti*", "wrangler*"] }, { - "description": "Lucide icon packages", - "matchPackagePatterns": ["^lucide-"], - "groupName": "Lucide icons" + "description": "Group type definitions", + "groupName": "type-definitions", + "matchPackageNames": ["@types*"], + "excludePackageNames": ["@types/react*"] + }, + { + "description": "Group devDependencies", + "groupName": "devDependencies", + "matchDepTypes": ["devDependencies"] }, { "description": "Major updates require manual review", "matchUpdateTypes": ["major"], "labels": ["dependencies", "major-update"] - }, - { - "description": "Pin Node.js to LTS versions", - "matchPackageNames": ["node"], - "allowedVersions": "/^(18|20|22)\\./" - }, - { - "description": "Cloudflare Workers and Wrangler", - "matchPackageNames": ["wrangler", "@astrojs/cloudflare"], - "groupName": "Cloudflare ecosystem" } ], "vulnerabilityAlerts": { - "enabled": true, "labels": ["security", "dependencies"] }, - "osvVulnerabilityAlerts": true, - "dependencyDashboard": true, - "dependencyDashboardTitle": "Dependency Dashboard", - "dependencyDashboardHeader": "This issue lists Renovate updates and detected dependencies. Read the [Dependency Dashboard](https://docs.renovatebot.com/key-concepts/dashboard/) docs to learn more.", - "dependencyDashboardFooter": "Configure Renovate in `renovate.json`", - "configMigration": true, - "platformAutomerge": false, - "automergeStrategy": "squash" + "osvVulnerabilityAlerts": true }