如何允许 Github 自动合并执行合并,而无需在每个拉取请求中显式启用它?

问题描述 投票:0回答:2

是否可以允许 Github 自动合并功能合并拉取请求,而不需要我在每个拉取请求上显式启用自动合并?

我有:

  • 在我的存储库设置中启用
    Allow auto-merge
  • 通过状态检查设置分支保护
  • 创建了满足所有要求的拉取请求
  • 拉取请求不会自动合并

当需求/状态检查处于挂起/运行状态时,我仍然需要手动选择

Enable auto-merging
,以便拉取请求自动合并。

github automation pull-request
2个回答
0
投票

我认为你做不到。相反,我建议使用 GitHub 操作来为您执行自动合并,为您提供所需的相同行为。 查看此 GitHub 操作:https://github.com/marketplace/actions/merge-pull-requests-automerge-action


0
投票

据我所知,它需要使用 GitHub Actions(或其他一些 CI/自动化工具)。

此设置有一些假设:

  • main
    分支受到限制,谁可以推入其中。
  • 由于
    main
    受到限制,请为有权推送到存储库的用户创建 PAT(个人访问令牌)“PAT_GITHUB_ACTIONS”。未使用默认的 GITHUB_TOKEN。

启用自动自动合并的步骤

  1. 在您的存储库中创建一个文件

    ./github/workflows/automerge.yml
    ,其中包含以下内容。

    • name: Enable Automerge
      on:
        pull_request:
          branches:
          - main
      jobs:
        Enable-Automerge:
          runs-on: ubuntu-latest
          steps:
            - name: Auto Merge
              run: gh pr merge --auto --merge "$PR_URL"
              env:
                PR_URL: ${{github.event.pull_request.html_url}}
                GITHUB_TOKEN: ${{secrets.PAT_GITHUB_ACTIONS}}
      
    • 如果您还想从私有分叉合并,请将 pull_request 替换为 pull_request_target。以下是有关这些事件的一些讨论https://github.com/orgs/community/discussions/26874
  2. 为用户创建一个可以推送到分支的个人令牌。给予许可

    repo: Full control of private repositories

  3. 将令牌添加到存储库 -> 设置 -> 秘密和变量 -> 操作 -> 存储库秘密

  4. main
    分支启用分支保护规则。出于测试目的,使用了简单的规则。

    • 合并前需要拉取请求

    • 不允许绕过以上设置

    • 限制谁可以推送到匹配的分支

  5. 创建测试拉取请求。自动化需要几秒钟才能启动。

© www.soinside.com 2019 - 2024. All rights reserved.