我想将一个用户故事从一个项目复制到另一个项目。如何使用红宝石来完成这个?
我知道有一个深拷贝应用程序,但只能一个一个地复制。我有成千上万的用户故事要管理。
有没有像@rally.copy 这样的功能?
Rally api takeit 中没有内置复制便捷方法。在同一工作空间内将故事从一个项目移动到另一个项目可以通过 3 个步骤完成:
获取目标项目的 ref
project = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/project/2222" }
查询您要更新的故事
results = @rally.find(query)
批量更新故事
results.each do |s|
field_updates = {"Project" => project}
s.update(field_updates)
end
复制将更加困难,因为这将需要从一个项目中读取故事以获取其数据,然后使用该数据创建新故事@rally.create
。为避免并发问题,请在不复制其子/父关系的情况下创建故事。只有在故事创建后,您才能阅读新创建的故事并通过更新父字段将它们拼接在一起,例如
获取父母的参考
parent = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement/7777" }
找到要更新的故事
children = @rally.find(query)
更新
children.each do |s|
field_updates = {"Parent" => parent}
s.update(field_updates)
end
看看rally gem
。拉力赛 API