如何从 Coffee 脚本中的 HTTP 响应访问“位置”?

问题描述

我正在尝试使用 Hubot 将 Jenkins 与 Slack 集成。我在 Hubot 脚本中找到了 jenkins.coffee 脚本,它非常适合我的计划。现在,我想在运行命令以从 Slack 构建它后获取触发作业的构建编号。为了做到这一点,我想从 http 响应中获取“位置”。

当我说 @Hubot jenkins build <job name>

时,这是构建作业的函数
jenkinsBuild = (msg,buildWithEmptyParameters) ->
    url = process.env.HUBOT_JENKINS_URL
    job = querystring.escape msg.match[1]
    params = msg.match[3]
    command = if buildWithEmptyParameters then "buildWithParameters" else "build"
    path = if params then "#{url}/job/#{job}/buildWithParameters?#{params}" else "#{url}/job/#{job}/#{command}"

    req = msg.http(path)

    if process.env.HUBOT_JENKINS_AUTH
      auth = new Buffer(process.env.HUBOT_JENKINS_AUTH).toString('base64')
      req.headers Authorization: "Basic #{auth}"

    req.header('Content-Length',0)
    req.post() (err,res,body) ->
        if err
          msg.reply "Jenkins says: #{err}"
        else if 200 <= res.statusCode < 400 # Or,not an error code.
          msg.reply "(#{res.statusCode}) Build started for #{job} #{url}/job/#{job}"
        else if 400 == res.statusCode
          jenkinsBuild(msg,true)
        else if 404 == res.statusCode
          msg.reply "Build not found,double check that it exists and is spelt correctly."
        else
          msg.reply "Jenkins says: Status #{res.statusCode} #{body}"

我应该在 msg.reply 中具体写什么来获取位置?

TIA :)

解决方法

我终于用 res.headers["location"]