diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 372ed48..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,122 +0,0 @@ -version: 2 - -updates: - - package-ecosystem: "github-actions" - directories: - - "/" - - "/.github/actions/claude-invoke" - - "/.github/actions/setup-node-pnpm" - - "/.github/actions/setup-terraform" - schedule: - interval: "weekly" - assignees: - - "benhigham" - labels: - - "dependencies" - - "github-actions" - commit-message: - prefix: "chore" - include: "scope" - groups: - github-actions: - patterns: - - "*" - update-types: - - "minor" - - "patch" - - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "weekly" - assignees: - - "benhigham" - labels: - - "dependencies" - - "npm" - commit-message: - prefix: "chore" - include: "scope" - groups: - development-dependencies: - dependency-type: "development" - update-types: - - "minor" - - "patch" - production-dependencies: - dependency-type: "production" - update-types: - - "patch" - versioning-strategy: increase - - - package-ecosystem: "docker" - directory: "/" - schedule: - interval: "weekly" - assignees: - - "benhigham" - labels: - - "dependencies" - - "docker" - commit-message: - prefix: "chore" - include: "scope" - - - package-ecosystem: "terraform" - directory: "/" - schedule: - interval: "weekly" - assignees: - - "benhigham" - labels: - - "dependencies" - - "terraform" - commit-message: - prefix: "chore" - include: "scope" - - - package-ecosystem: "devcontainers" - directory: "/" - schedule: - interval: "weekly" - assignees: - - "benhigham" - labels: - - "dependencies" - - "devcontainers" - commit-message: - prefix: "chore" - include: "scope" - - - package-ecosystem: "gitsubmodule" - directory: "/" - schedule: - interval: "weekly" - assignees: - - "benhigham" - labels: - - "dependencies" - - "git-submodules" - commit-message: - prefix: "chore" - include: "scope" - - - package-ecosystem: "gomod" - directory: "/" - schedule: - interval: "weekly" - assignees: - - "benhigham" - labels: - - "dependencies" - - "go" - commit-message: - prefix: "chore" - include: "scope" - groups: - go-dependencies: - patterns: - - "*" - update-types: - - "minor" - - "patch" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e458ed5 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.worktrees/ diff --git a/AGENTS.md b/AGENTS.md index 9d63204..1e3dce5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -23,7 +23,6 @@ Centralized defaults and automation for all `benhigham` GitHub repositories: release-changesets.yml # Reusable: versioning and npm publishing via Changesets ISSUE_TEMPLATE/ # Issue form templates pull_request_template.md # Default PR template - dependabot.yml # Dependabot config (npm, github-actions, docker, terraform, etc.) FUNDING.yml .claude/ commands/ # Reference command files — copy to per-repo as needed @@ -52,6 +51,7 @@ lefthook.yml # Git hook config (pre-commit) .prettierignore # Prettier ignore patterns CODEOWNERS # GitHub code ownership rules GOVERNANCE.md # Project governance policy +renovate.json # Renovate dependency update config ``` ## Tech Stack @@ -63,6 +63,7 @@ GOVERNANCE.md # Project governance policy - **Conventional Commits** (`feat:`, `fix:`, `chore:`, `docs:`, etc.) - **mise** as the tool manager and task runner - **lefthook** for git hooks (pre-commit linting and formatting) +- **Renovate** for automated dependency updates (requires Renovate GitHub App; configured via `renovate.json` at repo root) ## Setup @@ -250,10 +251,10 @@ Types: `feat`, `fix`, `docs`, `chore`, `refactor`, `test`, `ci`, `perf` ### Files That Affect Other Repos -Community health files, templates, and `.github/dependabot.yml` are inherited by other repositories. Edit carefully — +Community health files and templates are inherited by other repositories. Edit carefully — breaking changes affect all repos without their own versions. ### Files Local to This Repo -`README.md`, `AGENTS.md`, and workflow definitions. Other repos call workflows explicitly; +`README.md`, `AGENTS.md`, `renovate.json`, and workflow definitions. Other repos call workflows explicitly; changes here require consumers to update their references if inputs change. diff --git a/README.md b/README.md index 6d7a857..97b3825 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,12 @@ GitHub uses these as defaults for any public repository that doesn't have its ow - `CODE_OF_CONDUCT.md`, `SECURITY.md`, `SUPPORT.md`, `GOVERNANCE.md`, `LICENSE.md` - `.github/ISSUE_TEMPLATE/` — bug reports, feature requests, codebase improvements - `.github/pull_request_template.md` — default PR template -- `.github/dependabot.yml` — dependency updates with grouping and auto-assign - `.github/FUNDING.yml` +## Dependency Management + +- `renovate.json` — Renovate dependency update config (assignees, grouping, labels, schedule) + ## Reusable Workflows ### Release with Changesets diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..9fa6d18 --- /dev/null +++ b/renovate.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": ["config:recommended", "schedule:weekly"], + "assignees": ["benhigham"], + "labels": ["dependencies"], + "packageRules": [ + { + "matchManagers": ["github-actions"], + "addLabels": ["github-actions"], + "matchUpdateTypes": ["minor", "patch"], + "groupName": "github-actions (minor and patch)" + }, + { + "matchManagers": ["npm"], + "addLabels": ["npm"] + }, + { + "matchManagers": ["npm"], + "matchDepTypes": ["devDependencies"], + "matchUpdateTypes": ["minor", "patch"], + "groupName": "npm dev dependencies (minor and patch)" + }, + { + "matchManagers": ["npm"], + "matchDepTypes": ["dependencies"], + "matchUpdateTypes": ["patch"], + "groupName": "npm production dependencies (patch)" + }, + { + "matchManagers": ["dockerfile", "docker-compose"], + "addLabels": ["docker"] + }, + { + "matchManagers": ["terraform"], + "addLabels": ["terraform"] + }, + { + "matchManagers": ["devcontainer"], + "addLabels": ["devcontainers"] + }, + { + "matchManagers": ["git-submodules"], + "addLabels": ["git-submodules"] + }, + { + "matchManagers": ["gomod"], + "addLabels": ["go"], + "matchUpdateTypes": ["minor", "patch"], + "groupName": "go dependencies (minor and patch)" + } + ] +}