我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

自定义依赖项更新

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

拥有仓库写入权限的人可配置仓库的 GitHub Dependabot。

本文内容

注: GitHub Dependabot 版本更新 目前处于测试阶段,可能会有变动。 要使用测试版功能,请在配置文件中登记,告诉 GitHub Dependabot 为您保留哪些依赖项。 详情请参阅“启用和禁用版本更新。”

关于自定义依赖项更新

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

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

有关配置选项的详细信息,请参阅“依赖项更新的配置选项”。

更新仓库中的 dependabot.yml 文件时,GitHub Dependabot 使用新配置即刻进行检查。 几分钟内,您将在 Dependabot 选项卡上看到更新的依赖项列表,如果仓库有很多依赖项,可能需要更长时间。 您可能还会看到针对版本更新的新拉取请求。 For more information, see "Listing dependencies configured for version updates."

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

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

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

修改计划

设置 daily 更新计划时,默认情况下,GitHub Dependabot 会在 05:00 UTC 检查新版本。 您可以使用 schedule.time 指定在一天中的其他时间检查更新(格式:h:mm)。

下面的示例 dependabot.yml 文件扩展了 npm 配置,以指定 GitHub 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"

设置审查者和受理人

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

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

下面的示例 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: "daily"
    # Raise all npm pull requests with reviewers
    reviewers:
      - "my-org/team-name"
      - "octocat"
    # Raise all npm pull requests with an assignee
    assignees:
      - "user-name"

设置自定义标签

默认情况下,GitHub Dependabot 会提出带 dependencies 标签的所有拉取请求。 If more than one package manager is defined, Dependabot includes an additional label on each pull request. 这表明拉取请求将更新哪种语言或生态系统,例如:Gradle 更新的 java 和 Git 子模块更新的 submodules。 GitHub 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: "daily"
    # 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: "daily"
    # 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"

更多示例

更多示例请参阅“依赖项更新的配置选项。”

问问别人

找不到要找的内容?

联系我们