使用Hubot我试图通过JIRA REST api访问特定问题。
url = http://myserver.com/jira/rest/api/2/search?jql=status="open"+AND+assignee=null
robot.http(url).get() (err, res, body) ->
# some code
Hubot无法访问服务器。代理都设置正确。 REST api在登录后通过浏览器按预期工作。
因此我需要指定身份验证。
到目前为止我尝试过的(普通基本身份验证):
robot.http(url).auth('user', 'pass'). ...
robot.http(url).header('Authentication', 'user:password'). ...
robot.http('http://user:password@someurl'). ...
Hubot一直告诉我找不到服务器。 如何通过http正确传递身份验证?
答案 0 :(得分:1)
这是来自hubot-confluence plugin的摘录。对于使用Jira进行身份验证应该是相同的。这是基本的访问身份验证。你可以查找btoa方法,但是将二进制转换为base64编码为ascii。据我所知,已经有很多脚本可以连接到带有hubot的Jira。
make_headers = ->
user = nconf.get("HUBOT_CONFLUENCE_USER")
password = nconf.get("HUBOT_CONFLUENCE_PASSWORD")
auth = btoa("#{user}:#{password}")
ret =
Accept: "application/json"
Authorization: "Basic #{auth}"
你可以正确地进行robot.http调用
headers = make_headers()
robot.http(url)
.headers(headers)
.get() (error, response, body) ->
答案 1 :(得分:0)
我认为你需要以正确的格式获得基本的身份证明。
user = process.env.DNSIMPLE_USERNAME
pass = process.env.DNSIMPLE_PASSWORD
auth = 'Basic ' + new Buffer(user + ':' + pass).toString('base64')
然后你需要传递
中的auth
变量
robot.http(url)
.headers(Authorization: auth, Accept: 'application/json')
.get() (err, res, body) ->
#some code