我可以在我的 fetch 中包含变更集:
query.type = :build
query.fetch = "Status,Uri,Changesets"
但我不知道如何阅读更改以获取与它们关联的工件。根据 API 文档,变更集集合是不可查询的。
当您获得 Builds 结果时,您可以迭代两个集合:每个 Build 上的 Changesets 和每个 Changeset 上的 Artifacts。这是一个使用 rally_api gem 的 Ruby 代码,它打印出相关工件的 FormattedID:
@rally = RallyAPI::RallyRestJson.new(config)
query = RallyAPI::RallyQuery.new()
query.type = :build
query.fetch = "Status,Uri,Changesets,Changeset,Revision,Artifacts,FormattedID"
query.workspace = {"_ref" => "https://rally1.rallydev.com/slm/webservice/1.43/workspace/1111.js" } #use valid OID
query.project = {"_ref" => "https://rally1.rallydev.com/slm/webservice/1.43/project/2222.js" } #use valid OID
query.query_string = "(ObjectID = 3333)" #use valid OID
results = @rally.find(query)
change_sets = []
artifacts = []
results.each do |b|
b.read
puts "Status: #{b["Status"]}, Uri: #{b["Uri"]}"
b["Changesets"].each do |c|
c.read
puts "Revision: #{c["Revision"]}"
change_sets<<c
end
end
change_sets.each do |c|
if (c["Artifacts"])
c["Artifacts"].each do |a|
a.read
puts "FID: #{a["FormattedID"]}"
artifacts<<a
end
end
end