Skip to main content

此版本的 GitHub Enterprise Server 已于以下日期停止服务 2024-09-25. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

自定义 Dependabot 安全更新的拉取请求

了解如何自定义 Dependabot 安全更新的拉取请求,以符合项目的安全优先级和工作流。

谁可以使用此功能?

Users with write access

关于自定义安全更新的拉取请求

可以自定义 Dependabot 如何提出安全更新的拉取请求,使它们最适合项目的安全优先级和流程。 例如:

  • 优化 Dependabot 拉取请求,通过将多个更新分组到单个拉取请求中,优先处理有意义的更新
  • 应用自定义标签以将 Dependabot 的拉取请求整合到现有工作流中。

与版本更新类似,安全更新的自定义选项在 dependabot.yml 文件中定义。 如果已经为版本更新自定义了 dependabot.yml,则定义的许多配置选项也会自动适用于安全更新。 但是,需要注意以下几个要点:

  • Dependabot security updates 始终由安全公告触发,而不是根据你在版本更新的 dependabot.yml 中设置的 schedule 运行****。
  • Dependabot 仅针对默认分支提出安全更新拉取请求****。 如果配置设置了 target-branch 值,则该包生态系统的自定义项默认将仅适用于版本更新。

如果尚未为仓库配置 dependabot.yml 文件,并且想要自定义安全更新的拉取请求,则必须首先:

  • dependabot.yml 文件签入仓库的 .github 目录。 有关详细信息,请参阅“配置 Dependabot 版本更新”。
  • 设置所有必需的键。 有关详细信息,请参阅必需的键
  • 如果希望包生态系统的自定义项仅适用于安全更新(并排除版本更新),请将 open-pull-requests-limit 键设置为 0****。

然后,可以考虑安全更新的需求和优先级,并应用下面概述的自定义选项组合。

自动添加审阅者和代理人

若要确保项目的安全更新得到相应团队的及时处理,请使用 reviewersassignees 自动将个人或团队添加为拉取请求的审阅者或代理人********。

有关详细指导,请参阅自动添加审阅者和代理人

使用自定义标签标记拉取请求

若要优先处理特定拉取请求,或将它们整合到 CI/CD 管道中,请使用 labels 将自己的自定义标签应用于每个拉取请求********。

有关详细指导,请参阅使用自定义标签标记拉取请求

为提交消息添加前缀

若要整合处理提交消息或拉取请求标题的自动化,请使用 commit-message 指定提交消息和拉取请求标题所需的前缀****。

有关详细指导,请参阅为提交消息添加前缀.

将拉取请求与里程碑相关联

若要跟踪项目目标或发布的进度,可使用 milestone 将 Dependabot 的拉取请求与里程碑相关联****。

有关详细指导,请参阅将拉取请求与里程碑相关联

更改拉取请求分支名称中的分隔符

若要确保分支名称符合团队的现有约定,请使用 pull-request-branch-name.separator 指定你希望 Dependabot 用于分支名称的分隔符****。

有关详细指导,请参阅更改拉取请求分支名称中的分隔符

示例 1:仅应用于安全更新的配置

在本示例中,dependabot.yml 文件:

  • 为 npm 依赖项的更新使用专用注册表。
  • 禁用依赖项的版本更新,使任何自定义项都仅应用于安全更新。
  • 进行了自定义,使 Dependabot 将自定义标签应用于拉取请求,并自动添加审阅者和代理人。
YAML
# Example configuration file that:
#  - Uses a private registry for npm updates
#  - Ignores lodash dependency
#  - Disables version-updates
#  - Applies custom labels
#  - Adds reviewers and assignees

version: 2
registries:
  # Define a private npm registry with the name `example`
  example:
    type: npm-registry
    url: https://example.com
    token: ${{secrets.NPM_TOKEN}}
updates:
  - package-ecosystem: "npm"
    directory: "/src/npm-project"
    schedule:
      interval: "daily"
    # For Lodash, ignore all updates
    ignore:
      - dependency-name: "lodash"
    # Disable version updates for npm dependencies
    open-pull-requests-limit: 0
    registries:
      # Ask Dependabot to use the private registry for npm
      - example
    # Raise all npm pull requests for security updates with custom labels
    labels:
      - "npm dependencies"
      - "triage-board"
    # Raise all npm pull requests for security updates with reviewers
    reviewers:
      - "my-org/team-name"
      - "octocat"
    # Raise all npm pull requests for security updates with assignees
    assignees:
      - "user-name"
  

示例 2:应用于版本更新和安全更新的配置

在本示例中,dependabot.yml 文件:

  • 进行了自定义,使 Dependabot 向版本更新和安全更新添加审阅者和自定义标签。
YAML
version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
# Raise all npm pull requests for security and version updates with custom labels
    labels:
      - "npm dependencies"
      - "triage-board"
    # Raise all npm pull requests for security and version updates with reviewers
    reviewers:
      - "my-org/team-name"
      - "octocat"

其他阅读材料