本文提供有关dependabot.yml文件中可用配置选项的参考信息。 使用这些选项自定义 Dependabot 如何监视包生态系统、安排更新和创建拉取请求。 有关dependabot.yml文件及其工作原理的概述,请参阅关于 dependabot.yml 文件。
标有 图标的所有选项也会更改 Dependabot 创建安全更新拉取请求的方式,除非使用 target-branch。
必需的密钥
| Key | 位置 | 目的 |
|---|---|---|
version | 顶层 |
Dependabot 要使用的配置语法。 始终:`2`。|
| updates | 顶层| 定义每个 package-ecosystem 以进行更新的部分。|
| package-ecosystem | (位于 updates 下面) | 定义要更新的包管理器。 |
|
directories 或 directory | 在每个 package-ecosystem 项下 | 定义要更新的清单文件或其他定义文件的位置。 |
| schedule.interval | 在每个 package-ecosystem 项下 | 定义是否查找版本更新:daily、weekly 或 monthly。 |
(可选)你还可以包含一个顶层 registries 密钥,以定义专用注册表的访问详情,请参阅顶层 registries 密钥。
# Basic `dependabot.yml` file with
# minimum configuration for two package managers
version: 2
updates:
# Enable version updates for npm
- package-ecosystem: "npm"
# Look for `package.json` and `lock` files in the `root` directory
directory: "/"
# Check the npm registry for updates every day (weekdays)
schedule:
interval: "daily"
# Enable version updates for Docker
- package-ecosystem: "docker"
# Look for a `Dockerfile` in the `root` directory
directory: "/"
# Check for updates once a week
schedule:
interval: "weekly"
# Basic `dependabot.yml` file with
# minimum configuration for two package managers
version: 2
updates:
# Enable version updates for npm
- package-ecosystem: "npm"
# Look for `package.json` and `lock` files in the `root` directory
directory: "/"
# Check the npm registry for updates every day (weekdays)
schedule:
interval: "daily"
# Enable version updates for Docker
- package-ecosystem: "docker"
# Look for a `Dockerfile` in the `root` directory
directory: "/"
# Check for updates once a week
schedule:
interval: "weekly"
要查看关于
`allow`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
用于精确定义要为包生态系统维护的依赖项。 通常与 ignore 选项配合使用。 有关示例,请参阅“控制 Dependabot 更新的依赖项”。
Dependabot 默认行为:
* 清单中显式定义的所有依赖项都由版本更新保持最新。 * 在具有易受攻击依赖项的锁文件中定义的所有依赖项都由安全更新更新。
当allow被指定时,Dependabot使用以下过程:
-
检查所有明确允许的依赖项。
-
然后筛选掉所有被忽略的依赖项或版本。
如果某个依赖项同时匹配
allow和ignore语句,则会被忽略。
| 参数 | 目的 |
|---|---|
dependency-name | 允许名称匹配的依赖项进行更新,可选使用 * 匹配零个或多个字符。 |
dependency-type | 允许特定类型的依赖项进行更新。 |
`dependency-name`(`allow`)
对于大多数包管理器,应定义一个值,使其与锁定文件或清单文件中指定的依赖项名称匹配。 少数系统有更复杂的要求。
| 程序包管理器 | 所需格式 | Example |
|---|---|---|
| Gradle 和 Maven | groupId:artifactId | org.kohsuke:github-api |
| 用于映像标签的 Docker | 存储库的全名 | 对于 <account ID>.dkr.ecr.us-west-2.amazonaws.com/base/foo/bar/ruby:3.1.0-focal-jemalloc 的映像标签,请使用 base/foo/bar/ruby。 |
`dependency-type`(`allow`)
| 依赖项类型 | 支持的包管理器 | 允许更新 |
|---|---|---|
direct | All | 所有明确定义的依赖项。 |
indirect |
`bundler`、、`pip``composer`、`cargo`、`gomod`、`uv` | 直接依赖项的依赖项(也称为子依赖项或传递依赖项)。|
| all | All | 所有明确定义的依赖项。 对于bundler、pip、composer、cargo、gomod、uv,以及直接依赖项的依赖项。|
| production |
bundler、、composer``mix、maven、npm、、pip( uv 不是所有经理) | 仅适用于包管理器定义为生产依赖项的依赖项。 |
| development|
bundler、、composer``mix、maven、npm、、pip( uv 不是所有经理) | 仅适用于包管理器定义为开发依赖项的依赖项。 |
`assignees`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
为针对包生态系统提出的所有所有拉取请求指定单个代理人。 有关示例,请参阅“自定义 Dependabot 拉取请求以适应你的流程”。
Dependabot 默认行为:
- 创建的拉取请求不含任何代理人。
当定义 assignees 时:
-
<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-versions" aria-label="versions" role="img"><path d="M7.75 14A1.75 1.75 0 0 1 6 12.25v-8.5C6 2.784 6.784 2 7.75 2h6.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 14Zm-.25-1.75c0 .138.112.25.25.25h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25h-6.5a.25.25 0 0 0-.25.25ZM4.9 3.508a.75.75 0 0 1-.274 1.025.249.249 0 0 0-.126.217v6.5c0 .09.048.173.126.217a.75.75 0 0 1-.752 1.298A1.75 1.75 0 0 1 3 11.25v-6.5c0-.649.353-1.214.874-1.516a.75.75 0 0 1 1.025.274ZM1.625 5.533h.001a.249.249 0 0 0-.126.217v4.5c0 .09.048.173.126.217a.75.75 0 0 1-.752 1.298A1.748 1.748 0 0 1 0 10.25v-4.5a1.748 1.748 0 0 1 .873-1.516.75.75 0 1 1 .752 1.299Z"></path></svg> 所有版本更新的拉取请求都由指定的指派者创建。 -
<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield-check" aria-label="shield-check" role="img"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg> 所有有关安全更新的拉取请求都会使用所选的被分配者创建,除非`target-branch`定义了对非默认分支的更新。
代理人必须具有对仓库的写入访问权限。 对于组织拥有的存储库,具有读取权限的组织成员也是有效的代理人。
`commit-message`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
定义提交消息的格式。 由于拉取请求的标题基于提交消息编写,因此此设置也会影响拉取请求的标题。 有关示例,请参阅“自定义 Dependabot 拉取请求以适应你的流程”。
Dependabot 默认行为:
- 提交消息遵循与存储库中检测到的模式类似的模式。
当定义 commit-message 时:
-
<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-versions" aria-label="versions" role="img"><path d="M7.75 14A1.75 1.75 0 0 1 6 12.25v-8.5C6 2.784 6.784 2 7.75 2h6.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 14Zm-.25-1.75c0 .138.112.25.25.25h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25h-6.5a.25.25 0 0 0-.25.25ZM4.9 3.508a.75.75 0 0 1-.274 1.025.249.249 0 0 0-.126.217v6.5c0 .09.048.173.126.217a.75.75 0 0 1-.752 1.298A1.75 1.75 0 0 1 3 11.25v-6.5c0-.649.353-1.214.874-1.516a.75.75 0 0 1 1.025.274ZM1.625 5.533h.001a.249.249 0 0 0-.126.217v4.5c0 .09.048.173.126.217a.75.75 0 0 1-.752 1.298A1.748 1.748 0 0 1 0 10.25v-4.5a1.748 1.748 0 0 1 .873-1.516.75.75 0 1 1 .752 1.299Z"></path></svg> 所有提交消息都遵循定义的模式。 -
<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield-check" aria-label="shield-check" role="img"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg> 所有提交消息都遵循定义的模式,除非 `target-branch` 定义对非默认分支的更新。
| 参数 | 目的 |
|---|---|
prefix | 为所有提交消息和拉取请求标题定义前缀。 |
prefix-development | 在受支持的系统上,为更新“开发依赖项组”中依赖项的提交定义不同的前缀。 |
include | 在提交信息前缀后面添加附加信息。 |
提示
当为分组更新提出拉取请求时,分支名称和拉取请求标题由组 IDENTIFIER 定义,请参阅 groups。
prefix
- 用于所有提交消息,除非还定义了
prefix-development。 - 值最多可包含 50 个字符。
-
Dependabot 当值以字母、数字、右括号或右括号结尾时,在添加主提交消息之前,在前缀后面插入冒号。 - 以空格字符结束该值,可避免添加冒号。
prefix-development
支持:bundler、、composer、mix、maven``npm、、 pip和uv。
- 仅用于更新“开发依赖项组”中依赖项的提交消息。
- 否则,该参数的行为与
prefix参数完全相同。
include
- 仅支持值
scope - 当定义时,任何前缀将后跟提交中更新的依赖项类型:
deps或deps-dev。
`cooldown`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
定义依赖项更新的冷却期,允许更新延迟指定天数****。 此选项 cooldown 仅适用于 版本 更新,而不适用于 安全更新 。
此功能使用户能够自定义生成新版本更新的频率 Dependabot ,从而更好地控制更新频率。 有关示例,请参阅“优化 Dependabot 版本更新的拉取请求创建”。
Dependabot 默认行为:
- 根据通过
schedule.interval定义的计划更新检查更新。 - 立即将所有新版本纳入更新考虑范围****。
当定义 cooldown 时:
-
Dependabot 根据定义的 `schedule.interval` 设置检查更新。 -
Dependabot 检查是否有任何冷却设置。 - 如果依赖项的新版本在其冷却期内, Dependabot 则跳过更新该依赖项的版本。
- 没有冷却期的依赖项,或已过冷却期的依赖项,会根据已配置的
versioning-strategy设置更新至最新版本。 - 在依赖项的冷却结束之后, Dependabot 按照定义的
dependabot.yml标准更新策略恢复更新依赖项。
**
`cooldown` 的配置**
可以使用以下选项指定冷却的持续时间。
| 参数 | Description |
|---|---|
default-days | 无特定规则的依赖项的默认冷却期(可选)。 |
semver-major-days | 主要版本更新的冷却期(可选,仅适用于支持 SemVer 的包管理器)****。 |
semver-minor-days | 次要版本更新的冷却期(可选,仅适用于支持 SemVer 的包管理器)****。 |
semver-patch-days | 补丁版本更新的冷却期(可选,仅适用于支持 SemVer 的包管理器)****。 |
include | 需要应用冷却期的依赖项的列表(最多 150 项)********。 支持使用通配符 (*)。 |
exclude | 排除在冷却期之外的依赖项列表(最多 150 项)********。 支持使用通配符 (*)。 |
下表显示了支持 SemVer 的包管理器。
| 程序包管理器 | 支持 SemVer |
|---|---|
| Bundler | |
| Bun | |
| Cargo | |
| Composer | |
| DevContainer | |
| Docker | |
| Docker Compose | |
| Dotnet SDK | |
| Elm | |
| GitHub Actions | |
| Gitsubmodule | |
| Gomod(Go 模板) | |
| Gradle | |
| Helm | |
| 十六进制 | |
| Maven | |
| NPM 和 Yarn | |
| NuGet | |
| Pip | |
| Pub | |
| Swift | |
| Terraform | |
| UV |
注意
- 如果未定义
semver-major-days、semver-minor-days或semver-patch-days,则default-days设置优先于基于冷却期的更新。
`exclude` 列表始终优先于 `include` 列表。 如果在两个列表同时指定了某个依赖项,则该依赖项将排除在冷却期之外,并将立即更新****。
`directories` 或 `directory`<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg><svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
**必需选项**。 用于定义每个包管理器的包清单位置(例如 _package.json_ 或 _Gemfile_)。 如果没有此信息 Dependabot ,则无法为版本更新创建拉取请求。 有关示例,请参阅[针对清单文件定义多个位置](/code-security/dependabot/dependabot-version-updates/controlling-dependencies-updated#defining-multiple-locations-for-manifest-files)。
-
使用
directory定义单个清单目录。 -
使用
directories定义多个清单目录的列表。 -
为大多数包管理器定义相对于仓库根目录的目录。
-
对于 GitHub Actions,请使用值
/。 Dependabot 将搜索/.github/workflows目录以及action.yml/action.yaml根目录中的文件。
如果需要在配置文件中使用多个块来定义生态系统的单个目标分支的更新,必须确保所有值都是唯一的,并且定义的目录没有重叠。
注意
`directories` 键支持通配和通配符 `*`。
`directory` 键不支持这些功能。
`enable-beta-ecosystems`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates only" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
当前未使用。
`groups`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
定义规则以创建包管理器管理的一组或多组依赖项,以将更新分组到针对性更弱的拉取请求中。 有关示例,请参阅“优化 Dependabot 版本更新的拉取请求创建”。
Dependabot 默认行为:
- 针对版本更新和安全更新,为每个需要更新到较新版本的依赖项打开单个拉取请求。
当使用 groups 定义规则时:
- 所有匹配某一规则的依赖项更新会合并到同一个拉取请求中。
- 如果依赖项与多个规则匹配,则它包含在匹配的第一个组中。
- 所有与规则不匹配的过时依赖项将在单独的拉取请求中更新。
| 参数 | 目的 |
|---|---|
IDENTIFIER | 定义组的标识符,用于分支名称和拉取请求标题。 该名称必须以字母开头,可包含字母、竖线 |、字下线 _ 或短划线 -。 |
applies-to | 指定组适用的更新类型。 未定义时,默认为版本更新。 支持的值:version-updates 或 security-updates。 |
dependency-type | 将组限制为一个类型。 支持的值:development 或 production。 |
exclude-patterns | 定义一个或多个模式,以从组中排除依赖项。 |
patterns | 定义一个或多个模式,以包含名称匹配的依赖项。 |
update-types | 将组限制为一个或多个语义化版本控制级别。 支持的值:minor、patch和 major。 |
`dependency-type`(`groups`)
受以下类型支持:bundler、composer、mix、maven、npm 和 pip。
默认情况下,一个组将包含所有类型的依赖项。
- 使用
development以仅包含“开发依赖项组”中的依赖项。 - 使用
production以仅包含“生产依赖项组”中的依赖项。
`patterns` 和 `exclude-patterns`(`groups`)
这两个选项均支持使用 * 作为通配符来定义依赖项名称匹配。 如果某个依赖项同时匹配包含模式和排除模式,则会从组中排除。
`update-types`(`groups`)
默认情况下,组将包含所有语义化版本 (SemVer) 的更新。 SemVer 是定义软件包版本的公认标准,格式为 x.y.z。 Dependabot 假定此格式的版本始终为 major.minor.patch。
- 使用
patch以包含补丁发布。 - 使用
minor以包含次要发布。 - 使用
major以包含主要发布。
有关示例,请参阅“控制 Dependabot 更新的依赖项”。
`ignore`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
与 allow 选项配合使用,以精确定义要为包生态系统维护的依赖项。
Dependabot 检查所有允许的依赖项,然后筛选掉任何忽略的依赖项或版本。 因此,同时被允许和忽略规则匹配的依赖项将被忽略。 有关示例,请参阅“控制 Dependabot 更新的依赖项”。
Dependabot 默认行为:
* 清单中显式定义的所有依赖项都由版本更新保持最新。 * 在具有易受攻击依赖项的锁文件中定义的所有依赖项都由安全更新更新。
使用ignore时Dependabot使用以下过程:
-
检查所有明确允许的依赖项。
-
然后筛选掉所有被忽略的依赖项或版本。
如果某个依赖项同时匹配
allow和ignore语句,则会被忽略。
| 参数 | 目的 |
|---|---|
dependency-name | 忽略名称匹配的依赖项的更新,可选使用 * 匹配零个或多个字符。 |
versions | 忽略特定版本或版本范围。 |
update-types | 忽略一个或多个语义化版本控制级别的更新。 支持的值:version-update:semver-minor、version-update:semver-patch和 version-update:semver-major。 |
`dependency-name`(`ignore`)
对于大多数包管理器,应定义一个值,使其与锁定文件或清单文件中指定的依赖项名称匹配。 少数系统有更复杂的要求。
| 程序包管理器 | 所需格式 | Example |
|---|---|---|
| Gradle 和 Maven | groupId:artifactId | org.kohsuke:github-api |
| 用于映像标签的 Docker | 存储库的全名 | 对于 <account ID>.dkr.ecr.us-west-2.amazonaws.com/base/foo/bar/ruby:3.1.0-focal-jemalloc 的映像标签,请使用 base/foo/bar/ruby。 |
`versions`(`ignore`)
用于忽略特定版本或版本范围。 如果要定义范围,请使用包管理器的标准模式。 例如:
- npm:使用
^1.0.0 - Bundler:使用
~> 2.0 - Docker:使用 Bundler 版本语法
- NuGet:使用
7.* - Maven:使用
[1.4,)
有关示例,请参阅“控制 Dependabot 更新的依赖项”。
`update-types`(`ignore`)
指定要忽略的语义化版本 (SemVer)。 SemVer 是定义软件包版本的公认标准,格式为 x.y.z。
Dependabot 假定以这种形式的版本始终为 major.minor.patch。
- 使用
version-update:semver-patch以包含补丁发布。 - 使用
version-update:semver-minor以包含次要发布。 - 使用
version-update:semver-major以包含主要发布。
`insecure-external-code-execution`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
受以下类型支持:bundler、mix 和 pip。
允许 Dependabot 在更新期间在清单中执行外部代码。 有关示例,请参阅允许外部代码执行。
Dependabot 默认行为:
- 授予 Dependabot 对一个或多个注册表的访问权限时,会自动禁用外部代码执行,以保护代码免受包泄露的影响。
- 若无法执行代码,版本更新可能会失败。
当你允许 insecure-external-code-execution 时:
-
Dependabot 将在清单中执行代码作为版本更新过程的一部分。 - 该代码仅能访问与该
updates设置关联的注册表中的包管理器。 不允许访问顶级registries配置中定义的任何注册表。 - 这应能使更新成功,但也可能允许受损包窃取凭据或访问已配置的注册表。
支持的值:allow。
`labels`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
为针对包管理器提出的所有拉取请求指定自定义标签。 有关示例,请参阅“自定义 Dependabot 拉取请求以适应你的流程”。
Dependabot 默认行为:
- 所有拉取请求均带有
dependencies标签。 - 如果定义了多个包管理器,每个拉取请求会额外添加一个生态系统或语言标签。 例如:
java用于 Gradle 更新,submodules用于 Git 子模块更新。 - 如果存储库中存在语义版本(SemVer)标签,它们将自动应用以指示版本更新的类型(
major或minor``patch)。 -
Dependabot 根据需要在存储库中自动创建这些默认标签。
当定义 labels 时:
- 指定的标签将替代默认标签。
- 除定义的任何自定义标签外,SemVer 标签(如果存在于存储库中)仍将应用。
- 如果其中任何标签未在仓库中定义,将被忽略。
- 可使用
labels: [ ]禁用所有标签(包括默认标签)。
设置此选项还会影响此包管理器的清单文件安全更新拉取请求,除非使用 target-branch 检查非默认分支上的版本更新。
`milestone`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
将针对包管理器提出的所有拉取请求与里程碑关联。 有关示例,请参阅“自定义 Dependabot 拉取请求以适应你的流程”。
Dependabot 默认行为:
- 不使用任何里程碑。
当定义 milestone 时:
- 该包管理器的所有拉取请求都会添加到该里程碑。
支持的值:里程碑的数字标识符。
提示
如果查看里程碑,则 milestone 之后的页面 URL 的最后一部分是标识符。 有关示例 https://github.com/<org>/<repo>/milestone/3,请参阅 查看里程碑的进度。
`open-pull-requests-limit`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates only" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
更改任何时候可打开的版本更新拉取请求的最大数量限制。
Dependabot 默认行为:
- 如果有五个版本更新拉取请求处于打开状态,在其中部分请求合并或关闭前,不会再提出新的拉取请求。
- 安全更新有单独的内部限制,最多可打开十个拉取请求,该限制无法更改。
当定义 open-pull-requests-limit 时:
-
Dependabot 将拉取请求向上拉取到定义的整数值。 可以设置一个大值,以有效取消打开的拉取请求限制。 - 可以通过将此选项设置为零来暂时禁用包管理器的版本更新,请参阅 “禁用 Dependabot version updates”。
`package-ecosystem`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates only" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
**必需选项。** 为每个需要监视新版本的包管理器定义一个`package-ecosystem`元素。 存储库还必须包含每个包管理器的依赖项清单或锁定文件,请参阅[示例 `dependabot.yml` 文件](/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates#example-dependabotyml-file)。
| 程序包管理器 | YAML 值 | 支持的版本 |
|---|---|---|
| Bun | bun | >=v1.2.5 |
| Bundler | bundler |
v2 |
| Cargo | cargo | v1 |
| Composer | composer | v2 |
| |
| 开发容器 | devcontainers | 不適用 |
| Docker | docker | v1 |
| |
| Docker Compose | docker-compose | V2 和 V3 |
| |
| |
| .NET SDK | dotnet-sdk | >=.NET Core 3.1 |
| |
| |
| Helm 图表 | helm | v3 |
| |
| Hex | mix | v1 |
| |
| elm-package | elm | v0.19 |
| git 子模块 | gitsubmodule | 不適用 |
| GitHub Actions | github-actions | 不適用 |
| Go 模块 | gomod | v1 |
| Gradle | gradle | 不適用 |
| Maven | maven | 不適用 |
| |
| npm | npm | v7、v8、v9、v10 |
| NuGet | nuget |
<=6.12.0 |
| |
| pip| pip | v24.2 |
| pip-compile | pip | 7.4.1 |
| pipenv | pip | <= 2024.4.1 |
| pnpm | npm | v7、v8
v9、v10(仅版本更新) |
| poetry | pip | v2 |
| |
| 酒馆 | pub | v2 |
| |
| Swift | swift | v5 |
| Terraform | terraform | >= 0.13,<= 1.10.x |
| |
| uv | uv | v0 |
| |
| |
| yarn | npm | v1、v2、v3、v4 |
`pull-request-branch-name.separator`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
指定生成分支名称时使用的分隔符。 有关示例,请参阅“自定义 Dependabot 拉取请求以适应你的流程”。
Dependabot 默认行为:
- 生成以下格式的分支名称:
dependabot/PACKAGE_MANAGER/DEPENDENCY
当定义 pull-request-branch-name.separator 时:
- 使用指定字符替代
/。
支持的值:"-"、_、/
提示
连字符必须转义,以免被解释为开始空 YAML 列表。
`rebase-strategy`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
禁用对由 Dependabot 提出的拉取请求进行自动基底化。
Dependabot 默认行为是在 Dependabot 检测到对版本或安全更新的拉取请求有任何更改时,会对打开的拉取请求进行重新变基。
Dependabot 检查以下情况下的更改:
- 你的计划运行以检查版本更新。
- 您重新打开了已关闭的Dependabot拉取请求。
- 在
target-branch配置文件中更改Dependabot的值,请参阅target-branch。 - 由于最近推送到目标分支,Dependabot 拉取请求发生了冲突。
如果 rebase-strategy 设置为 disabled, Dependabot 将停止重新开始拉取请求。
注意
禁用变基前已打开的拉取请求将继续进行变基,直至打开后 30 天。 这会影响所有与目标分支存在冲突的拉取请求以及所有版本更新拉取请求。
`registries`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
配置对专用包注册表的访问以允许 Dependabot 更新更广泛的依赖项,请参阅 为 Dependabot 配置对专用注册表的访问权限 和 针对 Dependabot 的专用注册表配置指南。
`dependabot.yml` 文件中有 2 个位置可以使用 `registries` 密钥:
-
在顶层定义要使用的专用注册表及其访问信息,请参阅 为 Dependabot 配置对专用注册表的访问权限。
-
在
updates块中,可指定每个包管理器应使用的专用注册表。Dependabot 默认行为是仅引发拉取请求,以更新存储在可公开访问的注册表中的依赖项。 Dependabot当配置文件具有顶级`registries`部分(定义对一个或多个专用注册表的访问权限)时,可以将每个`package-ecosystem`注册表配置为使用其中一个或多个专用注册表。
当为包管理器定义 registries 时:
- 会检查为该包管理器指定的每个专用注册表是否有版本更新和安全更新。
-
Dependabot 使用顶级 `registries` 部分中定义的访问详细信息。
支持的值:REGISTRY_NAME 或 "*"
`schedule`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates only" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
**必需选项。** 通过 `interval` 参数定义你配置的每个包管理器检查新版本的频率。 可以选择在Dependabot 检查更新时自定义每日和每周间隔。 有关示例,请参阅“[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/optimizing-pr-creation-version-updates)”。
| 参数 | 目的 |
|---|---|
interval |
**必填。** 为Dependabot定义频率。 |
| day | 为每周间隔指定运行日期。 |
| time | 指定运行时间。 |
| |
| cronjob | 如果间隔类型为 cron,则定义 cron 表达式。 |
| |
| timezone | 指定 time 值的时区。 |
interval
支持的值:daily、、weekly或 monthly``cron
每个包管理器必须定义计划间隔****。
- 使用
daily在每个工作日(周一至周五)运行。 - 使用
weekly每周运行一次,默认在周一。 - 使用
monthly在每月的第一天运行。 - 对基于 cron 表达式的计划选项使用
cron。 请参阅cronjob。
默认情况下, Dependabot 随机分配一个时间以应用配置文件中的所有更新。 可以使用 time 和 timezone 参数为所有间隔设置特定的运行时。
如果使用间隔 cron ,可以使用表达式定义更新时间 cronjob 。
day
支持的值:monday、tuesday、wednesday、thursday、friday、saturday 或 sunday
(可选)为包管理器在一周的特定日期运行每周更新。
time
格式:hh:mm
(可选)为包管理器在一天的特定时间运行所有更新。 默认情况下,时间解释为 UTC。
cronjob
支持的值:采用 cron 语法的有效 cron 表达式或自然语言表达式。
计划任务语法有五个字段,中间用空格分隔,每个字段代表一个时间单位。
┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of the month (1 - 31)
│ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
│ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
│ │ │ │ │
* * * * *
示例:0 9 * * *、every day at 5pm
`0 9 * * *` 等同于“每天上午 9 点”。
`every day at 5pm` 等效于 `0 17 * * *`。
注意
- 必须在参数中
timezone指定时区,而不是在cronjob. - 使用
cronjob间隔需要cron类型计划。
# Basic `dependabot.yml` file for cronjob
version: 2
updates:
# Enable version updates for npm
- package-ecosystem: "npm"
# Look for `package.json` and `lock` files in the `root` directory
directory: "/"
# Check the npm registry for updates based on `cronjob` value
schedule:
interval: "cron"
cronjob: "0 9 * * *"
# Basic `dependabot.yml` file for cronjob
version: 2
updates:
# Enable version updates for npm
- package-ecosystem: "npm"
# Look for `package.json` and `lock` files in the `root` directory
directory: "/"
# Check the npm registry for updates based on `cronjob` value
schedule:
interval: "cron"
cronjob: "0 9 * * *"
timezone
指定 time 值的时区。 默认时区为 UTC。
时区标识符必须与 iana 维护的数据库中的时区匹配,请参阅 tz 数据库时区列表。
`target-branch`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates only" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
定义用于检查版本更新并作为版本更新拉取请求目标的特定分支。 有关示例,请参阅“自定义 Dependabot 拉取请求以适应你的流程”。
Dependabot 默认行为:
* Dependabot 使用存储库的默认分支,请参阅 “关于默认分支”。
当定义 target-branch 时:
- 仅检查目标分支上的清单文件是否有版本更新。
- 会打开针对指定分支的版本更新的所有拉取请求。
- 为此
package-ecosystem定义的选项不再适用于安全更新,因为安全更新始终使用仓库的默认分支。
`exclude-paths`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates only" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
用于指定在扫描清单和依赖项时应忽略的目录和文件 Dependabot 的路径。 当你希望阻止特定位置(例如测试资源、供应商代码或特定文件)的依赖项更新时,此选项非常实用。
Dependabot 默认行为:
- 指定
directory中的所有目录和文件均会包括在更新扫描中,除非通过此选项将其排除。
当定义 exclude-paths 时:
- 在针对给定
package-ecosystem条目的更新扫描期间,所有与指定路径匹配的文件和目录都会被忽略。
| 参数 | 目的 |
|---|---|
exclude-paths | 要忽略的文件或目录的 glob 模式列表。 |
支持 Glob 模式,例如用于递归匹配的 ** 和单段通配符匹配的 *。 模式路径相对于更新配置中指定的 directory。 每个生态系统都可以拥有其自己的 exclude-paths 设置。
Example
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
exclude-paths:
- "src/test/assets"
- "vendor/**"
- "src/*.js"
- "src/test/helper.js"
# Sample patterns that can be used-
# Pattern: docs/*.json
# Matches: docs/foo.json, docs/bar.json
# Pattern: *.lock
# Matches: Gemfile.lock, package.lock, foo.lock (in any directory)
# Pattern: test/**
# Matches: test/foo.rb, test/bar/baz.rb, test/any/depth/file.txt
# Pattern: config/settings.yml
# Matches: config/settings.yml
# Pattern: **/*.md
# Matches: README.md, docs/guide.md, any/depth/file.md
# Pattern: src/*
# Matches: src/main.rb, src/app.js
# Does NOT match: src/utils/helper.rb
# Pattern: hidden/.*
# Matches: hidden/.env, hidden/.secret
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
exclude-paths:
- "src/test/assets"
- "vendor/**"
- "src/*.js"
- "src/test/helper.js"
# Sample patterns that can be used-
# Pattern: docs/*.json
# Matches: docs/foo.json, docs/bar.json
# Pattern: *.lock
# Matches: Gemfile.lock, package.lock, foo.lock (in any directory)
# Pattern: test/**
# Matches: test/foo.rb, test/bar/baz.rb, test/any/depth/file.txt
# Pattern: config/settings.yml
# Matches: config/settings.yml
# Pattern: **/*.md
# Matches: README.md, docs/guide.md, any/depth/file.md
# Pattern: src/*
# Matches: src/main.rb, src/app.js
# Does NOT match: src/utils/helper.rb
# Pattern: hidden/.*
# Matches: hidden/.env, hidden/.secret
在此示例中,扫描更新时将忽略Dependabot目录、src/test/assets目录下的所有文件、直接位于vendor/下的所有 JavaScript 文件,以及特定文件src/和src/test/helper.js。
`vendor`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
受以下类型支持:仅 bundler 和 gomod。
告知 Dependabot 维护供应商的依赖项以及清单文件定义的依赖项。 当你将代码存储在存储库中时,该依赖项被称为“vendored 依赖项”或“缓存依赖项”,请参阅 bundle cache 文档和 go mod vendor 文档。
有关示例,请参阅“控制 Dependabot 更新的依赖项”。
Dependabot 默认行为:
- 仅维护为 Bundler 标识的清单文件和锁定文件中记录的依赖项。
- 提出安全更新和版本更新拉取请求,以更新清单文件和锁定文件中记录的版本号。
- 对于 Go 模块,所有 vendored 依赖项都会被自动识别和维护,如同启用了
vendor一样。
启用 vendor 时:
-
Dependabot 还维护存储在存储库中的 `_vendor/cache_` 目录内的 Bundler 依赖项。 - 拉取请求有时会包含对存储在存储库中的依赖项的更新。
支持的值:true 或 false
`versioning-strategy`
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-versions" aria-label="Version updates" role="img"><path d="M10 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2Zm-.5-2a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H10a.5.5 0 0 0-.5.5ZM6.17 4.165a.75.75 0 0 1-.335 1.006c-.228.114-.295.177-.315.201a.035.035 0 0 0-.008.016.423.423 0 0 0-.012.112v13c0 .07.008.102.012.112a.03.03 0 0 0 .008.016c.02.024.087.087.315.201a.749.749 0 1 1-.67 1.342c-.272-.136-.58-.315-.81-.598C4.1 19.259 4 18.893 4 18.5v-13c0-.393.1-.759.355-1.073.23-.283.538-.462.81-.598a.75.75 0 0 1 1.006.336ZM2.15 5.624a.75.75 0 0 1-.274 1.025c-.15.087-.257.17-.32.245C1.5 6.96 1.5 6.99 1.5 7v10c0 .01 0 .04.056.106.063.074.17.158.32.245a.75.75 0 0 1-.752 1.298C.73 18.421 0 17.907 0 17V7c0-.907.73-1.42 1.124-1.65a.75.75 0 0 1 1.025.274Z"></path></svg>
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24" class="octicon octicon-shield-check" aria-label="Security updates" role="img"><path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path></svg>
支持:bundler、、、cargo、composer``mix、npm、 pip``pub和uv
请确定如何使用Dependabot编辑manifest文件。 有关示例,请参阅“控制 Dependabot 更新的依赖项”。
Dependabot 默认行为:
- 尝试区分应用依赖项和库依赖项。
- 对于应用,始终提高最低版本要求以匹配新版本。 即
increase策略。 - 对于库,尽可能放宽允许的版本要求,以同时包含新旧版本。 即
widen策略。
定义versioning-strategy之后,Dependabot 采用指定的策略。
| 价值 | 行为 |
|---|---|
auto | 默认行为。 |
increase | 始终增加最低版本要求以匹配新版本。 如果范围已存在,通常这只会增加下限。 |
increase-if-necessary | 如果版本要求已经允许新的发布,则保持不变(Dependabot 仍更新已解析的版本)。 否则,扩大该要求。 |
lockfile-only | 仅创建用于更新 lockfiles 的拉取请求。 忽略任何需要包清单更改的新版本。 |
widen | 尽可能放宽允许的版本要求,以包括新旧版本。 通常,这只会增加允许的最大版本要求。 |
例如,如果当前版本为 1.0.0 且当前约束为 ^1.0.0,则不同策略会提出以下更新:
新版本 1.2.0
-
`increase`:新约束 `^1.2.0` -
`increase-if-necessary`:新约束 `^1.0.0` -
`widen`:新约束 `^1.0.0`
新版本 2.0.0
-
`increase`:新约束 `^2.0.0` -
`increase-if-necessary`:新约束 `^2.0.0` -
`widen`:新约束 `>=1.0.0 <3.0.0`
注意
如果使用的包管理器尚不支持配置 versioning-strategy 参数,或者不支持所需的值,则策略代码开放源代码,因此,如果希望特定生态系统支持新策略,则始终欢迎在 https://github.com/dependabot/dependabot-core/ 中提交拉取请求。
版本控制标签
- 代表软件发布生命周期的阶段,例如 alpha、beta 和稳定版本。
- 使发布者能更有效地分发其包。
- 指示版本的稳定性,并告知用户在功能和稳定性方面可预期的内容。
Dependabot 可识别用于不同生态系统的预发行版本、稳定版本的各种版本控制标记以及自定义标记。
`dependabot.yml` 文件不控制用户可使用的版本控制标记,用户可在配置选项中定义,例如 [`ignore`](/code-security/dependabot/working-with-dependabot/dependabot-options-reference#ignore--) 要忽略其更新的受支持的版本控制标记。
支持的版本控制标记
|
包管理器 | YAML 值**** | 支持的标记**** |
示例 |
|---------------------|----------------|--------------------|--------------|
| Maven | maven | alpha, a, beta, b, milestone, m, rc, cr, sp, ga, final, release, snapshot |
[email protected]、[email protected] |
| npm | npm |
alpha、beta、canary、dev、experimental、latest、legacy、next、nightly、rc、release、stable |
lodash@beta、react@latest、express@next |
| pnpm | npm |
alpha、beta、canary、dev、experimental、latest、legacy、next、nightly、rc、release、stable |
[email protected]、react@alpha、vue@next |
| yarn | npm |
alpha、beta、canary、dev、experimental、latest、legacy、next、nightly、rc、release、stable |
[email protected]、axios@latest、moment@nightly |
版本控制标签术语表
-
** `alpha`:** 早期版本,可能不稳定且功能不完整。 -
** `beta`:** 比 alpha 更稳定,但可能仍存在 bug。 -
** `canary`:** 定期更新的预发布测试版本。 -
** `dev`:** 代表开发版本。 -
** `experimental`:** 包含实验性功能的版本。 -
** `latest`:** 最新稳定版本。 -
** `legacy`:** 较旧或已弃用的版本。 -
** `next`:** 即将发布的版本。 -
** `nightly`:** 夜间构建版本;通常包含最新更改。 -
** `rc`:** 候选发布版本,接近稳定版本。 -
** `release`:** 正式发布版本。 -
** `stable`:** 最可靠、可用于生产环境的版本。
顶层 registries 密钥
指定 Dependabot 可以使用的身份验证详细信息,以访问专用包注册表,包括 GitLab 或 Bitbucket 托管的注册表。
注意
以下生态系统支持专用网络上防火墙后面的专用注册表:
- Bundler
- Cargo
- Docker
- Gradle
- Maven
- Npm
- NuGet
- Pub
- Python
- Yarn
`registries` 项的值是一个关联阵列,其中每个元素由一个标识特定注册表的键和一个为关联阵列的值组成,该值指定访问该注册表所需的设置。 以下 `dependabot.yml` 文件在文件的 `dockerhub` 部分配置一个标识为 `registries` 的注册表,然后在文件的 `updates` 部分中引用该注册表。
# Minimal settings to update dependencies stored in one private registry
version: 2
registries:
dockerhub: # Define access for a private registry
type: docker-registry
url: registry.hub.docker.com
username: octocat
password: ${{secrets.DOCKERHUB_PASSWORD}}
updates:
- package-ecosystem: "docker"
directory: "/docker-registry/dockerhub"
registries:
- dockerhub # Allow version updates for dependencies in this registry
schedule:
interval: "monthly"
# Minimal settings to update dependencies stored in one private registry
version: 2
registries:
dockerhub: # Define access for a private registry
type: docker-registry
url: registry.hub.docker.com
username: octocat
password: ${{secrets.DOCKERHUB_PASSWORD}}
updates:
- package-ecosystem: "docker"
directory: "/docker-registry/dockerhub"
registries:
- dockerhub # Allow version updates for dependencies in this registry
schedule:
interval: "monthly"
您使用以下选项来指定访问设置。 注册表设置必须包含 type 和 url,并且通常包含 username 和 password 组合或 token。
| 参数 | 用途 |
|---|---|
REGISTRY_NAME | 必需: 定义注册表的标识符。 |
type | 必需: 确定注册表的类型。 |
| 身份验证详细信息 | 必需: 提供身份验证详细信息所支持的参数因不同类型的注册表而异。 |
url | 必需: 用于访问此注册表中的依赖项的 URL。 协议是可选的。 如果未指定,则假定为 https://。 Dependabot 根据需要添加或忽略尾随斜线。 |
replaces-base | 如果布尔值为 true,Dependabot 会使用指定的 url 而不是该生态系统的基 URL 来解析依赖项。 |
有关可用选项的详细信息,以及配置专用注册表时的建议,请参阅“针对 Dependabot 的专用注册表配置指南”。
`type` 和身份验证详情
用于提供访问专用注册表的身份验证详情的参数因注册表 type 而异。
注册表 type | 必需的身份验证参数 |
|---|---|
cargo-registry | token |
composer-repository |
`username` 和 `password`<br>或 OIDC 以及 `tenant-id` 和 `client-id` |
| docker-registry |
username 和 password
或 OIDC 以及 tenant-id 和 client-id |
| git |
username 和 password
或 OIDC 以及 tenant-id 和 client-id |
| hex-organization |
organization 和 key |
| hex-repository |
repo 和 auth-key 以及相应的 public-key-fingerprint(可选) |
| maven-repository |
username 和 password
或 OIDC 以及 tenant-id 和 client-id |
| npm-registry |
username 和 password
或 token
或 OIDC 以及 tenant-id 和 client-id |
| nuget-feed |
username 和 password
或 token
或 OIDC 以及 tenant-id 和 client-id |
| pub-registry | token |
| python-index |
username 和 password
或 token
或 OIDC 以及 tenant-id 和 client-id |
| rubygems-server |
username 和 password
或 token
或 OIDC 以及 tenant-id 和 client-id |
| terraform-registry | token |
所有用于身份验证的敏感数据都应安全存储,并从该安全位置引用,请参阅 为 Dependabot 配置对专用注册表的访问权限。
提示
如果帐户是 GitHub 帐户,则可以使用 GitHub personal access token 代替密码。
有关 Dependabot 的 OIDC 支持的详细信息,请参阅 OpenID Connect 和 为 Dependabot 配置对专用注册表的访问权限。
`url` 和 `replaces-base`
`url` 参数定义了访问注册表的位置。 启用 `replaces-base` 参数(可选)时,`true` 使用 Dependabot 的值来解析依赖项,而不是使用该特定生态系统的基 URL。