JIRA上の右上の歯車 > JIRA管理 > システム > 左側のメニューの「詳細」 > Webフック > Webフックの作成
から新規Webhookを作成できる
→Webhookの管理(公式のリファレンス)
設定する項目は主に以下の4箇所
- 名前
- Webhookに名前をつけられる
- URL
- Google Apps ScriptでWebアプリを作成して、そのURLをこのWebhookのURL欄に入れる
- 説明
- Webhookの説明を書ける
- イベント
- JQLで対象のプロジェクトなどを指定
- 作成、更新、削除など受け取りたい通知設定にチェックを入れて「作成」する
WebhookのURLに設定するWebアプリのコード例
e.postData.contentsでJSONを受け取って
内容をGoogleドライブに書き出してみるコード
(コード内のFOLDER_IDを任意のフォルダIDに設定)
コード.gs
function doPost(e) {
var json = e.postData.contents;
create_file(json);
}
function create_file(json) {
var content_type = "application/json";
var file_name = "JIRA_webhook_test";
var blob = Utilities.newBlob("", content_type, file_name);
var file = blob.setDataFromString(json, "UTF-8");
var folder = DriveApp.getFolderById("FOLDER_ID");
folder.createFile(file);
}
|
スクリプトエディタの上部メニューの「公開」 > 「ウェブアプリケーションとして導入」 > 新規作成で変更の内容を書いて > 次のユーザーとしてアプリケーションを実行: で「自分」を選択 > アプリケーションにアクセスできるユーザー: で「全員(匿名ユーザを含む)」を選択 > 「導入」> 現在のウェブ アプリケーションの URL:の欄のURLがこのWebアプリのURL
ISSUE_KEYを取得してみる
- var data = JSON.parse(json)
- var key = data["issue"]["key"]
でISSUE_KEYを取得してGoogleドライブに書き出してみる
コード.gs
function doPost(e) {
var json = e.postData.contents;
var data = JSON.parse(json);
var key = data["issue"]["key"];
create_file(JSON.stringify(array));
}
function create_file(json) {
var content_type = "application/json";
var file_name = "JIRA_webhook_test";
var blob = Utilities.newBlob("", content_type, file_name);
var file = blob.setDataFromString(json, "UTF-8");
var folder = DriveApp.getFolderById("FOLDER_ID");
folder.createFile(file);
}
|