我需要将我的应用程序连接到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
任何想法可能出错?
答案 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()
}