如何限制workflow_dispatch仅在指定分支手动触发?
如何限制GitHub Actions手动触发(workflow_dispatch)的可选分支?
目前GitHub Actions的workflow_dispatch事件本身不支持通过branches字段直接限制可选分支(你示例中注释的写法确实无效),不过可以通过以下两种方式实现类似需求:
方法一:添加分支合法性检查步骤
在工作流开头加入前置检查,验证触发分支是否在允许列表内,不符合则直接终止工作流。示例代码如下:
name: A test workflow title on: push: workflow_dispatch: jobs: validate-branch: runs-on: ubuntu-20.04 steps: - name: 检查分支是否允许触发 run: | # 定义允许触发的分支列表 ALLOWED_BRANCHES=("main" "dev") if [[ ! " ${ALLOWED_BRANCHES[@]} " =~ " ${GITHUB_REF_NAME} " ]]; then echo "错误:分支 ${GITHUB_REF_NAME} 不允许触发此工作流" exit 1 fi print-hello-world: needs: validate-branch runs-on: ubuntu-20.04 steps: - name: Print hello world run: echo "Hello world!"
这种方式虽然无法修改GitHub界面上的分支下拉选项,但会在工作流启动后立刻校验分支合法性,不符合条件的会直接终止,避免无效运行。
方法二:结合分支保护规则与工作流权限
通过仓库的分支保护规则,限制只有特定分支能被操作,同时配置工作流的权限,间接阻止非法分支触发工作流。不过这种方式更偏向权限管控,而非直接限制下拉列表的可选范围。
内容的提问来源于stack exchange,提问作者Ohav
相关产品推荐
相关产品推荐

