[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) })
ただいまコメントを受けつけておりません。