如何自动合并依赖机器人更新(配置版本 2)?

在“Dependabot 正在原生迁移到 GitHub!”之后,我不得不更新我的dependabot 配置文件以使用版本 2 格式。

我的 .dependabot/config.yaml 看起来像:

version: 1
update_configs:
  - package_manager: "python"
    directory: "/"
    update_schedule: "live"
    automerged_updates:
      - match:
          dependency_type: "all"
          update_type: "all"

我有以下工作:

version: 2
updates:
- package-ecosystem: pip
  directory: "/"
  schedule:
    interval: daily

但我似乎无法再次添加自动合并选项(使用 dependabot validator 检查时)?

stack overflow How do I automerge dependabot updates (config version 2)?
原文答案

答案:

作者头像

现在是 officially documented feature 。您可以批准依赖的拉动请求,并将其设置为使用GitHub Actions Workflow(例如…)自动合并。

name: Dependabot auto-approve
on: pull_request_target

permissions:
  contents: write
  pull-requests: write

jobs:
  dependabot:
    runs-on: ubuntu-latest
    if: ${{ github.actor == 'dependabot[bot]' }}
    steps:
      - name: Dependabot metadata
        id: metadata
        uses: dependabot/fetch-metadata@v1.1.1
        with:
          github-token: "${{ secrets.GITHUB_TOKEN }}"
      - name: Enable auto-merge for Dependabot PRs
        if: ${{contains(steps.metadata.outputs.dependency-names, 'my-dependency') && steps.metadata.outputs.update-type == 'version-update:semver-patch'}}
        run: gh pr merge --auto --merge "$PR_URL"
        env:
          PR_URL: ${{github.event.pull_request.html_url}}
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

如果您使用 code owners 并且分支受到保护,则可能会发现这仍然会等待代码所有者评论合并。不幸的是,代码所有者不允许您否定受影响的文件,因此您将需要明确列出清偿库中拥有的文件,以启用完全非交互的合并步骤。