0

次のコードがあります (jira-ruby gem api doc から)。「コメント」は正常に更新されますが、Jira のカスタム フィールド値は更新されません。json ダンプでカスタム フィールドの名前が正しいことを確認しました。代替案はありますか?

どんな助けでも大歓迎です、

output = File.new("jira_dump2.json","w+")

issue = client.Issue.find("DEV-XXXXX")
output.puts issue.to_json

#this throws no errors and does not work
issue.save({"fields"=>{"customfield_11530"=>"a0x40000000PHet"}})

#this following code works
comment = issue.comments.build
comment.save!(:body => "This is a comment added from REST API newer" )
4

1 に答える 1

1

適切な開始は、同様の呼び出しに curl を使用することです。

curl -D- -u user:password -X PUT --data @request.txt -H "Content-Type: application/json" http://jira-server:port/rest/api/2/issue/DEV-XXXXX

(ユーザー、パスワード、jira-server、およびポートを置き換えます)

ファイル request.txt には、json リクエストが含まれている必要があります。

{"fields":{"customfield_11530":"a0x40000000PHet"}}

私の場合はうまくいきましたが、jira-ruby gem は別のリクエストを作成しました: /rest/api/2/issue/22241 のようなパスを使用したため、本文メッセージで 400 Bad Request エラーが発生しました

"Field 'customfield_11530' cannot be set. It is not on the appropriate screen, or unknown."

宝石を修正するために、宝石のbase.rbでこれらの行を変更しました

417       if @attrs['self']
418         @attrs['self'].sub(@client.options[:site],'')
419       elsif key_value
420         self.class.singular_path(client, key_value.to_s, prefix)

これに:

417       if key_value
418         self.class.singular_path(client, key_value.to_s, prefix)
419       elsif @attrs['self']
420         @attrs['self'].sub(@client.options[:site],'')

(私のマシンでは "/usr/local/lib/ruby/gems/2.0.0/gems/jira-ruby-0.1.2/lib/jira" にあります)

それはトリックをしました。うまくいけば、それはあなたにも役立ちます。ここで、メンテナーの JIRA システムの問題の状態を確認できます: http://jira.sumoheavylabs.com/browse/JR-3

コードでさらにエラー情報を取得したい場合は、次のようにします。

begin
    issue.save!( updateHash )
rescue JIRA::HTTPError => e
    puts e.response.code
    puts e.response.message
    puts e.response.body  
end 
于 2013-08-21T14:36:00.770 に答える