我有一个github工作流,它获取我的repo中所有Github版本的信息,然后使用jq
处理JSON响应。问题是我的shell代码不能处理JSON数据中的单引号(有时确实有)。我如何安全地将steps.release.outputs.data
输出到一个文件,而shell不会解释引号和其他字符?
- name: Get Release Info
uses: octokit/request-action@v2.x
id: release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
route: GET /repos/{org_repo}/releases/tags/{tag}
- name: Get Information from Release
run: |
echo '${{ steps.release.outputs.data }}' > release.json
jq -r '.assets[].browser_download_url' release.json > assets.txt
jq -r '.body' release.json > changelog.txt
上面失败的部分是第二步中包含echo
的行,因为steps.release.outputs.data
内容中包含单引号,所以将其断开。
请注意,我只将JSON数据写入文件(上例中为release.json
),以尝试绕过shell处理数据中的特殊字符。如果有更好的方法可以做到这一点,而不写入文件,我会更喜欢这样做。使这一点更具挑战性的部分是,响应JSON作为文字字符串而不是bash变量放置到最终的shell脚本中。
1条答案
按热度按时间col17t5w1#
您可以使用环境变量: