需要使用带有NodeJS的JIRA REST API从JIRA获取项目/问题



我正在构建一个NodeJS应用程序,我希望使用JIRA提供的RESTAPI从那里获得项目/问题。我的jira正在某个服务器上运行('http://example.com:8080/secure/Dashboard.jspa'(,并且我能够使用来自POSTMAN的REST API,使用BASIC AUTH来获取各种数据,但当我尝试使用REST API和NodeJS登录JIRA时,我得到了一些响应,但我无法理解如何使用这些信息来调用其他API。

我所做的是,我将用户名和密码作为命令行参数传递,然后我将这些凭据发送到JIRA。然后,我将使用"nodefetch"包从RESTAPI中获取信息。

以下是我的代码:

const fetch = require("node-fetch");
const yargs = require("yargs");
var JiraClient = require("jira-connector");
var request = require("request");
const jiraBaseUrl = "http://example.com:8080/secure/Dashboard.jspa";
const loginUrl = "auth/1/session";
const username = yargs.argv.u;
const password = yargs.argv.p;
const projectName = yargs.argv.n;
var headers = {
"Content-Type": "application/json"
};
var options = {
url: "http://example.com:8080/rest/api/2/issue/createmeta",
headers: headers,
auth: {
user: username,
pass: password
}
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
request(options, callback);

有人能告诉我我做错了什么吗?或者我需要对我获得的数据做什么才能使用其他API,比如('http://example.com:8080/rest/api/2/issue/10008’(?或者我登录时做错了什么?

我已经阅读了JIRA网站上的文档,但无法正确理解。

如果查看Jira Rest API文档,rest/api/2/issue/createmeta是Get-create问题元数据的终点。它"返回项目的详细信息、项目中的问题类型,并在请求时为用户的每个问题类型创建屏幕字段。"由于它返回了所有项目的详细内容和项目中的所有问题类型,因此这些数据应该是巨大的。

如果您想使用其他API,只需将url更改为具有正确端点的适当url(文档(,并遵循文档中关于作为主体数据发送的内容。

以下是获取一个问题的详细信息的示例:把你想得到的问题IDOrKey放在的括号里

var options = {
method: 'GET',
url: 'http://example.com:8080/rest/api/latest/issue/{issueIdOrKey}', 
auth: { username: username, password: password },
headers: {
'Accept': 'application/json'
}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(
'Response: ' + response.statusCode + ' ' + response.statusMessage
);
console.log(body); //this would log all the info (in json) of the issue 
// you can use a online json parser to look at this information in a formatted way
});

最新更新