- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
作为我们应用程序的一部分,我们正在构建与 Azure DevOps 的 REST API 集成的能力。我们感兴趣的一个关键组件是能够查看特定提交的实际差异,以便我们可以查看和分析行内容。我们已经为 GitHub、GitLab 和 Bitbucket 创建了这种集成,每次都很简单:每个都有一个相当简单的 diff 端点,它接受特定的提交 ID 并对其进行区分(有时具有特定的父提交)。
然而,我在 Azure DevOps 中找到相同功能的运气并不好:diffs endpoint有一些与此相关的数据,但它实际上只是概述了哪些文件发生了更改以及这些更改的高级性质,以及代表每个状态(之前和之后)的文件的特定 blob 的 ID。
理论上可以使用这些 blob 手动构建我想要的内容,实际上我已经能够查询前后 blob 以获取每个文件的差异。但这是每个文件的两个单独的端点查询——提交 20 个文件,突然间我们需要 40 个 API 调用来构建合理的差异。不幸的是,这并不真正符合我们的性能需求。
是否有单独的 API 端点或技术可以让我们获得原始差异?它不需要是原始差异 la git diff
直接,任何可以让我们以最少的 API 调用(最好只有一个)查看每一行(而不是每个文件)的前后状态的东西。我已经在文档和 StackOverflow 上进行了大量搜索,但没有找到任何可以完成此操作的内容。
最佳答案
没有现有的 Rest API 可以满足您的需求。但是你可以引用下面的步骤来获取git diff的内容。
步骤1:您可以使用Rest API 到get the commit id .
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits?api-version=5.0
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits/{commitId}?changeCount={changeCount}&api-version=5.0
Post https://dev.azure.com/Organization/Project /_api/_versioncontrol/fileDiff?__v=5&diffParameters={value}&repositoryId={repositoryid}
{"originalPath":"filepath","originalVersion":"Parentsid","modifiedPath":"filepath","modifiedVersion":"commitid","partialDiff":true,"includeCharDiffs":true}
关于azure-devops - 有没有办法通过 Azure Devops API 获取提交的原始差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61827842/
我是一名优秀的程序员,十分优秀!