[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ただいまコメントを受けつけておりません。
Jira Software の Issue の Status を更新する際は Edit issue ではなく Do transition を使う。
Issue のステータスは何か値が入っている、というわけではなく Issue の流れを管理するものなので、値を更新するのではなく次の状態に遷移させる、ということらしい。
チェック済の Issue を60を close しなければならず、心が折れかけたのでこれを使ってごりごり実施した。GUI からまとめて close する機能があったわ……
更新した issue から transition の ID を取得できる。
Issue の URL が https://hiyoko.atlassian.net/browse/TASK-1192 であれば https://hiyoko.atlassian.net/rest/api/2/issue/TASK-1192?expand=transisions.fields にアクセスする。これで issue の情報を json で取得できるので .transisions を探す。ここに含まれる要素が次に移り得る状態である。この値は以下のような形を取る。この id を使えば良く、以下の場合は 82 を使う。
[
{
"id": "82",
"name": "おしょまい",
"to": {}, // 略
// 後略
},
{
//略
}
]
例によって jQuery で恐縮だが次のようにすると変えられる。Jira Software の画面から開発者コンソールで直接叩けば実行できた。なお、statusNumber は上述の transition の ID をとる。
var yourDomain = 'あなたの Jira Software のドメイン名';
var updateIssueStatus = (issueId, statusNumber) => {
jQuery.ajax({
type: 'POST',
url: `https://${yourDomain}/rest/api/2/issue/${issueId}/transitions`,
contentType: 'application/json',
data: `{"transition": {"id": "${statusNumber}"}}`,
dataType: 'json'
}).done(console.log);
}
後は煮るなり焼くなりすればよい。
['TASK-1192', 'TASK-1333', 'TASK-1967'].forEach((id) => {
updateIssueStatus(id, 82)
})ただいまコメントを受けつけておりません。