税理士試験消費税法の理論暗記の管理に、Jiraのかんばんボードを使っています。
最後に触れてからどのくらい経過したかをボード上で見たかったので、スクリプトを作成してみました。
使用方法
- スクリプトにサイト名、プロジェクトキー、経過日数を設定するカスタムフィールドキーを設定する
- Jiraの画面に対する、ブラウザのデバッグコンソール画面を開き(F12)、そこにスクリプトを貼り付けて実行する
- エラーが出なければ完了
const site = 'xxx.atlassian.net';
const project = 'CTT'; // プロジェクトキー
const customFields = 'customfield_10851'; //カスタムフィールドID
const elapsedDays = (datetime) => {
const currentDate = new Date();
const updatedDate = new Date(datetime);
const differenceInMs = currentDate.getTime() - updatedDate.getTime();
const differenceInDays = Math.floor(differenceInMs / 86400000);
return differenceInDays;
}
const foo = async () => {
const res = await fetch(`https://${site}/rest/api/2/search?jql=project=${project}&maxResults=1000&fields=comment`);
const json = await res.json();
json.issues.forEach((issue) => {
const comments = issue.fields.comment.comments;
const lastComment = comments[comments.length - 1];
const days = elapsedDays( lastComment ? lastComment.updated : issue.fields.created);
const data = {
fields: {
}
};
data.fields[customFields] = days;
fetch(`https://${site}/rest/api/2/issue/${issue.key}`, {
method: 'PUT',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
}).catch(err => console.error(err));
});
console.dir(json);
};
foo();
経過日数の計算方法は、ChatGPTに教えてもらいました(thanks)。