2017-04-14 14 views
0

REST APIを使用してJiraの問題フィールドを更新しようとしていますが、サマリー、説明、優先度、レポーターの各フィールドはステータスに更新できます。ここでJiraの問題ステータスが更新されない

は、私が実行しようとしていますコードです:

string jSonContent = (@" 
    { 
     ""fields"": { 
      ""summary"": ""data"", 
      ""description"": ""modified."", 
      ""priority"": {""name"": ""val""}, 
      ""reporter"": {""name"": ""[email protected]""}, 
      ""status"": {""name"": ""WORK IN PROGRESS""} 
     } 
    }").Replace("data", summ).Replace("modified.", desc).Replace("val", pri); 

request.AddParameter("application/json", jSonContent, ParameterType.RequestBody); 

var response = Execute(request); 

答えて

1

あなたが問題の状態にそのような方法を変更することはできません。

は、メタデータのためのGETを行うシンプルなPUT要求で変更することができフィールドの種類を決定するには、次の順番で

https://{your-jira-url}/rest/api/2/issue/{issueIdOrKey}/editmeta 

このクエリでは、あなたが変更することができ、すべてのフィールドを提供します。返されたJSONオブジェクトにはstatusフィールドはありません。

問題に戻る:問題のステータスはどう変わる可能性がありますか? Jiraには、状態間の遷移を保持するワークフローがあります。状態を変更するには、移行を行う必要があります。 (。あなたはUI上でそれを行うだろうとまったく同じ方法)

だから、最初にそのようなGETリクエストを実行します。

https://{your-jira-url}/rest/api/2/issue/{issueIdOrKey}/transitions?expand=transitions.fields 

この要求は、あなたの問題の現在の状態のすべての可能な遷移を返します。実行したいトランジションをチェックし、そのIDをメモします(私の場合は、希望IDは11です)。注意すべき

https://{your-jira-url}/rest/api/2/issue/{issueIdOrKey}/transitions 

{ 
    "transition": { 
     "id": "11" 
    } 
} 

1つの追加の事:この移行IDを使用すると、JSONペイロードを持つPOSTリクエストを行うことができ、あなたの移行が簡単なものでないなら、あなたはより多くのデータを提供しなければなりません。つまり、UI上のボタンをクリックするだけで、移行のための余分な画面が表示されない単純な移行を意味します。たとえば、コメントを追加した場合にのみ問題を解決できるような移行をセットアップできます。幸いにも、以前に返された移行リストには、移行IDと共に提供する必要のある、または移行IDとともに提供する必要があるすべてのフィールドが含まれています。

公式のJira documentationで詳細を見つけることができます。

関連する問題