github - Hubot 与 GitHub API 合并到 Pull 请求中不起作用

标签 github hubot

我正在尝试使用 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/

相关文章:

git - 如何在 github 子目录中托管 Jekyll 博客?

node.js - Hubspot 融合集成

javascript - Node Redis 命令返回值 : Hubot and Coffeescript

javascript - 如何让hubot列出当前篝火聊天室中的所有用户?

Git:如何 rebase 一个裸仓库

javascript - GitHub 在浏览存储库时如何实现其奇特的页面删除效果?

身份验证无法从Windows的Github发布存储库

git - 如何修复 Github Travis CI 构建中 git 子模块更新的权限被拒绝(公钥)错误?

node.js - 在 Hubot 脚本中调试/打印

javascript - 让 Hubot 在 HipChat 中发送直接消息