导出集会项目数据

时间:2014-01-31 12:27:46

标签: ruby rally

是否可以从集会中导出整个项目及其所有数据?如何?可以用Ruby rally_api来完成吗?

由于

1 个答案:

答案 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文件,但我没有它的工作示例。