📦 Renovate 配置生成器
v1.0.0生成Renovate Bot配置以实现自动依赖更新 — 分析项目依赖,创建分组规则,安排策略,自动合并规则...
运行时依赖
安装命令
点击复制技能文档
Renovate 配置生成器 分析项目的依赖关系并生成生产就绪的 Renovate Bot 配置。处理 monorepos、自定义注册表、分组策略、自动合并策略、调度窗口和自定义管理器,使依赖关系更新流程顺畅,而不是让您的团队淹没在 PR 中。 使用时: "设置 Renovate"、"配置依赖关系更新"、"生成 Renovate 配置"、"自动化依赖关系管理"、"太多 Renovate PR"、"Renovate 噪音大" 或将新仓库加入 Renovate 时。 先决条件 # 检查现有的 Renovate 配置 ls renovate.json renovate.json5 .renovaterc .renovaterc.json .github/renovate.json 2>/dev/null # 检查包生态系统文件 ls package.json go.mod requirements.txt Pipfile Gemfile pom.xml build.gradle \ Cargo.toml composer.json .csproj Dockerfile docker-compose.yml \ .tf .terraform.lock.hcl .github/workflows/.yml .gitlab-ci.yml 2>/dev/null # 如果使用自托管 Renovate renovate --version 使用方法 提供:存储库路径或 URL —— 配置 Renovate 的存储库 托管平台 —— GitHub、GitLab、Bitbucket、Azure DevOps 团队偏好 —— 自动合并容忍度、PR 频率限制、审查要求 自定义注册表 —— Artifactory、Nexus、私有 npm/Docker 注册表 示例调用: 为我们的 monorepo 生成 Renovate 配置。我们使用 npm、Docker、Terraform 和 GitHub Actions。我们希望为补丁更新自动合并,为次要更新批量 PR,并为主要更新手动审查。我们的 Renovate 创建了太多 PR。分析我们的依赖关系并创建分组规则以减少 PR 体积 70%。 为我们的 Python 项目设置 Renovate,使用私有 PyPI 注册表 pypi.internal.example.com。 工作原理 步骤 1:依赖关系分析 扫描存储库以识别所有依赖关系生态系统: # 找到所有依赖关系文件(npm、Go、Python、Ruby、Java、Rust、PHP、.NET、Docker、Terraform、CI、Helm) find . -maxdepth 5 \( -name "package.json" -o -name "go.mod" -o -name "requirements.txt" \ -o -name "pyproject.toml" -o -name "Gemfile" -o -name "pom.xml" -o -name "Cargo.toml" \ -o -name "Dockerfile" -o -name ".tf" -o -name "Chart.yaml" \ \) -not -path "/node_modules/" -not -path "/.git/*" 2>/dev/null # 计数每个生态系统的依赖关系 jq '.dependencies + .devDependencies | length' package.json 2>/dev/null 为每个生态系统构建依赖关系清单:文件计数、依赖关系计数、锁定文件存在、私有注册表使用情况。 步骤 2:分组策略设计 设计分组规则以减少 PR 体积。目标:相关更新在单个 PR 中,而不是每周 50 个单独的 PR。 分析包 org/范围分布并识别逻辑组(lint 工具、测试框架、构建工具、AWS SDK、类型定义)。 生成分组规则: { "packageRules": [ // 组 1:Lint 和格式化工具 { "groupName": "linting and formatting", "matchPackagePatterns": ["eslint", "prettier", "stylelint", "biome"], "matchUpdateTypes": ["minor", "patch"], "automerge": true }, // 组 2:测试框架 { "groupName": "test frameworks", "matchPackagePatterns": ["jest", "vitest", "mocha", "chai", "testing-library", "playwright", "cypress"], "matchUpdateTypes": ["minor", "patch"], "automerge": true }, // 组 3:构建工具 { "groupName": "build tools", "matchPackagePatterns": ["webpack", "vite", "rollup", "esbuild", "swc", "tsup", "turbo"], "matchUpdateTypes": ["minor", "patch"] }, // 组 4:AWS SDK(通常有 20+ 包) { "groupName": "aws sdk", "matchPackagePatterns": ["^@aws-sdk/"], "automerge": true }, // 组 5:类型定义 { "groupName": "type definitions", "matchPackagePatterns": ["^@types/"], "automerge": true }, // 组 6:同一组织的包 { "groupName": "{{packagePatterns}} packages", "matchPackagePatterns": ["^@your-org/"], "automerge": true }, // 组 7:Terraform 提供程序 { "groupName": "terraform providers", "matchManagers": ["terraform"], "matchDepTypes": ["provider"], "matchUpdateTypes": ["minor", "patch"] }, // 组 8:Docker 基础镜像(非主要) { "groupName": "docker base images", "matchManagers": ["dockerfile"], "matchUpdateTypes": ["minor", "patch", "digest"] }, // 组 9:GitHub Actions { "groupName": "github actions", "matchManagers": ["github-actions"], "matchUpdateTypes": ["minor", "patch"], "automerge": true } ] } 步骤 3:自动合并策略 定义可以安全自动合并的内容,基于项目的 CI 流水线质量和测试覆盖率。 检查 CI 配置文件和测试框架以评估自动合并安全性: 自动合并等级: { "packageRules": [ // 等级 1:安全自动合并(仅开发、测试良好的生态系统) { "matchDepTypes": ["devDependencies"], "matchUpdateTypes": ["minor", "patch"], "automerge": true },