使用jira-ruby更改Jira票证的状态

时间:2016-03-24 14:57:39

标签: ruby jira-rest-api

我试图使用jira-ruby gem来获取和更改jira票证的状态。 我已阅读this topic并尝试使用此代码:

require 'jira'
require '../lib/credentials'

options = {
    :username => $user_jira,
    :password => $pwd_jira,
    :site     => "https://example.atlassian.net",
    :context_path => '',
    :auth_type => :basic
}

client = JIRA::Client.new(options)
issue = client.Issue.find("AA-1495")
available_transitions = client.Transition.all(:issue => issue)
available_transitions.each {|ea| puts "#{ea.name} (id #{ea.id})" }

我有空输出。然后我在jira-ruby gem中打开transition.rb并添加了

pp path
pp response.body

到“self.all”方法。 然后我重新运行了我的第一个脚本并得到了这个输出:

"https://example.atlassian.net/rest/api/2/issue/16206/transitions"
"{\"expand\":\"transitions\",\"transitions\":[]}"
[Finished in 2.7s]

如果我尝试在浏览器的第一行输出中打开链接,我会获得有效的JSON以及我的jira票证的所有可用转换。所以链接还可以 据我所知,从第二行输出,jira对脚本的响应几乎是空的。

有人有这个问题吗?

1 个答案:

答案 0 :(得分:1)

首先,你必须得到你需要通过名字找到的Jira过渡对象:

jira_transition = issue.transitions.find{|jt| jt.name = "transition_name_you_need"}

然后,建立一个新的过渡来做和保存:

transition_to_do = issue.transitions.build
transition_to_do.save!("transition" => {"id" => jira_transition.id})

这就是全部;)

希望有所帮助