diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index f7b45e5..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: 2 -updates: - - package-ecosystem: npm - directory: / - schedule: - interval: weekly - day: monday - open-pull-requests-limit: 10 - labels: - - dependencies - commit-message: - prefix: "chore(deps):" - - - package-ecosystem: github-actions - directory: / - schedule: - interval: weekly - day: monday - open-pull-requests-limit: 5 - labels: - - dependencies - - ci - commit-message: - prefix: "ci(deps):" diff --git a/AGENTS.md b/AGENTS.md index e000468..1787c21 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -48,7 +48,7 @@ If tests fail, identify whether failures are pre-existing vs introduced by your - **Conventional Commits** (`.github/workflows/conventional-commits.yml`) — Validates PR titles follow the convention. - **CodeQL** (`.github/workflows/codeql.yml`) — Static analysis for TypeScript; runs on PRs, pushes to `main`, and weekly. - **Publish** (`.github/workflows/publish.yml`) — semantic-release to npm on `main`. -- **Dependabot** (`.github/dependabot.yml`) — Opens weekly PRs for npm and GitHub Actions dependency updates. These use `chore(deps):` and `ci(deps):` commit prefixes. +- **Renovate** (`renovate.json`) — Automated dependency updates via the Renovate GitHub App. Groups non-major npm updates, creates separate PRs for majors, and auto-merges minor/patch. Uses `chore(deps):` and `ci(deps):` commit prefixes. ## Branch & Merge Rules diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..2b63dc6 --- /dev/null +++ b/renovate.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended", + "schedule:weekends", + ":semanticCommits", + ":automergeMinor", + ":automergePatch" + ], + "labels": ["dependencies"], + "prHourlyLimit": 3, + "prConcurrentLimit": 5, + "rebaseWhen": "behind-base-branch", + "packageRules": [ + { + "description": "Group non-major npm dependency updates", + "matchManagers": ["bun"], + "matchUpdateTypes": ["minor", "patch"], + "groupName": "npm non-major dependencies", + "commitMessagePrefix": "chore(deps):", + "labels": ["dependencies"] + }, + { + "description": "Major npm dependency updates (separate PRs for review)", + "matchManagers": ["bun"], + "matchUpdateTypes": ["major"], + "commitMessagePrefix": "chore(deps):", + "labels": ["dependencies"], + "automerge": false + }, + { + "description": "Group GitHub Actions updates", + "matchManagers": ["github-actions"], + "groupName": "github actions", + "commitMessagePrefix": "ci(deps):", + "labels": ["dependencies", "ci"] + } + ] +}