使用repo-sync/pull-request自动创建PR后触发工作流未执行问题求助
问题根本原因
GitHub 对默认提供的 ${{ secrets.GITHUB_TOKEN }} 有内置安全限制:所有使用该令牌执行的操作(包括创建拉取请求、推送代码等),都不会触发新的工作流运行,本质是为了避免出现工作流循环执行的安全隐患,这就是你配置的 pull_request 触发规则没有生效的核心原因。
补充说明:你当前配置的
workflow_run触发规则不受该限制,只要「Create Pull Request」工作流执行完成就会正常触发,如果你只需要在PR创建时跑一次工作流也可以直接基于这个事件写逻辑,但如果需要监听PR的后续更新、合入等事件,还是需要修改令牌配置。
解决方案
方案一:使用个人访问令牌(PAT)替换默认令牌(推荐)
操作步骤如下:
- 进入GitHub账号的「开发者设置」页面,创建一个授予
repo全权限的个人访问令牌(PAT) - 将创建好的PAT添加到对应仓库的Secrets配置中,自定义命名比如
REPO_PR_PAT - 修改自动创建PR的工作流配置,替换令牌参数:
- name: Create Pull Request id: open-pr uses: repo-sync/pull-request@v2 with: destination_branch: "develop" pr_title: "[example] test_summary" pr_body: "test body." github_token: ${{ secrets.REPO_PR_PAT }} # 替换为你自己配置的PAT对应的Secrets名称
使用PAT创建的拉取请求会正常触发目标仓库配置的 pull_request 事件工作流。
方案二:手动触发目标工作流
如果你不想额外创建PAT,也可以给预期触发的工作流新增 workflow_dispatch 触发规则,在自动创建PR的工作流末尾加一步调用GitHub API直接触发目标工作流即可,相比方案一配置更繁琐。
内容的提问来源于stack exchange,提问作者satodai
相关产品推荐
相关产品推荐

