忍者ブログ

ひつ(じのひよこが)プログラミングします。
お仕事や趣味で困ったこととか、何度も「あれ?どうだったかしら」と調べたりしたこととか、作ったものとか、こどものこととかを書きます
★前は週末定期更新でしたが今は不定期更新です

2025/02    01« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  »03

Jira Software の issue のステータスを更新するときは Do transition する

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

Jira Software の issue のステータスを更新するときは Do transition する

概要

Jira Software の Issue の Status を更新する際は Edit issue ではなく Do transition を使う。

Issue のステータスは何か値が入っている、というわけではなく Issue の流れを管理するものなので、値を更新するのではなく次の状態に遷移させる、ということらしい。

チェック済の Issue を60を close しなければならず、心が折れかけたのでこれを使ってごりごり実施した。GUI からまとめて close する機能があったわ……

サンプル

transition の ID を確認する

更新した 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)
})
PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R