我有一个分支名称有效性检查 GitHub Actions 工作流程,旨在防止目标分支与源分支名称不兼容时合并 PR。
例如,如果我的目标分支是
main
,那么只允许合并release\*
分支。 同样,如果我的目标分支是 develop
,那么只允许合并 feature\*
或 bug\*
分支。
使用此 GitHub Action 的一个有趣效果是,当我使用 GitHub UX 创建 PR 时,它似乎正在运行工作流程并向我提供视觉反馈,即按原样设置,我的分支无法自动合并(但它仍然允许创建分支。)
我的问题是:根据我的工作流程结果,每当目标分支下拉列表发生变化时,我是否也可以动态启用/禁用“创建拉取请求”按钮?
当源分支名称和目标分支不兼容时,GitHub 允许我根据 GitHub Actions 工作流程中设置为触发的规则创建 PR:
on:
pull_request_target:
types:
- opened
- reopened
- edited
- ready_for_review
- auto_merge_enabled
- synchronize
我想包含一些设置,以防止当此 GitHub Action 工作流程因错误退出时创建拉取请求。
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 缩进。