JIRAへの定期的なタスクの追加をGoogleスプレッドシートとGASで自動化する
セブンシックスでは、タスク管理にJIRAを利用しています。
ただ、JIRAには定期的にタスクを作成する機能がありません。毎月発生する作業は、その都度、タスクを作成しないといけないのでちょっと面倒です。それに、忙しいときなどタスクの追加を忘れそうで心配です。
これを何とかできないかと試行錯誤した結果、手頃なところでGoogleスプレッドシートとGASを使ってタスクの自動作成ができるようになりました。せっかくなので、やり方を共有します。
JIRAはメールからタスクを作成できる
JIRAには、メールからタスクを作成する機能が標準で備わっています。これ、使い方によってはとっても便利な機能です。
例えば、このセブンシックスのウェブサイトのお問い合わせフォームもJIRAにメールが飛ぶようになっていて、お問い合わせ内容が自動的にJIRAタスクとして追加されるようになっています。これなら、対応を忘れることもありませんね。
この「メールからタスクを作る機能」をうまく使えば、定期的なタスクを自動作成できるのではないかと考えたのが全てのはじまりです。
GASを使えば定期的にメールが送信できる
メールからタスクが作れることは分かりましたね。あとは、自動で定期的にメールを送る仕組みが必要です。なにやら、GoogleスプレッドシートとGASを使えば結構カンタンにできそうです。
具体的には、メール送信するGASを書いて、トリガーで定期的に実行させるだけ。せっかくGoogleスプレッドシートを使うので、シートにタスクを複数記載しておけば、それをもとに件名や本文を作成してメールが一括で送信されるようにします。
JIRAの設定
JIRAで、メールからタスクを作成できるようにするには設定が必要です。
設定は、「設定」→「システム」→「受信メール」→「メール ハンドラー」から行います。
「受信メール ハンドラーの追加」をクリックします。
- 名前:何でもいい
- サーバ:デフォルトのCloudメールサーバー
- ハンドラー:各メールのメッセージから新規課題の作成
を選択して次へ進みます。次ページの項目は必要に応じて設定してください。
これで、デフォルトのCloudメールサーバー(jira@xxxxxxxx.atlassian.netなどのメールアドレス)に送信したメールがタスクとして自動作成されるようになります。
スプレッドシートの作成
スプレッドシートを作成します。
今回の例では、上図のようにA列にチェックボックス、B列にタスク名、C列に詳細内容を記載したスプレッドシートがあると仮定します。
GASの記述
スプレッドシートから「ツール」→「スクリプトエディタ」でGASの編集画面に入ります。
function mail(){ var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート名'); //対象となるシート var firstRow = 2; //取得する先頭行 var lastRow = sheet.getDataRange().getLastRow(); //取得する最終行 var searchColumn = 1; //判定する列 var subjectColumn = 2; //件名の列 var bodyColumn = 3; //本文の列 for(var i=firstRow;i<=lastRow;i++){ if(sheet.getRange(i,searchColumn).getValue()){ var subject = sheet.getRange(i,subjectColumn).getValue(); var body = sheet.getRange(i,bodyColumn).getValue(); MailApp.sendEmail({ to: 'jira@xxxxxxxx.atlassian.net', //JIRAのメールアドレス subject: subject, body: body }); } } }
上記をコピペして保存しましょう。名前は何でもいいです。
何をしているかというと、対象となるシートの指定した列のチェックボックスがオンになっているかを判定して、オンになっていたら件名と本文を取得してメールを送っています。あなたの環境やお好みに合わせて書き換えてください。
トリガーの作成
GASの編集画面から「編集」→「現在のプロジェクトのトリガー」でトリガー編集画面に入ります。
今回は、毎月1日にメールを送信する設定をします。
「トリガーを追加」をクリックして新規作成。
- 実行する関数:mail(さきほど書いた関数名)
- イベントのソース:時間主導型
- 時間ベースのトリガーのタイプを選択:月ベースのタイマー
- 日を選択:1日
- 時刻を選択:好きな時間
で、保存。これで、毎月1日に自動でmail関数が実行されるようになりました。
というわけで完成
こんな感じで、JIRAタスクの定期作成が自動化できます。
思ってたよりもカンタンにできましたね。やったー。
今回は最低限のことだけざっくりと説明しましたが、応用すれば色々な用途に使えそうです。ぜひ今回のサンプルをアレンジして、お仕事の効率化にお役立てください!