是否可以从集会中导出整个项目及其所有数据?如何?可以用Ruby rally_api来完成吗?
由于
答案 0 :(得分:1)
Web Services API中的Project对象没有引用其中所有数据的属性。如果整个项目中您指的是项目中的所有工件,迭代,发布,修订历史等,则WS API中没有单个对象可以返回整个项目。单个请求将不会执行此操作。如果要导出工件,通常必须一次导出一个类型。这当然可以使用rally_api来完成,但是您遇到的限制并非特定于此ruby gem,而是WS API,它不提供导出与项目相关的所有数据的方法。
以下是在同一工作区内将缺陷从一个项目移动到另一个项目的示例。如果原始和指定项目位于不同的工作空间中,则这将不起作用,因为Web服务请求的范围限定为工作空间。如果要在项目中包含所有缺陷,可以按格式化ID注释掉查询。我建议在移动所有这些代码之前测试一个工件上的代码。
config = {:base_url => "https://rally1.rallydev.com/slm"}
config[:username] = "user@co.com"
config[:password] = "secret"
config[:workspace] = "W1"
config[:project] = "Top Project"
config[:version] = "v2.0"
@rally = RallyAPI::RallyRestJson.new(config)
query1 = RallyAPI::RallyQuery.new()
query1.type = :project
query1.fetch = "Name,ObjectID"
query1.workspace = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/workspace/12352608129.js" }
query1.query_string = "(Name = \"My Project 2\")"
results1 = @rally.find(query1)
project = results1.first
puts project
query2 = RallyAPI::RallyQuery.new()
query2.type = :defect
query2.fetch = "Name,FormattedID,Project"
query2.workspace = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/workspace/12352608129.js" }
query2.query_string = "(FormattedID = DE74)"
results2 = @rally.find(query2)
results2.each do |d|
d.read
field_updates = {"Project" => project}
d.update(field_updates)
puts "Defect #{d["FormattedID"]} was moved to project: #{d["Project"]}"
end
如果要从Rally中导出工件,例如使用rally_api也可以使用csv文件,但我没有它的工作示例。