有没有办法让工作区的rally ruby rest api调用返回所有工作区,而不是只返回默认值?

有没有办法让工作区的rally ruby rest api调用返回所有工作区,而不是只返回默认值?,ruby,rally,workspace,Ruby,Rally,Workspace,我想通过ruby toolkit调用rally rest api以获取订阅的所有工作区,如下所示: query = RallyAPI::RallyQuery.new() query.type = "workspace" query.fetch = "ObjectID,Name" query.project_scope_up = false query.project_scope_down = true query.order = "Name Asc" query.query_string = "

我想通过ruby toolkit调用rally rest api以获取订阅的所有工作区,如下所示:

query = RallyAPI::RallyQuery.new()
query.type = "workspace"
query.fetch = "ObjectID,Name"
query.project_scope_up = false
query.project_scope_down = true
query.order = "Name Asc"
query.query_string = ""
errors = query.validate()
findResults = @connection.find query
但是这个调用显然只返回默认的工作区

在通过Subscription对象导航时,我已经半成功地导航到了所有工作区的列表,但我更愿意遵循一种标准方法来查找实体类型,如上图所示


有人知道通过直接查询工作区类型来获取所有工作区的方法吗?

WS-API调用是工作区范围的。以上代码始终只返回默认工作区,并且可以通过Subscription对象访问工作区,这是正确的。以下是一个例子:

require 'rally_api'

#Setup custom app information
headers = RallyAPI::CustomHttpHeader.new()
headers.name = "My Utility"
headers.vendor = "Nick M RallyLab"
headers.version = "1.0"

# Connection to Rally
config = {:base_url => "https://rally1.rallydev.com/slm"}
config[:username] = "user@domain.com"
config[:password] = "secret"
config[:workspace] = "W1"
config[:project] = "P1"
config[:headers] = headers #from RallyAPI::CustomHttpHeader.new()

rally = RallyAPI::RallyRestJson.new(config)


query = RallyAPI::RallyQuery.new()
query.type = :subscription
query.fetch = "Name,Workspaces,ObjectID"

results = rally.find(query)

sub = results.first
puts sub["Name"]
workspaces = sub["Workspaces"]

workspaces.each do |w|
    puts "Name: #{w["Name"]}, OID: #{w["ObjectID"]}"
end
每当查询要查看默认工作区之外的内容时,都可以指定非默认工作区。以下是一个查询默认工作区之外缺陷的示例:

query = RallyAPI::RallyQuery.new()
query.type = :defect
query.fetch = "Name,FormattedID,CreationDate,Owner,UserName"
query.workspace = {"_ref" => "https://rally1.rallydev.com/slm/webservice/1.29/workspace/7777.js" } #optional
query.query_string = "(Owner.UserName = user@company.com)"
我想加上

query.workspace = "null"

将删除默认情况下应用于查询的工作区范围。我还没有在Ruby客户端上尝试过这一点,但我认为它应该可以工作。

谢谢nick,你知道相关工作区对象上流行的“获取”行为是什么吗?是否有任何方法可以指定它,或者它将始终只是对工作区的“精简”引用,需要1次(或更多)到服务器的属性往返?如果需要额外的往返,那么每个关联对象(在本例中为每个工作区)是否至少需要一个往返?StandardError:进行Rally查询时出错:[“工作区-空-必须有一个引用”]