Скрипт выгрузки из Jira в Google-таблицы на php | OTUS
🔥 Начинаем BLACK FRIDAY!
Максимальная скидка -25% на всё. Успейте начать обучение по самой выгодной цене.
Выбрать курс

Курсы

Программирование
iOS Developer. Basic
-25%
Python Developer. Professional
-25%
Разработчик на Spring Framework
-25%
Golang Developer. Professional
-25%
Python Developer. Basic
-25%
iOS Developer. Professional
-25%
Highload Architect
-25%
JavaScript Developer. Basic
-25%
Kotlin Backend Developer
-25%
JavaScript Developer. Professional
-25%
Android Developer. Basic
-25%
Unity Game Developer. Basic
-25%
Разработчик C#
-25%
Программист С Web-разработчик на Python Алгоритмы и структуры данных Framework Laravel PostgreSQL Reverse-Engineering. Professional CI/CD Vue.js разработчик VOIP инженер Программист 1С Flutter Mobile Developer Супер - интенсив по Kubernetes Symfony Framework Advanced Fullstack JavaScript developer Супер-интенсив "Azure для разработчиков"
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-25%
DevOps практики и инструменты
-25%
Архитектор сетей
-25%
Инфраструктурная платформа на основе Kubernetes
-25%
Супер-интенсив «IaC Ansible»
-16%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-25%
Administrator Linux. Professional MS SQL Server Developer Безопасность Linux PostgreSQL Reverse-Engineering. Professional CI/CD VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Administrator Linux.Basic Супер-интенсив «ELK»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Выгрузка задач из Jira в Google-таблицы

QA_Deep_18.1_site-5020-f90c43.png

Для начала вам нужна установленная Jira, у которой включен доступ по Rest API. Далее требуется веб-сервер, где вы можете запускать PHP-код. Всего одна страница:

define('JIRA_URL', 'АДРЕС JIRA');
define('USERNAME', ИМЯ ПОЛЬЗОВАТЕЛЯ);
define('PASSWORD', 'ПАРОЛЬ');
$txt_jql = 'JQL-ЗАПРОС';
$jql = array('jql' => $txt_jql, 'maxResults' => '1000');

$jdata = json_encode($jql);
$ch = curl_init();

curl_setopt_array($ch, array(
CURLOPT_URL => JIRA_URL . '/rest/api/latest/search',
CURLOPT_USERPWD => USERNAME . ':' . PASSWORD,
CURLOPT_POSTFIELDS => $jdata,
CURLOPT_HTTPHEADER => array('Content-type: application/json'),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false
));
$result = curl_exec($ch);
curl_close($ch);
$result = json_decode($result);
if (property_exists($result, 'errors')) {
echo "Error(s) searching for issues:\n";
var_dump($result);
} else {
foreach ($result->issues as &$issue) {

echo($issue->key .

   "#" . $issue->fields->summary .

   "#" . $issue->fields->status->name .

   "~");
}
}

В переменную txt_jql надо записать JQL-запрос, который отбирает нужные вам задачи из Jira. В Google-таблице нужно добавить функцию, которая будет загружать данные из Jira:

function get_from_Jira() {
 var ss = SpreadsheetApp.getActive();
 var s = ss.getSheetByName("data");
 var txt_url = "АДРЕС ВАШЕЙ СТРАНИЦЫ.php";
 var obj_response = UrlFetchApp.fetch(txt_url);
 var txt_response = obj_response.getContentText();
 var arr_response = txt_response.split("~");
 arr_response.pop(); //удаляем последний пустой элемент массива

 var int_i = 0;
 var arr_task;
 for (int_i = 0; int_i <= arr_response.length - 1; int_i++) {
   arr_task = arr_response[int_i].split("#");
   arr_response[int_i] = arr_task;
 }

 s.clear();
 s.getRange(1,1,1,3).setValues([['Key', 'Summary', 'Status']]);
 var r = s.getRange(2, 1, arr_response.length, 3);
 r.setValues(arr_response);
}

Почему не запрашивать напрямую из Google Apps Script'а данные из Jira?

Из соображений ограничения доступа: нам изначально надо было предоставить коллегам только информацию о названии и статусе задач, но не о содержании: если вы кому-нибудь дадите доступ к этому документу, то у него будет и доступ к вашему скрипту и я не нашёл способ, как скрыть логин и пароль к Jira в Google Apps Script.

Дополнительно, можно поставить базовую авторизацию, чтобы и к странице с выгрузкой данных из Jira никто не мог получить доступ. Дальше с данными загруженными в таблицу можно делать всё что угодно средствами Google-таблиц.

Есть вопрос? Напишите в комментариях!

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
🎁 Максимальная скидка!
Черная пятница уже в OTUS! Скидка -25% на всё!