You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions中workflow_dispatch是否支持多行输入?如何正确传递多行输入参数?

解决GitHub Actions工作流中多行输入参数传递的问题

我太懂这种郁闷了——通过workflow_dispatch传递多行changelog时,明明输入了好几行,结果工作流里拿到的却变成了挤在一起的内容对吧?别着急,这几个实用方法能帮你搞定:

方法1:手动转义换行符(适合手动触发时输入)

当你在GitHub的手动触发界面输入多行内容时,把每一行结尾换成%0A(URL编码的换行符),工作流就能正确识别换行。比如原本的changelog是:

修复登录页跳转bug
优化移动端加载速度
新增用户反馈功能

改成:

修复登录页跳转bug%0A优化移动端加载速度%0A新增用户反馈功能

之后在工作流里直接用${{ github.event.inputs.change-log }}就能拿到带正确换行的完整内容。

方法2:用环境变量保留换行(推荐)

在工作流的Job中,把输入参数赋值给环境变量时加上双引号,这样能完整保留换行格式。示例配置如下:

name: Test
on:
  workflow_dispatch:
    inputs:
      change-log:
        description: 'Changelog'
        required: true

jobs:
  test-job:
    runs-on: ubuntu-latest
    steps:
      - name: 输出完整更新日志
        env:
          CHANGELOG: "${{ github.event.inputs.change-log }}"
        run: |
          echo "=== 更新日志 ==="
          echo "$CHANGELOG"

这里的关键是给环境变量赋值加双引号,并且在run步骤里用echo "$CHANGELOG"(带引号)来输出,这样换行就不会被shell当成空格吃掉。

方法3:YAML多行字符串语法(针对默认值)

如果你的changelog有固定的默认多行内容,可以在配置inputs时用YAML的多行字符串标记|来定义:

name: Test
on:
  workflow_dispatch:
    inputs:
      change-log:
        description: 'Changelog'
        required: true
        default: |
          修复登录页跳转bug
          优化移动端加载速度
          新增用户反馈功能

这种写法下,默认值的换行会被完整保留,用户手动输入时也能直接换行,工作流里引用参数时同样要注意用引号包裹避免换行丢失。

内容的提问来源于stack exchange,提问作者lakshmiravali rimmalapudi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 11:19:09