跳到内容

依赖机器人

定期更新依赖项被认为是最佳实践,以避免暴露于漏洞,限制依赖项之间的不兼容性,并避免从过旧版本升级时出现复杂的升级。 各种工具可以帮助您通过创建自动化的拉取请求来保持最新状态。 其中一些支持 uv,或者正在进行支持它的工作。

Renovate

uv 受 Renovate 支持。

uv.lock 输出

Renovate 使用 uv.lock 文件的存在来确定 uv 用于管理依赖项,并将建议升级 项目依赖项可选依赖项开发依赖项。 Renovate 将更新 pyproject.tomluv.lock 文件。

也可以定期刷新锁文件(例如,为了更新传递依赖项),方法是启用 lockFileMaintenance 选项

renovate.json5
{
  $schema: "https://docs.renovatebot.com/renovate-schema.json",
  lockFileMaintenance: {
    enabled: true,
  },
}

内联脚本元数据

Renovate 支持更新使用 脚本内联元数据 定义的依赖项。

由于它无法自动检测哪些 Python 文件使用脚本内联元数据,因此需要使用 fileMatch 显式定义它们的位置,如下所示

renovate.json5
{
  $schema: "https://docs.renovatebot.com/renovate-schema.json",
  pep723: {
    fileMatch: [
      "scripts/generate_docs\\.py",
      "scripts/run_server\\.py",
    ],
  },
}

Dependabot

Dependabot 已经宣布支持 uv,但有些用例尚未正常工作。 请参阅 astral-sh/uv#2512 获取更新。

Dependabot 支持更新 uv.lock 文件。 要启用它,请将 uv package-ecosystem 添加到 dependabot.yml 中的 updates 列表

dependabot.yml
version: 2

updates:
  - package-ecosystem: "uv"
    directory: "/"
    schedule:
      interval: "weekly"