简短的回答参考微软 积压/不存在/选项中没有简单的方法解释1
,但我使用了选项2
和选项3
,我希望这对你有帮助,我努力了一点!
- 根本问题是您从 1) 查询
Bottom to Top in DevOps build Hierarchy/Object Model
,并且您需要 2) Associate the shelveSets versioned changeSet
& 然后到构建。
2. TLDR,我只是按照practice of prefixing/Tags
我的shelveSets
允许我自定义查询选项中列出的构建3
。这让我可以在 REST API 查询中很好地简化它tagFilters={tagFilters}
,例如ShelveSetBuildTag-....
// now modify you REST API filter `ShelveSetBuildTag-....`
GET https://dev.azure.com/{organization}/{project}/_apis/build/builds?definitions={definitions}&queues={queues}&buildNumber={buildNumber}
&tagFilters={tagFilters}&buildIds={buildIds}&repositoryId={repositoryId}&repositoryType={repositoryType}&api-version=6.0
选项 1:没有示例,MS 构建文档对我来说很清楚,并且没有帮助,但它尽可能列出,我放弃并采取了不同的路线,如下..
选项 2:
因为shelveSet
s 是未版本化的Azure DevOpschangeSets
根据其ER/DB 设计使用版本化,I had to get the associated shelveSets via ChangeSets/or WorkItems in a build.
首先,我发现一篇很好的文章可以帮助我理解两个关键项目之间的关系和区别,以及Azure DevOpschangeSet
与shelveSet
构建的关系。这changeSet
将允许您找到相关 shelvesets
的构建、查询和获取DimChangeset
,我怀疑您必须通过几个步骤来完成此操作。
下图与以下维度表相关:
- DimBuild
- 昏暗的变更集
- 昏暗的人
- 昏暗的团队项目
恕我直言版本控制允许您获得您的changeset associated with a build
,然后您可以获得进入该变更集的搁置集
第 1 步:获取ShelveSet 的 changetSets
获取https://dev.azure.com/fabrikam/_apis/tfvc/shelvesets/changes?shelvesetId=我的第一个搁置集;d6245f20-2af8-44f4-9451-8107cb2767db&api-version=6.0
第 2 步:获取
获取构建中的更改
https://{instance}/DefaultCollection/{project}/_apis/build/builds/{buildId}/changes?api-version={version}
第 3 步:我manually join
的中间件中的响应
选项 3:
关注practice of tagging
你的shelveSets
然后,您使用标签文件管理器进行查询:tagFilters={tagFilters}
在您的构建查询中
使用您的搁置集中的标签并从您的构建列表中过滤tagFilters={tagFilters}
,当然这假设您设置了标签
// ``tagFilters={tagFilters}``for your shelveset assuming you set those up
GET https://dev.azure.com/{organization}/{project}/_apis/build/builds?definitions={definitions}&queues={queues}&buildNumber={buildNumber}&minTime={minTime}&maxTime={maxTime}&requestedFor={requestedFor}&reasonFilter={reasonFilter}&statusFilter={statusFilter}&resultFilter={resultFilter}&tagFilters={tagFilters}&properties={properties}&$top={$top}&continuationToken={continuationToken}&maxBuildsPerDefinition={maxBuildsPerDefinition}&deletedFilter={deletedFilter}&queryOrder={queryOrder}&branchName={branchName}&buildIds={buildIds}&repositoryId={repositoryId}&repositoryType={repositoryType}&api-version=6.0