【发布时间】:2018-07-10 10:03:12
【问题描述】:
我遇到了一个问题,这似乎表明 Git 的 VSTS REST API 在边缘情况下无法正常工作。我的目标是通过变基壁球验证是否已从 VSTS 中删除提交;我有 projectId、repositoryId 和 commit hash 可用,并且 API 提供了一种简单的方法 - 或者我认为 - 通过在检索提交时设置“ExcludeDeletes”参数,但它对我来说不能正常工作:我仍然得到来自 VSTS 的提交,就好像它存在一样。
工作流程:
- 创建一个存储库。
- 创建 3 个提交。
- 推送到远程。
- 通过执行交互式 rebase --onto 对第二次提交进行 rebase-squash
- 强制推送到远程(可能需要先设置权限)
- 通过“git log | grep”观察本地不存在的提交
- 通过 ProjectId、RepositoryId 和 CommitId 执行 VSTS Api 请求,使用此过滤器:
new GitQueryCommitsCriteria { FromCommitId = {localCommitHash.Hash}, ToCommitId = {localCommitHash.Hash}, ExcludeDeletes = true };
- 观察 VSTS 响应中是否存在提交,尽管“ExcludeDeletes”字段设置为“true”。
我还尝试使用 Postman 为 4.1 和 5.0-preview API 发出 GET,但无济于事。
我对 VSTS 的预期行为与项目业务逻辑的关键部分相关,如果能提供任何帮助,我将不胜感激;也许我误解了该领域的意图,在这种情况下,我真的可以使用一些指导来实现我的目标。
【问题讨论】:
标签: git azure-devops azure-devops-rest-api