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

使用Jira ruby更改Jira票证的状态,ruby,jira-rest-api,Ruby,Jira Rest Api,我尝试使用jira ruby gem获取并更改jira票证的状态。 我已经阅读并尝试使用以下代码: require 'jira' require '../lib/credentials' options = { :username => $user_jira, :password => $pwd_jira, :site => "https://example.atlassian.net", :context_path

我尝试使用jira ruby gem获取并更改jira票证的状态。 我已经阅读并尝试使用以下代码:

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
到“自我所有”的方法。 然后我重新运行了我的第一个脚本,得到了以下输出:

"https://example.atlassian.net/rest/api/2/issue/16206/transitions"
"{\"expand\":\"transitions\",\"transitions\":[]}"
[Finished in 2.7s]
如果我试图在浏览器中打开第一行输出的链接,我会得到有效的JSON,以及我的jira票证的所有可用转换。所以链接是可以的 正如我从第二行输出中了解到的,jira对脚本的响应几乎是空的


有人遇到了这个问题?

首先,您必须通过名称获取需要查找的Jira transition对象:

jira_transition = issue.transitions.find{|jt| jt.name = "transition_name_you_need"} jira|u 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}) transition_to_do=issue.transitions.build 转换为保存!(“transition”=>{“id”=>jira_transition.id}) 就这些;)

希望有帮助

请检查此项,它将有助于提高您的内容质量