はじめに
弊社ではチャットワークを導入しておりほとんどのやり取りをチャットワークで行なっていたのですが、人が増えるにつれ情報が流れたり錯綜し、混乱する事が多くなってきました。
その解決策としてJiraを導入する事が決定し、APIを利用してChatworkに通知したりその他ほにゃららするツールを作ることになりました。
しかし「PHP Jira API 連携」などと調べてもそれらしき記事が意外にも出てこなく、最初の情報を取得するフローで一番苦労したので記事として残しておきます。
目的
JiraのAPIを利用して指定したissueの情報を取得する
準備
- Jiraのアカウントを取得する
- API Tokenの発行
実装
sample.php
<?php
$username = 'Jiraのユーザー名';
$api_token = '取得したAPIトークン';
// 取得したいissueのキー
$issue_key = 'issue_key';
// あなたのJiraのURL
$base_url = 'https://hogehoge.atlassian.net';
$url = $base_url . '/rest/api/2/issue/' . $issue_key;
// 認証
$header = array();
$header[] = "Content-Type: application/json";
$header[] = "Authorization: Basic " . base64_encode($username . ":" . $api_token);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_HTTPHEADER => $header,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false,
);
// 情報を取得
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
$result = json_decode($result, true);
// 取得した情報をデバッグ
var_dump($result);
これで特定のissueの情報は取得できると思います。
この$result
の中に担当者、報告者、コメントなど全ての情報が入っているので欲しい情報を絞り込んでチャットワークに通知したりできます。
まとめ
「コメントが追加された時」「チケットが追加された時」などにチャットワークに通知させたい時はJiraでWebhookの設定ができるので、そこから発火させてあげればいいです。
もっと便利な使い方もあると思うので今後はJiraを使いこなして行きたいですね。