GitHub Action问题:每周master合并PR无法自定义描述内容
问题分析与修复方案
核心问题定位
你的GitHub Action配置存在3个关键错误,导致PR描述始终为空且无法覆盖默认内容:
1. 输出变量定义语法错误
在Set output variables步骤中:
- 最后一行
echo "body=$body >> $GITHUB_OUTPUT缺少闭合双引号,命令执行失败,body变量根本没写入GITHUB_OUTPUT - PR创建步骤中引用的
steps.vars.outputs.outval完全未定义,应该引用steps.vars.outputs.body
2. YAML转义字符错误
buildsville/list-pull-requests的Labels参数使用了HTML转义字符["app/admin"],YAML无法正确解析,导致Action拉取不到目标PR,最终steps.list.outputs.pulls为空。
3. 分支配置与实际流程不符(测试环境可忽略,正式环境需修正)
测试配置中用了source_branch: test、target_branch: main,但实际流程是develop合并到master,正式环境需对应修改。
修正后的完整配置
name: weekly master merge on: workflow_dispatch: jobs: createPullRequest: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Release Changelog Builder uses: buildsville/list-pull-requests@v1 id: list with: token: ${{ secrets.ALL }} Labels: '["app/admin"]' # 修正转义问题,直接用单引号包裹数组 skip_hour: '24' - name: Set output variables id: vars run: | pr_title="Releases week #$(date +%W)" body="${{ steps.list.outputs.pulls }}" # 修正引号闭合,给body加引号避免空格拆分 echo "pr_title=$pr_title" >> $GITHUB_OUTPUT echo "body=$body" >> $GITHUB_OUTPUT - name: Create Pull Request uses: devops-infra/action-pull-request@v0.5.3 id: test with: github_token: ${{ secrets.ALL }} source_branch: test # 正式环境替换为develop target_branch: main # 正式环境替换为master title: ${{ steps.vars.outputs.pr_title }} body: ${{ steps.vars.outputs.body }} # 引用正确的输出变量
验证步骤
- 运行Workflow后,查看
Set output variables步骤日志,确认pr_title和body是否正常输出 - 查看
Release Changelog Builder步骤日志,确认是否拉取到目标PR列表,若为空则检查标签过滤条件、skip_hour是否合理 - 确认PAT拥有
repo权限,能正常访问仓库的PR和Issue数据
内容的提问来源于stack exchange,提问作者Anrico Oltmanns
相关产品推荐
相关产品推荐

