技术问询:Renovate是否支持按Registry URL分组依赖项?
按Registry URL分组Renovate依赖项PR的实现问题
问题描述
是否可以按Registry URL对依赖项进行分组,从而为每个仓库地址创建单独的PR?例如,我有2个来自registry.npmjs.org的npm包,以及2个来自my.registry.example/path/to/repository的npm包,希望Renovate生成2个PR,分别对应公共仓库和私有仓库。
已尝试操作
查阅官方文档后,未找到类似matchRegistryURL的匹配规则,无法在Renovate配置的packageRules对象中实现按Registry URL分组的功能。尝试过以下未文档化操作,但均被Renovate忽略:
- 在
hostRules中添加groupName字段 - 在
packageRules中添加matchHost字段
临时解决方案
目前找到两个可行但不够理想的解决办法:
- 运行两次Renovate,分别使用禁用公共仓库或私有仓库主机的配置
- 为私有包强制统一命名规范,通过
matchPackageNames或matchPackagePatterns规则进行分组匹配
疑问解答
1. 是否存在简洁的实现方式而我未发现?
目前Renovate官方并未提供直接按Registry URL分组依赖项的内置规则,也没有公开的有效未文档化方法能实现该需求,所以暂时没有更简洁的内置方案。
2. 是否因合理原因导致该功能不可用?
按Registry URL分组并非毫无意义,比如公共包和私有包的审批流程不同时,这个需求就很实用。Renovate目前未支持该功能,可能的原因包括:
- 不同包管理器的Registry URL解析逻辑存在差异,实现起来复杂度较高
- 该需求的用户群体规模尚未达到官方优先开发的级别
- 官方倾向于通过现有规则(如包名匹配)覆盖大部分分组场景
内容的提问来源于stack exchange,提问作者EdBru
相关产品推荐
相关产品推荐

