Github Action run-name不再显示提交消息的问题求助
解决Github Action run-name显示合并提交消息的问题
问题原因
当你通过PR合并代码到main分支时,触发的push事件对应的github.event.head_commit是合并提交,而非原分支的提交。此时github.event.head_commit.message自然就是默认的“Merge branch 'main' of ...”内容,所以直接设置这个变量不会改变显示结果。
解决方案
根据你的触发场景,选择对应的配置方式:
1. 针对PR合并到main的场景
如果代码主要通过PR合并到main,建议修改工作流触发条件,监听PR合并事件,直接用PR标题作为run-name:
on: pull_request: types: [closed] branches: [main] run-name: ${{ github.event.pull_request.title }} (PR #${{ github.event.pull_request.number }})
这样PR合并到main时,run-name会显示PR标题和编号,更直观。
2. 保留push触发,适配直接提交和合并提交
如果需要同时支持直接push到main和PR合并两种场景,可通过条件表达式区分合并提交,提取有效消息:
on: push: branches: [main] run-name: ${{ startsWith(github.event.head_commit.message, 'Merge') && github.event.commits[-1].message || github.event.head_commit.message }}
这个配置会判断当前提交是否为合并提交(以Merge开头),若是则取最后一个普通提交的消息;否则直接使用当前提交消息。
3. 排查配置有效性
你提到仅修改过云服务账户角色,这通常不影响run-name变量取值,但可以检查:
- 工作流文件语法是否正确,
run-name是否放在on字段之后、jobs字段之前的正确位置 - 当前触发push事件的提交类型,确认是否是合并提交导致的消息变化
内容的提问来源于stack exchange,提问作者Matthew Michaud
相关产品推荐
相关产品推荐

