私が勤めている会社ではタスク管理アプリとしてヌーラボ社の Backlog という Webアプリケーションを使用しています。
前回API経由でチケットを発行する方法を説明しました。
今回は、月末の締め処理や月次の報告書作成など定期的に発生する作業のチケットを自動で発行されるようにしていきたいと思います。
実現したいこと
- 「毎月〇日」や「毎週〇曜日」等の条件で自動的にチケットを発行したい
- 専用のハードウェア(パソコンやラズパイなど)は使わない
- 設定や処理内容の変更を簡単に行いたい
自分が使える環境としては以下の環境があります。
- Google Cloud Functions や AWS Lambda といった FaaS
- Microsoft Power Automate
- Google App Script
このうち Power Automate については、会社で契約している Microsoft 365 で使用できる範囲では外部のAPI呼び出しができない(HTTPコネクタがプレミアムコネクタ扱いになっている)ため選択肢から除外されます。
Google Cloud Functions は業務での使用経験もあるので第一候補に挙がりますが、エンジニア以外の方でも利用しやすいように今回は Google App Script を使ってみたいと思います。
作成したスクリプト
今回作成したスクリプトは以下のとおりです。
課題の追加をするときに使用するAPIの詳細はこちらを参照してください。
const BACKLOG_HOST = PropertiesService.getScriptProperties().getProperty('BACKLOG_HOST'); // BacklogのURL
const BACKLOG_API_KEY = PropertiesService.getScriptProperties().getProperty('BACKLOG_API_KEY'); // 取得したAPI Key
const PROJECT_ID = xxxxx; //対象プロジェクトのIDを入力する 例:12345
function create_issue() {
const apiURL = BACKLOG_HOST + "/api/v2/issues?apiKey=" + BACKLOG_API_KEY;
let today = new Date();
//APIのリクエストでPOSTデータするパラメーターを設定する
const payload = {
'projectId': PROJECT_ID,
'summary': "xxxx", // 課題のタイトル
'issueTypeId':'xxxxx', // 課題の種別
'priorityId':'x', // 課題の優先度
'assigneeId':'xxxx', // 課題の担当者
'description':'ここに課題の内容を書く。\n改行や\n\n* [ ] 箇条書きも書ける'
};
//HTTP POSTで前述で設定したパラメーターをオプションで設定する。
const options = {
'method' : 'post',
'contentType':'application/json',
'muteHttpExceptions':true,
'payload' : JSON.stringify(payload)
};
//APIにリクエストし、結果をログ出力する
let responseDataPOST = UrlFetchApp.fetch(apiURL,options).getContentText();
console.log(responseDataPOST);
}
スクリプトの説明
Backlog の URL と APIキーはソースコードの中ではなく、「プロジェクトの設定」の「スクリプトプロパティ」で設定します。
projectId
,issueTypeId
,priorityId
,assigneeId
を調べる方法は前回の記事を参考にしてください。
自動実行の設定
スクリプトを自動で実行するための設定は「トリガー」から行います。
「トリガーを追加」をクリックします。
各種パラメータを設定します。
私は毎月1日の7時~8時に実行されるように設定しました。
まとめ
今回は Google App Script から Backlog API を使ってチケットを自動発行する方法を紹介しました。
Backlog 以外でも API を公開しているサービスなら Google App Scriptを使って色々と自動化できそうです。
最後に、Google App Scriptなどのクラウドサービスを使用する場合、必ず勤め先のセキュリティポリシー等を確認して自己責任において実施してください。
コメントを残す