我正在处理 GitHub 操作,我有一个案例,我需要将多行字符串作为 json 发送。我收到一些意外的令牌错误。
这是我的 test.md 和工作流程:
---------------------------
**test**
- update something
- another (update)
**test2**
- Add `test` to param
steps:
- uses: actions/checkout@v2
- name: Get Log
id: getLog
run: |
CHANGELOG="$(cat test.md)"
CHANGELOG="$($CHANGELOG//'%'/'%25')"
CHANGELOG="$($CHANGELOG//$'\n'/'%0A')"
CHANGELOG="$($CHANGELOG//$'\r'/'%0D')"
echo "::set-output name=changeLog::$CHANGELOG"
- name: Invoke CLI workflow with changelog
uses: benc-uk/workflow-dispatch@v1
with:
workflow: Workflow publish
token: ${{ secrets.TOKEN }}
repo: repo/name
inputs: '{ "changeLog": "${{steps.getLog.outputs.changeLog}}"}'
我收到意外的令牌错误。这个怎么解决?
提前致谢
您在提供的示例中似乎有两个问题。
run: |
CHANGELOG=$(cat test.md)
CHANGELOG="${CHANGELOG//'%'/'%25'}"
CHANGELOG="${CHANGELOG//$'\n'/'%0A'}"
CHANGELOG="${CHANGELOG//$'\r'/'%0D'}"
echo "::set-output name=changeLog::$CHANGELOG"
json
为对象编写无效。inputs: '{ "changeLog": "${{steps.getLog.outputs.changeLog}}"}'
输出无效的json:
{ "changeLog": "---------------------------
**test**
- update something
- another (update)
**test2**
- Add `test` to param"}
修复这个使用上下文功能toJSON()
inputs: '{ "changeLog": ${{ toJSON(steps.getLog.outputs.changeLog) }}}'
输出有效的json:
{ "changeLog": "---------------------------\n **test**\n - update something\n - another (update)\n \n **test2**\n - Add `test` to param"}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句