Инструментарий Rally Ruby: как получить URL-адрес состояния элемента портфеля?

Есть ли пример в Ruby, использующий rally_api, как установить состояние функции, как указано здесь ?

В частности, есть ли способ запросить ObjectID или полный путь состояния для использования

"State" => "Developing"

вместо

"State" => "/state/<ObjectID>"

person user123456    schedule 18.07.2013    source источник


Ответы (1)


Можно запросить состояние, создать хэш и заполнить хэш результатами запроса, где имя состояния — это ключ, а _ref — значение:

state_results.each do |s|
    s.read
    state_hash[s["Name"]] = s["_ref"]
end

Затем мы можем обновить состояние:

features.each do |f|
    field_updates={"State" => state_hash["Developing"]}
    f.update(field_updates)
end

Вот пример кода:

@rally = RallyAPI::RallyRestJson.new(config)

queryState = RallyAPI::RallyQuery.new()
queryState.type = :state
queryState.fetch = "true"
queryState.workspace = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/workspace/11111" } 
queryState.project = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/project/22222" } #use valid OIDs
queryState.query_string = "(TypeDef.Name = \"Feature\")"

state_hash = Hash.new

state_results = @rally.find(queryState)

state_results.each do |s|
    s.read
    #puts "Ref: #{s["_ref"]}, Name: #{s["Name"] }, TypeDef: #{s["TypeDef"]}" 
    state_hash[s["Name"]] = s["_ref"]
end 

query = RallyAPI::RallyQuery.new()
query.type = "portfolioitem/feature"
query.fetch = "Name,FormattedID"
query.workspace = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/workspace/1111" } 
query.project = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/project/22222" } #use valid OIDs
query.query_string = "(Name = \"my feature\")"


results = @rally.find(query)
features = [];

results.each do |f|
     f.read
     puts "Current state of Feature #{f["FormattedID"]}: #{f["State"].to_s}"
     features << f
end


features.each do |f|
    field_updates={"State" => state_hash["Developing"]}
    f.update(field_updates)
    puts "Feature #{f["FormattedID"]} is now in State: #{f["State"].to_s}"
end
person nickm    schedule 18.07.2013