使用node-jira模块对JIRA进行身份验证

时间:2014-06-20 08:21:44

标签: node.js jira

我需要将我的应用程序连接到JIRA API,我找到了模块node-jira,这应该可以帮助我。

但是,我遇到身份验证问题。

这是我做的(没什么特别的,但出于某种原因,它不起作用):

var JiraApi = require('jira').JiraApi;

var jira = new JiraApi('https', '[url to my jira project]', 443, '[username]', '[password]', '2.0.alpha1');

jira.getCurrentUser(function(error, issue) {
  if(error){
    console.log(error);
    return;
  }
  console.log('success');
});

我收到:

401: Error while getting current user

任何想法可能出错?

2 个答案:

答案 0 :(得分:0)

在深入研究源代码之后,看起来提到的方法并没有正确地提出请求。

this.request代替this.doRequest。我将它提交给github repo。

答案 1 :(得分:0)

这可能会给您一些想法;这不是从JIRA发出问题的电话,而是显示了如何设置Atlassian API电话(来自Google表格)。您只需插入正确的URL和端点(以JIRA问题为例)。

function showAtlassian() {
  var html = HtmlService.createHtmlOutputFromFile('atlassianform')
      .setWidth(200)
      .setHeight(200);
  SpreadsheetApp.getUi().showModalDialog(html, 'Atlassian Login');
}

function processAtlassian(myForm) {
  var username = myForm.un;
  var userpw = myForm.pw;
  var myencoded = Utilities.base64Encode(username+":"+userpw);
  var headers = {"Authorization" : "Basic " + myencoded};
  var options = {
      'method': 'get',
      "contentType" : "application/json",
      "headers": headers,
      'muteHttpExceptions': false
    }
var ui = SpreadsheetApp.getUi(); 
url = 'https://---your domain --/wiki/rest/api/user/current';
  try {
    var response = UrlFetchApp.fetch(url, options);
    var data = JSON.parse(response)
    var result = ui.alert( 'got valid connection userkey ' + data.userKey );
  } catch(error) {
    var result = ui.alert( 'invalid user or password: url: '+ url +' err: ' + error.toString());
    getatlassian();
  }
}

function getatlassian() {
  var ui = SpreadsheetApp.getUi();
  showAtlassian()
}