如何让Dependabot分别生成主版本与小版本/补丁版本PR?
解决Dependabot主版本与小版本/补丁版本分开生成PR的问题
你遇到的错误是因为Dependabot要求package-ecosystem、directory、target-branch的组合必须唯一,不能为同一个生态系统(比如github-actions)重复配置相同目录的更新规则。
正确的实现方式是在同一个生态系统的配置块内,通过分组(groups)功能区分主版本和小版本/补丁版本的更新,具体配置如下:
version: 2 updates: # GitHub Actions - package-ecosystem: "github-actions" directory: "/" schedule: interval: "weekly" allow: - dependency-type: "all" groups: # 小版本/补丁版本合并为一个PR gh-actions-minor-patch: patterns: - "*" update-types: - "version-update:semver-minor" - "version-update:semver-patch" # 主版本单独生成PR(每个主版本更新一个PR,也可调整patterns合并) gh-actions-major: patterns: - "*" update-types: - "version-update:semver-major" # Composer - package-ecosystem: "composer" directory: "/" schedule: interval: "weekly" allow: - dependency-type: "all" groups: composer-minor-patch: patterns: - "*" update-types: - "version-update:semver-minor" - "version-update:semver-patch" composer-major: patterns: - "*" update-types: - "version-update:semver-major" # NPM - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" allow: - dependency-type: "all" groups: npm-minor-patch: patterns: - "*" update-types: - "version-update:semver-minor" - "version-update:semver-patch" npm-major: patterns: - "*" update-types: - "version-update:semver-major"
配置说明:
- 每个生态系统只保留一个配置块,避免重复组合冲突
allow字段放开所有依赖类型的更新,后续通过groups里的update-types过滤版本类型- 小版本/补丁版本会被合并到同一个PR中
- 主版本更新默认每个包单独生成PR,若想合并所有主版本到一个PR,保持当前
patterns: ["*"]即可
内容的提问来源于stack exchange,提问作者Roboroads
相关产品推荐
相关产品推荐

