【发布时间】:2015-09-05 17:17:30
【问题描述】:
以前从未使用过 coffescript,我正在尝试更新 hubot script for jenkins integration。简而言之,我想调用 jenkins,从该调用中获取结果并在后续调用中使用它。基于 hubot 脚本中的现有代码,我添加了以下函数:
jenkinsCrumb = (msg) ->
url = process.env.HUBOT_JENKINS_URL
path = "#{url}/crumbIssuer/api/json"
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.get() (err, res, body) ->
if err
msg.reply "Jenkins says: #{err}"
else if 200 <= res.statusCode < 400 # Or, not an error code.
msg.reply "#{body}"
body
else if 404 == res.statusCode
msg.reply "Unable to fetch crumb from Jenkins..."
else
msg.reply "Jenkins says: Status #{res.statusCode} #{body}"
调用这个函数的时候,变量body中报告了我想要的值。对msg.reply 的调用会在hubot 聊天窗口中正确显示该值。
我想做但不知道如何让这个函数返回body 的值?我已经尝试显式返回 req.get() 的值,但它似乎返回了完整的请求对象。
【问题讨论】:
标签: coffeescript hubot