恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Renovate Presets 配置预设完全指南:复用、分享与多仓库管理

  • 首页
  • 资讯中心
  • /
  • Renovate Presets 配置预设完全指南:复用、分享与多仓库管理

相关资讯

OpenBMC固件升级实战:BMC/BIOS/CPLD三方联动与回退机制 2026/9/13 3:06:06
gRPC-Go ORCA 负载上报实战:带外(Out-of-Band)与 Per-RPC 指标的完整实现指南 2026/9/13 3:06:06
LED数据手册怎么读?正向电压、热阻与驱动电路设计实战 2026/9/13 3:06:06

最新资讯

Cherry Studio 内置 Agent 的长期记忆机制:深入解析 FACT.md 的设计与实现
WSABuilds 安装排障:修复解压 WSA 压缩包时 “Path is too long“(路径过长)错误
STM32平衡车串级PID控制:倒立摆姿态解算与调参详解
Angular Material 工具栏组件 MatToolbar 完全指南:API 结构、多行模式与源码解析
深度学习面试题背后的三层能力解构
Qwen-Doc:突破大模型长文本处理的关键技术与应用

今日推荐

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

Renovate Presets 配置预设完全指南:复用、分享与多仓库管理

发布时间:2026/9/13 3:06:06
Renovate Presets 配置预设完全指南:复用、分享与多仓库管理 Renovate Presets 配置预设完全指南复用、分享与多仓库管理【免费下载链接】renovateHome of the Renovate CLI: Cross-platform Dependency Automation by Mend.io项目地址: https://gitcode.com/GitHub_Trending/re/renovate导读本指南围绕 Renovate 的核心配置机制——**Presets预设**展开。Presets 是 Renovate 内置或由社区/个人托管的可复用配置片段它们以 JSON、JSON5 或 JSONC 格式存储通过extends数组被引入到任意仓库的 Renovate 配置中。读完本文你将掌握内置预设与自定义预设的引用方式、extends的合并顺序语义、参数化预设与相对预设的底层解析原理以及如何用一个全局预设统一管理成百上千个仓库的依赖更新策略。什么是 Renovate PresetsRenovate presets 是可复用的配置片段本质上就是一个预先写好的 Renovate 配置对象。它们被存储在 JSON、JSON5 或 JSONC 格式的文件中既可以随 Renovate 本体发布内置预设也可以由任何人在自己的代码仓库、Git 平台或 npm 包中托管自定义预设。在源码层面内置预设以 TypeScript 对象形式集中定义在 lib/config/presets/internal/ 目录下。例如config:recommended预设定义在 config.preset.ts它自身又通过extends组合了:dependencyDashboard、:semanticPrefixFixDepsChoreOthers、group:monorepos、workarounds:all等一系列子预设而helpers:pinGitHubActionDigests则定义在 helpers.preset.ts其作用是对action、workflow类型的依赖开启pinDigests: true。为什么应该使用 Presets使用 Presets 的收益非常直接快速建立良好默认配置无需从零手写每一项参数引入config:recommended即可获得官方推荐的基础配置避免重复配置同一套规则只需写一次供所有仓库复用与他人共享配置可以把团队实践、个人偏好封装成预设发布出去复用别人的现成配置直接以第三方预设为基底再叠加自己的规则也可以在其基础上做增量扩展。如何使用 Presetsextends 数组使用预设的方式极其简单把预设名称写进 Renovate 配置文件renovate.json的extends数组即可。假设你已经在使用config:recommended预设现在想把 GitHub Action 的 digestcommit SHA固定下来。你不用自己编写packageRules只需搜索文档找到helpers:pinGitHubActionDigests预设然后将其追加到extends数组中{ extends: [config:recommended, helpers:pinGitHubActionDigests] }运行后Renovate 会同时遵循config:recommended的全部规则以及helpers:pinGitHubActionDigests中“为 GitHub Action 类依赖固定 digest”的规则。预设顺序决定冲突胜负!!! tip 如果多个预设之间存在逻辑冲突extends数组中越靠后的预设优先级越高“后者胜出”。这一语义在源码中得到了严格实现resolveConfigPresets会从左到右依次遍历extends数组逐个取出预设并递归解析再通过mergeChildConfig逐层合并后合并的配置会覆盖先前的同名配置项。核心逻辑位于 lib/config/presets/index.ts。合并完成后配置自身的extends、ignorePresets字段会被删除index.ts#L306-L307最终得到一份展开后的完整配置。用全局预设统一管理多仓库如果你同时维护大量仓库的 Renovate 配置官方推荐的实践是创建一份全局预设配置集中承载你希望所有仓库遵守的规则在需要套用该基线的每个仓库的extends中引用这份全局预设。这样当你想调整全局策略例如把更新频率从每周改为每月时只需要编辑全局预设文件这一处所有引用了它的仓库在下次运行时都会自动生效免去了逐仓修改的重复劳动。Presets 是模块化的Preset 配置具有完全的模块化特性一个预设可以很小例如只定义一条packageRules也可以很大例如聚合了几十个子规则一个预设可以继承其他预设即在自己的配置中继续使用extends引用别的预设形成预设的嵌套组合。例如 helpers.preset.ts 中的pinGitHubActionDigestsToSemver就同时做了两件事先extends: [helpers:pinGitHubActionDigests]继承“固定 digest”的行为再追加自己的extractVersion与versioning规则将已固定的 digest 进一步转换为 SemVer 版本形式。config:best-practices更是把config:recommended、docker:pinDigests、helpers:pinGitHubActionDigests、security:minimumReleaseAgeNpm等一串预设组合成了一个“全家桶”见 config.preset.ts#L4-L17。内置预设一览Renovate 随发布携带了大量内置预设它们全部集中在 lib/config/presets/internal/ 目录下按命名空间划分为多个“包”groups注册逻辑见 internal/index.ts命名空间源码文件典型预设示例default可省略命名空间直接写:名称default.preset.ts:dependencyDashboard、:automergeMinor、:assignee(...)configconfig.preset.tsconfig:recommended、config:js-app、config:best-practicesgroupgroup.preset.tsgroup:monorepos、group:recommendedhelpershelpers.preset.tshelpers:pinGitHubActionDigestssecuritysecurity.preset.tssecurity:minimumReleaseAgeNpmscheduleschedule.preset.tsschedule:monthly、schedule:weeklyworkaroundsworkarounds.preset.tsworkarounds:allreplacementsreplacements.preset.tsreplacements:allmonorepomonorepos.preset.tsmonorepo:angular、monorepo:reactpackagespackages.preset.tspackages:linters、packages:testdockerdocker.preset.tsdocker:pinDigestsmergeConfidencemerge-confidence.preset.tsmergeConfidence:age-confidence-badgespreview/global/customManagers/abandonments对应目录下同名文件—default命名空间是一个特例internal/index.ts中computeInternalPresets会为它同时生成:name和default:name两种写法index.ts#L45-L61因此:dependencyDashboard与default:dependencyDashboard等价。使用内置预设的方式与自定义预设完全一致把它加入配置文件如renovate.json的extends数组即可。贡献一个新的内置预设如果你拥有一份可能帮助到其他人的 Renovate 配置欢迎将其收录进内置预设。具体的贡献流程包括预设命名规范、文件组织方式、测试要求等请参阅 docs/usage/config-presets.md 中的 “Contributing to presets” 章节仓库内现有的每组预设也都配有对应的测试文件如 group.spec.ts、workarounds.spec.ts新增预设需保证相关测试通过。深入源码Presets 的解析流程要真正用好 Presets理解其底层解析机制很有帮助。整个流程由 lib/config/presets/index.ts 中的两个核心函数驱动1.parsePresetparse.ts——判断预设来源它会根据字符串前缀判定该预设属于哪一类“源”presetSourcegithub、gitlab、gitea、forgejo从对应 Git 平台的指定仓库读取local从当前 Renovate 运行的平台仓库内读取local/index.ts 会按当前platform分派给 GitHub/GitLab/Gitea/Forgejo 等解析器Azure、Bitbucket 等平台则走本地文件解析npmscope/...从 npm 上的 scoped 包读取以./、../、/开头相对预设引用合法的 HTTP(S) URL从 HTTP 端点读取http/index.ts以:开头或属于config:、group:等已知命名空间内置预设internal裸名称如some-preset默认走 npm并自动补全为renovate-config-some-preset包名。2.resolveConfigPresetsindex.ts#L233-L383——递归解析与合并它从左到右遍历extends对每个预设递归调用自身把嵌套的预设逐层展开最后用mergeChildConfig合并同时处理ignorePresets跳过逻辑shouldResolvePreset与overrideDescription覆盖逻辑。解析结果中还会通过visitedPresets记录哪些预设被合并、哪些被跳过便于排查配置来源。参数化预设动态生成配置extends中可以使用带参数的预设语法为presetName(...)。参数会被replaceArgsindex.ts#L61-L111注入到预设内部的{{arg0}}、{{arg1}}等占位符中。例如内置预设:assignee({{arg0}})的定义就是{ assignees: [{{arg0}}] }default.preset.ts#L17-L20当你写:assignee(john)时john就会替换掉{{arg0}}成为 PR 的默认分配人。{{args}}则持有参数的原始字符串。相对预设引用在仓库托管的预设内部extends中可以写./子目录/预设名、../或/根目录预设这样的相对引用。它们会由 relative.ts 的canonicalizeRelativePresets在解析阶段被重写为绝对预设字符串——继承父预设的来源、仓库和 tag例如githubsome/repo#v2.0.0内的./system/registries会被解析为githubsome/repo//system/registries#v2.0.0relative.ts#L21-L50。需要注意的是相对引用不能越过仓库边界../超出仓库根目录会报错且只允许出现在仓库托管的预设中不能用在仓库自身的配置或globalExtends里。预设缓存为避免重复拉取远程预设解析结果会被缓存内存缓存memCache默认启用若开启了presetCachePersistence全局配置项则改用持久化包缓存并以 15 分钟为有效期写入index.ts#L144-L175。这也意味着修改远程预设后改动可能需等待缓存过期才可见。已废弃预设的自动迁移为保证向后兼容removedPresets映射common.ts记录了历史预设的迁移路径getPreset遇到旧名称时会自动重定向到新预设映射值为字符串或直接返回空配置映射值为null。例如:base→config:recommended、:masterIssue→:dependencyDashboard、npm:unpublishSafe→security:minimumReleaseAgeNpm。如果你还在使用这些旧名称配置依然能工作但建议尽快迁移到新写法。总结一句话回顾 Presets 的核心用法找预设浏览内置预设源码见 lib/config/presets/internal/完整清单亦可查阅 docs/usage/config-presets.md或使用社区托管的自定义预设用预设把预设名写进renovate.json的extends数组管多仓创建一份全局预设配置文件让所有仓库统一extends它实现“改一处、处处生效”记顺序extends数组中的顺序就是优先级——逻辑冲突时最后一个预设胜出。【免费下载链接】renovateHome of the Renovate CLI: Cross-platform Dependency Automation by Mend.io项目地址: https://gitcode.com/GitHub_Trending/re/renovate创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号