2013-07-15 110 views
0

我有以下代碼(來自jira-ruby gem api doc)。它成功更新了「評論」,但不是Jira中的自定義字段值。我確信自定義字段的名稱在json轉儲中是正確的。建議任何選擇?使用Jira-Ruby gem(REST API)更新Jira自定義字段不起作用

任何的幫助深表感謝,

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") 

回答

1

一個良好的開端是使用捲曲了類似的呼籲:

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服務器和端口)

文件request.txt應該包含json請求:

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

在我的情況下工作,不過JIRA,紅寶石寶石做出了不同的要求:它曾經像/ REST/API/2 /問題/ 22241的路徑,導致與人體消息

"Field 'customfield_11530' cannot be set. It is not on the appropriate screen, or unknown." 
一個400錯誤請求錯誤

要解決我在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目錄/擦機上y/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 
相關問題