GitHub API,使用变量发布新评论



我有一个文件,其中包含一些性能测试的输出。它看起来类似于以下内容:

index | master | performance-fix | change %
--- | --- | --- | ---
load | 26212.8 | 28223.6 | 7.67%
type | 67.5 | 75.41 | 11.72%
minType | 56.91 | 59.6 | 4.73%
maxInserterSearch | 185.45 | 283.25 | 52.74%
minInserterHover | 25.97 | 27.55 | 6.08%
maxInserterHover | 44.47 | 44.7 | 0.52%

我正试图使用该表数据提交一份关于Github问题的新评论。标准文本运行良好,但当我尝试传递表格时,我会收到错误:

{
"message": "Problems parsing JSON",
"documentation_url": "https://docs.github.com/rest/reference/issues#update-an-issue-comment"
}

我的cURL请求如下:

NEW_COMMENT=$(curl -sS 
-X PATCH 
-u $GH_LOGIN:$GH_AUTH_TOKEN 
-H "Accept: application/vnd.github.v3+json" 
"https://api.github.com/repos/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/issues/comments/$COMMENT_ID" 
-d '{"body": "Results: <br />'"$TEST_RESULTS"'"}')

我还尝试过使用jq和--data-urlencode标志创建{"body": ...}。两者都返回相同的";解析JSON的问题";错误

看起来$TEST_RESULTS包含的字符使JSON与您想象的不一样,比如包含引号和换行符

也许像这样转义JSON输出将有助于

escaped="$(printf '%s' "$TEST_RESULTS" | jq -Rs '.')"
... 
-d '{"body": "Results: <br />'"$escaped"'"}')

最新更新