Нужно получить проект / проблемы от JIRA, используя JIRA REST API с NodeJS - PullRequest
0 голосов
/ 11 марта 2020

Я создаю NodeJS приложение, из которого я хочу получать проект / проблемы от JIRA, используя REST API, предоставляемые JIRA. Мой jira работает на каком-то сервере ('http://example.com: 8080 / secure / Dashboard.jspa '), и я могу использовать API-интерфейсы REST из POSTMAN с использованием BASI C AUTH для получения всех видов данных но когда я попытался войти в JIRA с использованием API REST и NodeJS, я получил какой-то ответ, но не смог понять, как я собираюсь использовать эту информацию для вызова других API.

Что Я делаю, я передаю имя пользователя и пароль в качестве аргументов командной строки, затем я отправляю эти кредиты для входа в JIRA. Затем я собираюсь использовать пакет 'node-fetch' для получения информации от API REST.

Ниже приведен мой код:

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, но не смог правильно понять.

1 Ответ

2 голосов
/ 12 марта 2020

Если вы посмотрите на документацию по Jira Rest API , rest/api/2/issue/createmeta - это конечная точка для метаданных Получить создать проблему. Он «возвращает подробную информацию о проектах, типах проблем в проектах и, когда требуется, поля создания экрана для каждого типа проблемы для пользователя». Предполагается, что эти данные будут огромными, поскольку он возвращает детали всех проектов и всех типов проблем. внутри проектов.

Если вы хотите использовать другой API, просто измените URL-адрес на соответствующий URL-адрес с правильными конечными точками ( документация ) и следуйте документации, касающейся того, что следует отправлять в качестве основных данных.

Вот один из примеров получения сведений об одной проблеме: поместите в скобки значения параметра IssueIdOrKey, который вы хотите получить

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

});
...