【问题标题】:Hubot with GitHub API to merge in Pull Request not working使用 GitHub API 合并拉取请求的 Hubot 不起作用
【发布时间】: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 库,它负责为我传递身份验证。我只需要在标题中发送它。

标签: github hubot


【解决方案1】:

我意识到我没有传递我的身份验证令牌,因为我之前使用的是一个为我做的库。您可以在这样的标题中执行此操作:

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

【讨论】:

    猜你喜欢
    • 2014-04-15
    • 2016-12-11
    • 2017-03-07
    • 2016-12-12
    • 1970-01-01
    • 2021-07-22
    • 2022-08-14
    • 2015-04-30
    • 1970-01-01
    相关资源
    最近更新 更多