Github API Auth 无法在拉取请求上添加评论

Posted

技术标签:

【中文标题】Github API Auth 无法在拉取请求上添加评论【英文标题】:Github API Auth not working with adding a comment on a pull request 【发布时间】:2016-01-27 14:47:55 【问题描述】:

根据另一个 *** 帖子,您应该使用问题 API 来向拉取请求添加评论。似乎合乎逻辑,因为我想发表***评论并且只想包含评论正文。

Create comment on pull request

我正在使用带有基本身份验证的以下请求,并尝试了我的密码和一次性令牌。我们使用 github 企业,所以主机是正确的。 cmets 的 API 在这里。

https://developer.github.com/v3/issues/comments/#create-a-comment

我正在尝试的请求如下所示:

POST /repos/mobile/android/issues/1615/comments HTTP/1.1
Authorization: Basic XXXXXXXXXX
Content-Type: application/json
Cookie: logged_in=no
Host: ghe.megaleo.com
Connection: close
User-Agent: Paw/2.2.5 (Macintosh; OS X/10.10.5) GCDHTTPRequest
Content-Length: 33

"body":"Here is a test comment"

我收到 302 响应作为重定向

<html><body>You are being <a href="https://ghe.megaleo.com/login?return_to=https%3A%2F%2Fghe.megaleo.com%2Frepos%2Fmobile%2Fandroid%2Fissues%2F1615%2Fcomments">redirected</a>.</body></html>

还有其他方法可以进行身份​​验证还是我做错了什么?等效的 curl 命令可能看起来像这样

curl -H "Content-type: application/json" -X POST -u username:password -d '"body": "Here is a test comment on a pull request"' https://ghe.megaleo.com/repos/mobile/android/issues/1615/comments

【问题讨论】:

【参考方案1】:

我们使用 github 企业,所以主机是正确的。

没错,但是GitHub v3 page does mention:

请注意,对于 GitHub Enterprise,与所有其他端点一样,您需要将 GitHub Enterprise 端点作为主机名以及您的用户名和密码传递:

$ curl https://hostname/api/v3/ -u username:password
                       ^^^^^^^

所以试试https://ghe.megaleo.com/api/v3/repos/mobile/android/pulls/1615/comments

【讨论】:

【参考方案2】:

更直接的答案:

curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  http(s)://hostname/api/v3/repos/octocat/hello-world/pulls \
  -d '"head":"head","base":"base"'

详情请参考:https://docs.github.com/en/enterprise-server@3.1/rest/reference/pulls#create-a-pull-request

【讨论】:

以上是关于Github API Auth 无法在拉取请求上添加评论的主要内容,如果未能解决你的问题,请参考以下文章

GitHub:获取当前在拉取请求中的一个特定文件的所有更改

为啥 GitHub 不会在拉取请求中触发“持续集成/jenkins/pr-merge”?

在拉取请求时重命名分支

如何在拉取请求中压缩提交

如何在 GitHub 上恢复拉取请求提交

如果失败,拉取请求触发的 GitHub 操作不会锁定“合并”按钮