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

Posted

技术标签:

【中文标题】GitHub API,使用变量发布新评论【英文标题】:GitHub API, posting new comment using a variable 【发布时间】:2022-01-14 15:59:31 【问题描述】:

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

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 创建 "body": ...,并使用 --data-urlencode 标志。两者都返回相同的“解析 JSON 的问题”错误。

【问题讨论】:

单引号字符串不插入变量。参见手册中的3.1.2 Quoting 这可能是因为您的TEST_RESULTS 包含换行符。后处理它,例如将\n 替换为&lt;br&gt;,然后重试。 【参考方案1】:

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

也许像 this 这样转义 JSON 输出会有所帮助

escaped="$(printf '%s' "$TEST_RESULTS" | jq -Rs '.')"

... \
-d '"body": "Results: <br />'"$escaped"'"')

【讨论】:

以上是关于GitHub API,使用变量发布新评论的主要内容,如果未能解决你的问题,请参考以下文章

博客中gitalk最新评论的获取 github api使用

GitHub API 检索通过问题评论上传的文件

如何使用 WP Rest API v2 创建评论?

从 Google+ 评论框获取特定 URL 的评论计数 - Google+ API

获取 google 评论并创建与 Google API 一起使用的评论表单

使用backbonejs为评论投票API