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

如何用CURL命令给GitHub PR添加多行评论?

解决curl给GitHub PR添加多行评论时的JSON解析错误

问题核心是多行文本里的换行符未被正确转义,导致提交的JSON格式不合法,GitHub API无法解析。以下是两种可靠的解决方法:

方法一:用jq自动处理JSON转义(推荐)

jq工具能自动把多行文本转换成符合JSON规范的字符串,自动处理换行、引号等特殊字符:

  1. 先安装jq(大部分Linux发行版和macOS可通过包管理器直接安装)
  2. 读取fileA内容并完成转义:
    var1=$(jq -Rs . fileA)
    
  3. 执行curl命令提交评论:
    curl -X POST \
      -H "Authorization: token YOUR_GITHUB_TOKEN" \
      -H "Content-Type: application/json" \
      -d "{\"body\": $var1}" \
      https://api.github.com/repos/OWNER/REPO/pulls/PULL_NUMBER/comments
    
    替换命令里的YOUR_GITHUB_TOKEN、OWNER/REPO、PULL_NUMBER为你自己的信息。

方法二:用sed手动转义换行符

如果没有jq,也可以用sed手动替换换行符和双引号:

  1. 处理fileA内容:
    var1=$(sed ':a;N;$!ba;s/\n/\\n/g;s/"/\\"/g' fileA)
    
  2. 执行curl命令(和方法一的curl命令一致):
    curl -X POST \
      -H "Authorization: token YOUR_GITHUB_TOKEN" \
      -H "Content-Type: application/json" \
      -d "{\"body\": \"$var1\"}" \
      https://api.github.com/repos/OWNER/REPO/pulls/PULL_NUMBER/comments
    

注意:直接将多行文本塞进JSON会导致格式错误,必须确保所有特殊字符都被转义,jq是最不容易出错的处理方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 00:09:53