Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

自定义依赖项更新

您可以自定义 Dependabot 如何维护依赖项。

Who can use this feature

People with write permissions to a repository can configure Dependabot for the repository.

关于自定义依赖项更新

启用版本更新后,可以通过向 dependabot.yml 文件添加更多选项来自定义 Dependabot 维护依赖项的方式。 例如,可以:

  • 指定星期几打开版本更新的拉取请求:schedule.day
  • 为每个包管理器设置审阅者、被分派人和标签:reviewersassigneeslabels
  • 为每个清单文件的更改定义版本控制策略:versioning-strategy
  • 更改为版本更新打开的最大拉取请求数(默认值为 5):open-pull-requests-limit
  • 打开版本更新的拉取请求以定位特定分支,而不是默认分支:target-branch

有关配置选项的详细信息,请参阅“dependabot.yml 文件的配置选项”。

更新存储库中的 dependabot.yml 文件后,Dependabot 会使用新配置即刻进行检查。 几分钟内,你将在 Dependabot 选项卡上看到更新的依赖项列表,如果存储库有很多依赖项,可能需要更长时间。 您可能还会看到针对版本更新的新拉取请求。 有关详细信息,请参阅“列出为版本更新配置的依赖项”。

配置更改对安全更新的影响

如果自定义 dependabot.yml 文件,可能会注意到针对安全更新提出的拉取请求发生了一些变化。 这些拉取请求始终由依赖项的安全通告触发,而不是由 Dependabot 时间表触发。 但是,它们会从 dependabot.yml 文件继承相关的配置设置,除非为版本更新指定不同的目标分支。

有关示例,请参阅下面的“设置自定义标签”。

修改计划

设置 daily 更新计划后,Dependabot 会默认在 05:00 UTC 检查新版本。 可以使用 schedule.time 指定检查更新的备用时间(格式:hh:mm)。

下面的示例 dependabot.yml 文件扩展了 npm 配置,以指定 Dependabot 应何时检查依赖项的版本更新。

# dependabot.yml file with
# customized schedule for version updates

version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    # Check the npm registry for updates at 2am UTC
    schedule:
      interval: "daily"
      time: "02:00"

设置审查者和受理人

默认情况下,Dependabot 会提出没有任何审查者或受理人的拉取请求。

可以使用 reviewersassignees 为针对包管理器提出的所有拉取请求指定审阅者和被分派人。 指定一个团队时,必须使用完整的团队名称,就像 @mentioning 团队(包括组织)一样。

下面的示例 dependabot.yml 文件更改了 npm 配置,使所有通过 npm 的版本和安全更新打开的拉取请求都有两个审阅者和一个被分派人。

# dependabot.yml file with
# reviews and an assignee for all npm pull requests

version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Raise all npm pull requests with reviewers
    reviewers:
      - "my-org/team-name"
      - "octocat"
    # Raise all npm pull requests with an assignee
    assignees:
      - "user-name"

设置自定义标签

默认情况下,Dependabot 会提出所有带有 dependencies 标签的拉取请求。 如果定义了多个包管理器,Dependabot 在每个拉取请求上都会包含一个附加标签。 这表示拉取请求将更新的语言或生态系统,例如:java 表示 Gradle 更新,submodules 表示 git 子模块。 Dependabot 将根据需要自动在您的仓库中创建这些默认标签。

可以使用 labels 替代默认标签,并为针对包管理器提出的所有拉取请求指定替代标签。 无法在 dependabot.yml 文件中创建新标签,因此,存储库中必须已存在替代标签。

下面的示例 dependabot.yml 文件更改了 npm 配置,使所有通过 npm 的版本和安全更新打开的拉取请求都有自定义标签。 它还会更改 Docker 配置,以针对自定义分支检查版本更新,并针对自定义分支使用自定义标签提出拉取请求。 Docker 的变更不会影响安全更新拉取请求,因为安全更新始终针对默认分支进行。

只有:新版 target-branch 必须包含要更新的 Dockerfile,,此变更将导致 Docker 版本更新被禁用。

# dependabot.yml file with
# customized npm configuration

version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Raise all npm pull requests with custom labels
    labels:
      - "npm dependencies"
      - "triage-board"

    # Keep Docker dependencies up to date
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
    # Raise pull requests for Docker version updates
    # against the "develop" branch. The Docker configuration
    # no longer affects security update pull requests.
    target-branch: "develop"
    # Use custom labels on pull requests for Docker version updates
    labels:
      - "Docker dependencies"
      - "triage-board"

更多示例

有关详细信息,请参阅“dependabot.yml 文件的配置选项”。