我正在尝试使用 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 进行调用以列出指定存储库的所有打开的拉取请求。
最佳答案
我意识到我没有传递我的身份验证 token ,因为我之前使用过一个为我完成此操作的库。您可以在标题中执行此操作,如下所示:
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)
.header("Authorization", "token #{your-auth-token}")
.put(stringData) (err, response, body) ->
if err
res.send "Error: #{err}"
else
parsedBody = JSON.parse(body)
res.send parsedBody.message
关于github - Hubot 与 GitHub API 合并到 Pull 请求中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31953866/