当选定的目标分支在 GitHub Actions 工作流程中失败时,我可以阻止创建 GitHub Pull 请求吗?

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

我有一个分支名称有效性检查 GitHub Actions 工作流程,旨在防止目标分支与源分支名称不兼容时合并 PR。

例如,如果我的目标分支是

main
,那么只允许合并
release\*
分支。 同样,如果我的目标分支是
develop
,那么只允许合并
feature\*
bug\*
分支。

使用此 GitHub Action 的一个有趣效果是,当我使用 GitHub UX 创建 PR 时,它似乎正在运行工作流程并向我提供视觉反馈,即按原样设置,我的分支无法自动合并(但它仍然允许创建分支。)

创建 PR UX 显示不兼容的分支目标

我的问题是:根据我的工作流程结果,每当目标分支下拉列表发生变化时,我是否也可以动态启用/禁用“创建拉取请求”按钮?

当源分支名称和目标分支不兼容时,GitHub 允许我根据 GitHub Actions 工作流程中设置为触发的规则创建 PR:

on:
  pull_request_target:
    types:
      - opened
      - reopened
      - edited
      - ready_for_review
      - auto_merge_enabled
      - synchronize

我想包含一些设置,以防止当此 GitHub Action 工作流程因错误退出时创建拉取请求。

github github-actions pull-request
1个回答
0
投票

GitHub Actions 不允许我们根据自定义检查控制拉取请求的创建。然而,它确实允许我们基于分支保护规则来呈现 PR 合并。

创建一个工作流程,根据基础分支验证源分支:

name: PR Check

on:
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  check:
    runs-on: ubuntu-latest

steps:
- name: Checkout repository
  uses: actions/checkout@v2

- name: Set environment variables
  run: |
    echo "BASE_BRANCH=${{ github.event.pull_request.base.ref }}" >> $GITHUB_ENV
    echo "HEAD_BRANCH=${{ github.event.pull_request.head.ref }}" >> $GITHUB_ENV

- name: Use branches in a script
  run: |
    echo "Running checks for base branch: $BASE_BRANCH and head branch: $HEAD_BRANCH"

为主分支和开发分支创建分支保护规则,并使用上述工作流程作为必需的检查。

注意:如果需要,请更正步骤的 YAML 缩进。

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