5

在“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

但我似乎无法再次添加 automerge 选项(使用dependabot验证器检查时)?

4

3 回答 3

7

这是一种不需要任何额外市场安装的解决方案(最初在此处找到)。只需创建一个新的 GitHub 工作流(例如.github/workflows/dependabotautomerge.yml),其中包含:

name: "Dependabot Automerge - Action"

on:
  pull_request:

jobs:
  worker:
    runs-on: ubuntu-latest

    if: github.actor == 'dependabot[bot]'
    steps:
      - name: automerge
        uses: actions/github-script@0.2.0
        with:
          script: |
            github.pullRequests.createReview({
              owner: context.payload.repository.owner.login,
              repo: context.payload.repository.name,
              pull_number: context.payload.pull_request.number,
              event: 'APPROVE'
            })
            github.pullRequests.merge({
              owner: context.payload.repository.owner.login,
              repo: context.payload.repository.name,
              pull_number: context.payload.pull_request.number
            })
          github-token: ${{github.token}}

GitHub Marketplace上还有各种可用的第三方解决方案。

于 2020-10-24T16:14:43.693 回答
4

自动合并在 Dependabot 上被禁用到 GitHub:

在可预见的将来,GitHub-native Dependabot 将不支持自动合并。我们知道你们中的一些人已经构建了依赖自动合并的出色工作流程,但现在,我们担心自动合并被用于在整个生态系统中快速传播恶意程序包。我们建议始终在合并之前验证您的依赖关系。

有一些技巧可以完成这项工作,您可以查看 GitHubdependabot-core 问题 #1973了解一些想法。

于 2020-10-20T03:03:30.643 回答
3

现在这是一个正式记录的功能。您可以批准 Dependabot 拉取请求并将其设置为与 GitHub Actions 工作流程自动合并……</p>

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}}

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

于 2021-07-13T15:42:22.063 回答