【发布时间】:2015-08-11 23:52:33
【问题描述】:
我正在尝试使用 Hubot 来合并指定存储库的拉取请求,但我得到了这样的响应对象:{ message: 'Not Found', documentation_url: 'https://developer.github.com/v3' }。
这是我的代码,去掉了 sha:
module.exports = (robot) ->
robot.respond /deploy pr (.*) in (.*)/i, (res) ->
prNumber = res.match[1]
repo = res.match[2]
owner = process.env.HUBOT_GITHUB_OWNER
base_url = process.env.HUBOT_GITHUB_API || 'https://api.github.com'
mergeUrl = "#{base_url}/repos/#{owner}/#{repo}/pulls/#{prNumber}/merge"
data =
commit_message: "Merged pull request #{prNumber} into #{repo}",
sha: "my-sha-here"
stringData = JSON.stringify data
res.http(mergeUrl)
.put(stringData) (err, response, body) ->
if err
res.send "Error: #{err}"
else
parsedBody = JSON.parse(body)
res.send parsedBody.message
不知道我做错了什么。我认为我的身份验证设置正确,因为我可以使用 github api 进行调用以列出指定存储库的所有打开的拉取请求。
【问题讨论】:
-
如果您可以通过 api 调用列出拉取请求,并不意味着您也可以合并它们。尝试使用您的身份验证通过 api 调用进行合并,并确保您的访问令牌是否具有这样做所需的权限。
-
我知道我做错了什么。我根本没有通过我的身份验证。在此之前,我使用的是 GitHubot 库,它负责为我传递身份验证。我只需要在标题中发送它。