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); } |